Can I stop my bushes from doing this?

My game has bushes that consist of a 2-sided flat mesh with an image texture on it using SurfaceAppearance. However, the lighting on them behaves weirdly depending on what direction the mesh is facing.

I know this depends on what ‘direction’ the mesh is facing. If I disable ‘double sided’ on the meshes it looks like this (the weirdly bright side is the one that is technically the underside of the mesh).

Is there anyway I can have bushes without this?

I know of some workarounds but another issue is optimization because this is a mobile game for low-end devices; for example I guess I could just copy the plane and flip it around, so that 1 side of a bush consists of 2 planes facing either direction, but this would double the amount of memory being taken up by bushes and I would rather them just look a little funky.

It may be because of the sky, due to the sun

I don’t know if this is exactly your problem, but it might fix it. Apologies for the long-winded reply and for getting a little technical :sweat_smile:


When you’re using a foliage sheet like this, Normal direction is awkward and light doesn’t know how to interact with the single-sided textured faces from behind, lighting up faces unevenly along edges; that’s that weird edge split you’re seeing.

To fix this, most artists will apply a NormalEdit modifier to their Object. This will make the Normal direction data “act” like it’s all facing one uniform side, that way, all of one side will be lit the same way, and the undersides will be unlit the same way, similar to how real tree leaves act as light passes through. Also double check that your object is using Smooth Shading, and that Autosmooth is enabled (I think autosmooth is required?)

It’s difficult to see the difference at the start, but you’ll know when it works.
Here’s a picture of this tree in Studio, one with the NormalEdit mod, the other without. They look similar on the lit side:

But the back side is very different. The one without the NormalEdit isn’t interacting with any light. And if I view from the underside of the tree, you can see the faces lit differently along the edges which I think is similar to your issue with the bush faces. The foliage with the NormalEdit mod is treating the underside light more accurately and evenly.

This effect is very apparent in Blender if you move around the Empty object that the NormalEdit mod is tied to:


I hope this helps! If not, message me and I’m sure we can figure it out together :smiley:

13 Likes

You can also go to Mesh tab in edit mode, Normals, then select Recalculate normals from faces, then it evenly distributes!

Does this just reset Normals to the default for each face’s direction? The thing I suggested changes Normal face data so that it acts as if it’s facing another direction.

1 Like

It defaults the normals of every face to the average for a perfect even shading every time

Interesting, I’ll have to see how it compares. How does this work for single-sided meshes, using the DoubleSided property and a foliage sheet Surfaceappearance?

Can you show past examples?

thank you very much for the response!

However, the bushes I use are genuinely just a plane with a SurfaceAppearance instance applied to them, like this



So I’m not sure how I can translate that into the way my bushes are
I was never able to figure out how to do alpha transparent textures without having the whole leaf be partially-transparent, though I suppose I can go back to trying to figure out how to do that

If your asset is just a flat plane (two tris) you probably won’t need to worry about shading haha :sunglasses:

Can we see the texture though? I’m sure we can figure out a solution!