Download

Tips for improving shading on trees?

Hello! I am trying to improve the look of my trees, and I feel like the issue is mostly due to very strong self-shadowing, which makes the individual planes very distinct and obvious.

I’ve tried several methods I’ve found to manually adjust normals in the material, but I haven’t really had much success. Any ideas?

I can’t fake weaker self shadowing with emissive as that ruins the shadows on the back of the object and breaks at night.

While looking at your screenshot, I get the feeling what you may actually be after is custom normals for your vegetation.
It’s briefly explained here: https://www.youtube.com/watch?v=ek9kK6zmMf8&feature=youtu.be&t=7088
Not a particularly well done tutorial IMHO, but you should get an idea for whether somehow creating custom normals could be good for your trees, or not.
It’s generally used to get more uniform, smooth shading for vegetation.

Yeah, that’s what I did for my grass, which I think looks great.
However, my trees are made with speedtree which as far as I could tell is quick, but kind of basic when it comes to things like normals and uv mapping and just applies face normals to everything instead of unified normals. (And my speedtree license has expired, so I can’t go back and fix it, if that’s possible.)
So I have to manually create the normals in post through the material instead. You can do it by manipulating the normals from world to local and doing some maths, but I haven’t had a good result yet. Most of the examples I’ve found are made for more circular leaf-trees.

Just export the FBX and work on it like any other model.

Yeah, I just figured that out. It wasn’t possible when I used Speedtree back in the UDK days. =P

I can’t quite tell what the optimal setup to make them look good though. I think I got something working normals vice, but gaps in the model still makes the planes obvious due to self-shadowing.

Generally speaking. Sphere normals work well for trees. Or branches.
a pine tree is much the same.

Also, its not like your initial image looks completely wrong.
the shadows are just a bit dark.
You can maybe increase the skylighr value to drive that into a lighter color
and YES you can change that at runtime - its just expensive.
until .26 drops anyway, according to rumors.

The theory is always that direftional light is direct. Skylight is bounce light. While recapturing at runtime is currently expensive, recapturing with different intensities of the directional light is exactly how/why the system should work.
to work around it now you can scale (lerp) the intensity at runtime based on sun azimuth.

It looks flat because your leaf card texture is too dense. Foliage in UE4 tends to require sparser textures using more leaf cards because of the absurd fact that there is still no way to disable self shadowing.

Its actually impossible to have an object not cast shadow onto itself with standard dynamic light. This is because its all in 1 depth map, making it impossible to do so without rendering the depth twice over.