Golden Trees

Stylised trees procedurally built in Geometry Nodes with noise offsets tied to self position, so it’s easy to manually art direct the results just by sliding elements around a little.

The trunks and branches are spline systems with simple controls like relative radius (calculated from the radius of the spline they are being spawned from), noise displacement, and a very basic heliotrope feature. Basic, but sufficient for my stylised purposes here.

The spherical tree canopy is a distorted icosphere scaled and positioned using the bounding box of the branches. I initially considered using a convex hull, but wanted the stylised feel of a spherical container. Named attributes from Geometry Nodes were used in the shading tab to help guide the cutaway, ensuring the top of the canopy was mostly solid, and the bottom was mostly transparent.

The other materials are pretty simple, with flat white surfaces, reflective water with a normal map, and a UV-distorted noise texture to create low-lying layers of fog. Because of the framing and shallow depth of field, I didn’t worry about fog panel intersections with the ground, but did make sure they didn’t cut through any of the trees.

The scene is compatible with Eevee, but the final was rendered in Cycles and finished in Photoshop. The following are some early raw renders before final tweaks in Blender and post processing in Photoshop.

Eevee:

Cycles:

23 Likes

The style is based on tests I did in Unreal Engine for a client project several years ago. The 3D elements were created in NGplant (tree trunks and branches) and Blender (canopies), but the shader was created in UE4.

I was exploring some designs for an automotive experience at the time, and randomly applied a different material to the interior of the cutaway shader…and liked it. The project went in a different direction, and I didn’t think much about it till I recently saw some ceramic sculptures by Jennifer McCurdy. I was immediately reminded of the old test I’d done, and wanted to turn it into a simple landscape, while attempting to build a tree branch system in Geometry Nodes!

My initial hope was to mimic the approach of TreesDesigner by Pawel Olas (a plugin I used extensively back in my Lightwave 3D days); starting with the canopy shape, and reverse engineering branches and trunk from there. In addition, I also wanted to see if I could create a cutaway shell that was more dimensional than just a single layer of transparent geometry.

Branch tips were spawned randomly from the canopy shape, and for each iteration of extruding the branches toward the centre base, I merged the newest vertices based on distance, then repeated. It worked, but the results were stiff. The geometry based cutaway was also terribly limited by mesh resolution and I couldn’t find a way to improve the edge smoothness entirely in Geometry Nodes. Maybe something to try again later, as I learn more and GN grows in capabilities.

So I went back to a ground-up approach for the tree structure; starting with a trunk, instancing branches, converting them from instances to splines, and repeating the process for sub-branches.

It wasn’t until after I finished this project that I learned how to use the accumulate field node! Implementing that offers a major improvement on branch noise (no more branch stretching, they can actually rotate and twist correctly) and gives a lot more control over other effects, like creating a tree with branches that swirl and spiral.

13 Likes

nice, i like the style!

2 Likes

I like it, awesome

1 Like

I featured you on BlenderNation, have a great weekend!

1 Like

Wow, this is realy beautiful!

1 Like