Nucleate - 2025-05-12

I’ve been working on the grass rendering in the Blender mini scene and ran into a few issues, especially with pixel art. The original grass assets were way too dense and causing problems, so I cut them down by about five times. I also switched from the original grass sprite to a hand-drawn 2D polygon asset, which feels simpler and fits better with the style. To keep things looking natural without overcomplicating, I limited grass sprite rotation to just 0 or 180 degrees depending on the camera direction. This helped avoid awkward angles and made the grass feel more consistent.

One persistent problem is grass blades growing underneath other objects like rocks, which looks off. I tried adjusting the grass density around rocks to make it look more organic, but it’s still not perfect. I want to use ray casting to prevent grass from intersecting with other assets, but setting that up with instanced assets is proving to be cumbersome and tricky. I’m also thinking about whether a shader could handle grass in front of destructible parts of the scene, but those destructible elements aren’t implemented yet, so it’s still just a possibility.

To keep things simpler and more optimized for pixel art, I further simplified the grass sprites by reducing rotation angles and removing shadow casting. That seemed to help with performance and visual clarity. On the terrain side, the paths currently look like flat brown dirt, which isn’t very interesting. I started using a geometry node to add a cobblestone-like texture with some noise, which adds more character. I’m also exploring how to create dynamic edges between the paths and grass—maybe shadows, pebble stones, or smaller grass textures—but I’m worried about making this too complicated or heavy.

There’s also coloration noise in the mini scene to break up flat colors, but generating it feels overly complex and the results aren’t quite right yet. I need to figure out a better way to handle that without making the process a headache.

I’m about to be out of town for a week, so progress might slow down for a bit. When I’m back, I want to focus on figuring out the ray casting setup with instanced assets and decide if the shader approach for destructible grass makes sense. I also need to refine the dynamic edges between terrain and grass and find a better solution for the coloration noise. There’s still a fair bit to figure out, but the grass and terrain are shaping up better than before.

Two-Line Takeaway

Key step forward

The most important forward progress step is simplifying the grass assets and limiting their rotation to improve visual consistency and performance.

Significant barrier or risk

The most important barrier or risk is the difficulty in setting up ray casting with instanced assets to prevent grass from intersecting with other objects, which remains a complex and unresolved challenge.

Keynotes

Decisions & Observations

  • Decided to reduce grass asset density by five times and switch to hand-drawn 2D polygon grass sprites for better style fit and simplicity.

Issues & Next Steps

  • Needs to resolve grass blades intersecting with other objects (e.g., rocks); current density adjustments are insufficient.
  • Will explore implementing ray casting to prevent grass from growing underneath other assets, despite challenges with instanced assets.
  • Considering a shader-based solution for grass interaction with destructible scene parts, pending implementation of destructible elements.
  • Needs to refine dynamic edges between paths and grass (e.g., shadows, pebbles, smaller grass textures) while avoiding excessive complexity.
  • Needs to find a better, less complex method for generating coloration noise to break up flat colors in the mini scene.
  • Next steps after returning from travel: focus on ray casting setup with instanced assets, decide on shader approach for destructible grass, refine terrain-grass edges, and improve coloration noise solution.

Uncategorized Notes

  • Limited grass sprite rotation to 0 or 180 degrees based on camera direction to maintain visual consistency and avoid awkward angles.
  • Simplified grass sprites further by reducing rotation angles and removing shadow casting to improve performance and clarity.
  • Started using geometry nodes to add cobblestone texture with noise to terrain paths for more visual interest.

Generated with Nucleate by Watchlight Studio — distilled from full transcription.