GeoTree: Procedural Trees in Geometry Nodes

Something of an aside here, but I ran across this guy’s channel on Youtube the day before, and he’s already provided a treasure trove of information for me.

https://www.youtube.com/channel/UCeDY5-JV9q6PDl_TcOUVk5g/videos

1 Like

The root system beneath your scene genuinely scared me. Beautiful.

2 Likes

Most people don’t know about it, but that’s the way trees actually look underground.

3 Likes

Post away. The more trees the better, I say.

1 Like

Check this out:
https://developer.blender.org/D15274

I think this upcoming node has quite the potential.

3 Likes

That could be excellent for root generation. Though the one thing I’m most excited about at the moment are the upcoming UV nodes.

1 Like

I found it’s possible to create falloff using exponents instead of float curves. It’s the technique I used in the points to volume version awhile ago:

It’s not quite as flexible, but I prefer it as I find the float curve widget tedious to tweak. I recommend you add it as an option at least.

I also have a few more suggestions and feedback, but they may take me some more time to organize. I haven’t got a ton of time to play with it yet, as I’ve been busy with my own big projects. (those sdf nodes, which may actually come in handy here at some point)

2 Likes

It makes sense. It makes me wonder whether we actually need to have that much fine tuned control over the taper of the trunk. Other than making space for a burl, what need would we have to be able to define thickness in specific spots?

I could throw in a switch to allow for both. The only concern is running into issue of unnecessary complexity. These nodes are already pretty big as is.

3 Likes

Here’s my recommendation. Rather than using switch nodes, and doubling the number of inputs, make a separate group for automatic falloff. That way, if you feel like the extra control of curves, you can add them in, but if you’re feeling lazy, just drop in this node and tweak simple values.

I’m not yet sure how the canopy shape would be done, but it’s probably quite possible by mixing two exponent curves.

1 Like

Or you could make it even simpler, and reduce it back down to a single value that determines the average radius with the taper automatically applied, and can be overridden with the curve node.

Throwing a multiply node at the end of your chain should do it. I’d try it myself, but PEOPLE KEEP CALLING ME!

edit: okay, tried it out. Adding a multiplier does allow you to define the average thickness of your trunk will still keeping the taper, but it doesn’t work with the curve. One step forward, one step back.

Okay, think I did it, though it does take one extra step than I’d like. I just added two multiplier nodes into the geo tree, attaching the outputs as Trunk Radius, and Trunk Curve Multiplier, the latter of which will be redundant if you don’t have a curve node attached, and is set to 1.0 by default. The end result looks like this…

And with the curve node and curve multiplier applied…

I’m not sure if there’s a good way to detect if an input is a field or a single value. That would make it so much easier.

Ah, that looks like a reasonable solution. Good job!

The nerve! Those pests should know better than to disturb Renzatic while he’s busy blending!

I think I might’ve been able to nail it down to a single value. It assumes a lot of defaults though. See what you think of this…

GeoTree_v0.581.zip (3.0 MB)

It was even worse than that. I WAS EATING LUNCH!

1 Like

Looks nice so far! Much quicker to tweak.

I’d like to show you a quick experiment I attempted tonight. It’s obviously only a test so far, but I wanted to see if it could be used in this type of scene.

First, I rendered out a few maps of a tree. I had to use a custom node setup to get a good camera normal map.

I then created a geometry nodes setup to displace cards and point them towards the camera. It’s pretty much the old leaf card setup with displacement.


I then added a bit of randomness, and created a simple material and lighting setup. Here’s the end result:

Cycles:


Eevee:

To put this in perspective, it was minimal time, minimal settings, and minimal effort. It’s only like 15 seconds worth of samples, and I’m pretty happy with the result. Though it’s not the best close-up, it would be great for environment concepts when you have to scatter thousands of trees on a mountain for instance.

The next step would be to somehow automate variations, possibly through animated seeds and the compositor. The only issue would be keeping track of all the maps, and randomizing them in the card setup itself. I’ll probably look into sprite sheets of some type, and see where that gets me. What are your thoughts?

3 Likes

Looks pretty damn nice to me. The only thing I’d suggest is placing more leaves on the tree to get a thicker canopy. Bushier trees look better in these situations than sparse ones.

1 Like

Ah, good idea, I’ll try it out. After all, at this point, there’s no performance budget on the tree image itself, so there’s nothing stopping me from cranking up the leaf count or resolution.

I’ll try to get a working version that’s not so messy over the next few weeks.

I have no idea how I’ll go about rendering a sprite sheet without extra manual work. Do you have any recommendations on that? I would just render as an image sequence, but there’s no socket to randomize the frame in shader nodes. (and sync it with the gn setup)

1 Like

Nope, I’m drawing a blank on that one. The only thing I could suggest would be to set up a scene with your camera and settings all set up, then plop a tree down.

I think this should be accurate enough

3 Likes

The obvious answer is OSL, but people tend to be allergic to cpu-rendering, on the other hand. Maybe udims can be leveraged somehow?

greetings, Kologe

2 Likes

Thanks for the setup, @Xeofrios. It should make the taper override a lot simpler. I may add it to my cookbook as well.

Interesting idea, @Kologe. I’ll look into it and see where it takes me.

I’ve been playing around with the Geotrees for the last couple of days. Made some slight tweaks and additions that I’ll be uploading here soon, but my major intention was to see how the trees look with some toon shading on them.

Here’s what I got, and damnit if I don’t absolutely love it, and now want to reconsider everything I’m doing.

…this is why it takes me so long to finish anything I start, by the way.

12 Likes