TwoSided Foliage Shading Model

First off, thanks you very much for adding it!.

I backported changed from master to 4.6, and started testing it on sample SpeedTree trees (I assume, most people will at some point want to use SpeedTree for their foliage).

I tried to keep materials as simple as possible.

Here is few (I think) issues I noticed:

Normal map plugged directly into normal slot.

Normal map multiplied by TwoSidedSign and then plugged.

I also tried different variants with unchecking Tangent Space Normals and not plugin normal map at all.
Each of them give variants on the result

My main issue here are those dark spots. I guess it’s supposed to simulate shading, but as it looks right now, it looks more like artefact, than feature.

It also happens on other trees, To smaller or bigger extend.

Since it’s a SpeedTree, I would suggest to look at the normals in the SpeedTree Modeler. Some of those leaf meshes may have normals that point down-ish, and then a normal map that is a bit too extreme may end up pointing the pixel normals down or even towards the center of the tree. Pushing the leaf normals out like a lollipop may help, or toning down the normal map (which you can try in UE4).

But you are looking at the side facing away from the light, so I would pretty much expect parts there to be darker. Adjusting lighting inside UE4 can get more ambient light on the leaves, but be careful not to blow it out so it ends up looking too bland. Also, have you built lighting on it? You’ll get much more interesting lighting once some GI gets in the mix.

As for the multiplying by the TwoSidedSign… you need that on SpeedTree leaves. Two sided geometry in UE4 both turns off face culling and flips the normal when rendering the back side. But a SpeedTree’s (and most other mesh trees) “leaves” are usually a representation of a cloud of leaves. So you don’t want the normal to flip. Multiplying by the TwoSidedSign node prevents it.

I’m not using static lighting, so GI is out of options.

In case thanks, I will look into vertex normals in SpeedTree.
But question is, would it be possible for the new shading model to ignore vertex normals on the mesh to begin with ?