Hey, just wanted to share some work in progress on a tree/vegetation macro. Today I implemented a crude version of temperature in World Machine and guide the tree placement with it.
My attempts at tree placement used to heavily rely on the height of the terrain and that is still a very solid and quick emulation, however, it cannot take the sunny side of a mountain into account. Using temperature as the main parameter creates a more natural result, as trees are in fact quite limited by the soil’s temperature. A nice benefit is that this method also allows me to place snow based on that same temperature map. In the image you can clearly see how the tree line swirls up and down, ignoring the height of the terrain to some extent. Slope is also taken into account.
That was my guess as well, Select aspect based perhaps or using the light generator in some way.
Then I thought @ParadoxSubject, if its not too many devices extra, your team (or HYLK) could roll it into the Custom renderer in some clever way, so we could get some realistic lighting and nice trees!
Their positions / density would change as you change the sun heading and elevation maybe?
I don’t think the tree placement should be done in the “render engine”, as it is a very distinct and clearly separate operation that you’d also want to use without using a device to render your world with. The tree placement/density mask is very useful in third party applications as well.
I agree with you wholeheartedly there, but I was thinking about it as an extra to that
renderer as a special effect that can be turned on or off like the fog.
Really it would just be for fun, I don’t see the bitmap from that renderer being exported too often. Its just for visualising the world inside world machine to get an idea of how it will look in other applications.
Trees and vegetation objects are best created in the third party applications, from the renderer you could still make available as an output the placement/density mask.
If you make your macro available, I could see about rolling its processes into the custom renderer. In the end it would be optional and i’d probably get rid of the fog effect.
Coming back to this, the thing that really catches my attention is the idea of a temperature map. I think it’s worth creating a selector macro like yours, so I wondered what sort of research I’d need to do to work out an implementation. What search terms will call up useful and pertinent links?
Ehmm for the temperature map I have used the “every 100 m up the temperature goes down 1 °C” rule of thumb, and I’ve used global sun direction as a modifier for it. So no real science on that part. For the plants however, I have been searching with search terms like “treeline AND vegetation AND temperature”. I stumbled on this paper, and did some reverse snowballing (let me know if you don’t know what that is) to find other sources on the topic.
I reworked the temperature and global sun masks, and incorporated the following parameters as well:
Erosion (wear), removing trees where ground is unstable. You should, in theory, do an erosion pass afterwards as well, and then modulate the rock hardness with the vegetation, but that is something for future Hylke.
Talus, not only the talus mask itself, but also the idea of big rocks tumbling down the hill, emulating these rock paths using erosion flow paths.
Wetness, trees favouring areas surrounding rivers. In above images, this effect is exaggerated.
Things to consider implementing are stuff like soil depth, although this is kind of secretly implemented using a slope pass, as steeper terrain will be more difficult to cover with a nice soil blanket. On a more macro scale, things like wind and rainshadows also must be accounted for, but I think those should be parameters into the macro/node system, and not something the tree placement part does by itself.