Faux Forest - A Simple Technique

I have not really thought of a good Project of the Day, but I did play around with an old technique for faking forest. I mentioned it in the post I made about doing Heather in a small scale terrain in the Scottish Highland thread. Like that one, this technique calls for an adjustment; the scene should be taken as being about 10% of world scale. If you added trees like these to a normal terrain, they’d be massive and totally unrealistic. This kind of forest works for middle background in a 3D scene, because the trees are essentially just cones. Still, when you don’t have something that will handle populations of full tree models, it can come in handy.

fiddle 211029 01.tmd (91.0 KB)

Since I had nothing better to do, I went ahead and made a couple of macros for adding Forest and a Forest Texture to terrain. I’ll post them here, along with a .tmd demonstrating their use. The macro for the Forest has controls for Range and Density, along with mask inputs for Flow and Water. The texture colors the trees, and provides a default grass texture if you don’t have a texture to hook up. The screenshot shows the trees adjusting to differences in slope, and their general placement is based on Wetness (of the supplied terrain).

Forest.dev (57.3 KB)
Forest Texture.dev (25.2 KB)

fiddle 211029 01.tmd (711.3 KB)

A quick variation on Range and Density…

1 Like

I have also experimented with making broadleaf forests, inspired by Billowy noise. What I’ve come up with is not as controllable as pine trees, since you are at the mercy of the noise, but has its charms. I created a couple of macros, titled Woods (since Forest was taken) and Woods Texture. I’ll upload those at the end of this post, along with the working .tmd for all of the work in this thread.

First some screenshots, for quick perusal:

Woods.dev (130.6 KB)
Woods Texture.dev (47.9 KB)

fiddle 211029 01.tmd (1.1 MB)

1 Like

I had an idea, after making the Woods/Woods Texture macros, for how to make more broadleaf-like trees using the Probability method of the Forest macro. After a quick prototype test, I updated the Forest macro, giving it a Radius and Mask Radius properties to plump up the trees, and decrease their height (controlled by Mask Radius).

fiddle 211029 01.tmd (1.6 MB)
Forest.dev (93.4 KB)

2 Likes

These are great! Faux trees can be very useful; certainly for a close up scene you would want real geometry, but from significant elevation or map-style output, it’s very useful.

Artist Point makes this technique more useful too, as you can output a masked Material for your trees, to be layered together in the Layers device. Assigning the faux trees a simple finest-detail bumpmap actually helps considerably as the bumpmap is applied in tangent space, so you get some lighting variation even on the side of the tree-cone.

1 Like

I’d certainly like to see an example of this. I have not yet explored the use of PBR materials in Artist Point. I assume you have to use File Inputs for all of the texture elements, fed into a Materials device. Then there is working with Layer devices to assign materials where they belong. Is that about right?

You can, but certainly don’t have to, create materials from disk.

Take a look in the example library in the latest dev build - there’s only one that uses a material from disk. The strata device example actually uses the “add noise for bumps” trick to put fine detail into the vegetation areas

1 Like

Alas, there is a problem with these kinds of trees in Artist Point. The optimized mesh only gets a generalized or averaged height that essentially wipes out the tree shapes. The older Mesh Output device can export a tree mesh, but it’s a high-density mesh. Also, you can’t connect that mesh to a Scene Output device to apply materials to, as you suggested. You can only work with the Scene View connected to the Height map, to get these trees in Artist Point.

@davidroberson

A 2k terrain produces 8M triangles naively, and if you want faux-tree geometry, you’ll need every one of them :slight_smile: If you set the optimizer to that high of a limit, and set the quality to 1.0, you’ll certainly capture some of the tree geometry. In general though, you’re right - If you are looking to capture fine detail at that scale and put it in your geometry, there’s no reason to even try to optimize the mesh - Just change the mesh setting from “optimized” to uniform grid with a high limit.

I would probably just let the tree details be baked into the terrain normalmap and accept the averaged heights of the tree areas for many use cases - they’ll still light correctly, they just won’t parallax or stand out in profile as they would if they were actual geometry.

1 Like