LOD_Rendered.png

Procedural Tree Generation & Stylized Shader

Procedural vegetation pipeline developed for Yerba Buena using Blender Geometry Nodes and custom Unity shaders.

Blender Unity Geometry Nodes Technical Art Procedural Modeling Vegetation Pipeline Stylized Rendering

Developed for the upcoming title Yerba Buena, this system combines procedural tree generation, vertex data baking, and stylized real-time shading into a scalable vegetation workflow optimized for game production.

The toolset automates tree creation while preserving artistic control over shape, motion, and rendering behavior.

Project Context

This project was developed for Yerba Buena, an upcoming title developed by Mad About Pandas and published by Focus Entertainment.

As a Technical Artist working full time on the project, my goal was to create a procedural vegetation workflow capable of producing stylized trees with:

  • Fast iteration speed

  • Strong visual consistency

  • Runtime animation support

  • Minimal material complexity

  • Efficient integration into Unity

The system needed to bridge procedural content generation inside Blender with custom rendering behavior inside Unity.

Geometry Nodes Generator

The procedural generator was built entirely using Blender Geometry Nodes and designed around modular procedural controls.

The system generated:

  • Tree trunks

  • Primary and secondary branches

  • Crown distribution

  • Leaf placement

  • Surface variation

Parameters

The tool exposed adjustable parameters for:

  • Trunk height

  • Trunk thickness

  • Branch density

  • Branch layering

  • Crown scale

  • Crown distribution

  • Leaf coverage

This allowed artists to quickly generate large numbers of unique trees while maintaining a cohesive visual style.

Procedural LOD Generation

To support efficient real-time rendering, the generation system also included procedural Level of Detail (LOD) creation directly inside the Geometry Nodes workflow.

Because the tree generator was entirely parameter-driven and deterministic through seed values, identical tree variations could be regenerated at multiple geometric resolutions automatically.

The system exposed controls for:

  • Branch subdivision density

  • Curve resolution

  • Leaf density

  • Crown complexity

  • Overall mesh detail

9k Triangles

3.3k Triangles

1k Triangles

Using the same seed and structural settings, artists could rapidly generate:

  • High-detail hero trees

  • Mid-range gameplay LODs

  • Lightweight distant silhouettes

while preserving the overall shape and visual identity of each tree.

This significantly accelerated vegetation optimization workflows and ensured visual consistency across LOD transitions.

Under The Hood

Leaf Placement & Crown Generation

Leaf placement was generated procedurally using spherical proxy meshes defining the overall crown shape.

This approach enabled:

  • Controlled foliage density

  • Dynamic Normal recalculation

  • Cohesive silhouettes

  • Consistent stylization

The spherical proxies also became important for additional shading calculations later in the pipeline.

The goal was not photorealism, but readable stylized forms with strong visual clarity from gameplay distances.

Vertex Data Authoring

A major part of the workflow involved procedurally generating vertex data directly inside Blender for use inside Unity shaders.

The system wrote multiple data layers into vertex colors R, G and B Channels.

This approach reduced texture dependency while enabling rich stylized animation and shading behaviors entirely through mesh data.

Ambient Occlusion

Baked vertex AO provided depth and shading variation without requiring additional texture maps.

Height Gradient

A top-to-bottom gradient enabling procedural bending behavior driven by wind intensity.

Leaf Mask

Used to isolate foliage motion so trunks and leaves could share a single material while behaving differently in the shader.

Custom Unity Vegetation Shader

Inside Unity, a custom shader was developed to bring the procedural vegetation data to life in real time.

The shader handled:

  • Tree bending

  • Secondary leaf motion

  • Stylized translucency

  • Ambient occlusion shading

  • Vertex-driven animation masking

Stylized translucency was achieved using fresnel-based lighting to simulate soft light transmission through foliage.

All shading behavior was driven directly by the procedural vertex data generated in Blender.

Previous
Previous

Watercolor and Stylized Rendering R&D

Next
Next

Monolith - Procedural Sky and Weather System