Home Technical Talk

[LODs] ~ Transition between grass' LOD0 and LOD1 is extremely evident, how to improve it?

triangle
Offline / Send Message
Steamy_Steve triangle
I'm studying foliage, more precisely I'm onto grass at the moment.


As you can see, LOD0 is quite high poly and doesnt use any transparency masking, it's just plain meshes.
Let alone that it needs some tweaking because of the excessively high polycount, now I'm testing LODs and what you see in the distance is LOD1 kicking in.
Bloody awful, huh? =p

How may I make transition between LOD0 and LOD1 less noticeable?
LOD0 has patches of grass composed of single strands, while LOD1 has just a handful of the same strands plus a couple of crossed cards.
LOD0 has it all, color/normal/AO at 512px, while LOD1 only has color and normals with a resolution of 256px.
I expected normals on the cards (I've made a couple of projections of LOD0 onto simple planes) to supply the right amount of light variance to resemble the 3D strands, but the difference is abyssal, all but unnoticeable.

How may I make the transition less evident?
What kind of "reductions" should I implement when crafting LOD1 (and subsequent)?

A single grass strand is composed of 13 triangles, the circular patch is 60cm in diameter and hosts 269 strands (hence the high polycount).
Maybe I could reduce the number of triangles per strand to 11 or even 9 (unlikely), but more likely I'll use less strands.
Anyway, how may I move from such a high poly LOD0 to a less heavy LOD1 without the transition being too evident?

I was thinking of just reducing the number of strands while making them "fatter" (scaling up over X and Y) from LOD0 to LOD1, and then again from LOD1 to LOD2.
Do you think this would work?


PS: if anything I've typed doesnt make much sense, be aware that it's almost 3:30am and I've been working on this thing for the last....9 hours, apparently!!
Eventually I'll sort it out tomorrow. In the afternoon.

Replies

  • Obscura
    Offline / Send Message
    Obscura grand marshal polycounter
    The built in lod tools in Unreal is very good. I always use it on static meshes. To make the transition less evident, use the same material on LOD 0 and 1. By using different material with different textures, you are only making it more expensive (textures won't get unloaded when the lod switches for example). You can also enable dithered LOD transition in the material properties.
  • Steamy_Steve
    Offline / Send Message
    Steamy_Steve triangle
    Obscura said:

    The built in lod tools in Unreal is very good. I always use it on static meshes. To make the transition less evident, use the same material on LOD 0 and 1. By using different material with different textures, you are only making it more expensive (textures won't get unloaded when the lod switches for example). You can also enable dithered LOD transition in the material properties.

    With automatic LODs (which I believe are enabled by default...?) I was getting heavy FPS drops.
    Are you sure that's the best solution? =o
    Is there any tweaking I should do to improve the performance of UE4 embedded LODs system? =0
  • Obscura
    Offline / Send Message
    Obscura grand marshal polycounter
    You can manually specify the amount of polygon reduction and the screen size on which the lod will kick in. Yes, I'm pretty sure its the best way for non deforming objects :)
  • Steamy_Steve
    Offline / Send Message
    Steamy_Steve triangle
    Obscura said:

    You can manually specify the amount of polygon reduction and the screen size on which the lod will kick in. Yes, I'm pretty sure its the best way for non deforming objects :)

    Yeah, I've noticed the reduction section of LODs the moment I closed the page. ^^'
    Are there "best" values for LODs?
    Like the amount of LODs, distances (screen size, now), triangles percentage, etc etc...
    And what does "silhouette" do, exactly? =0
  • gnoop
    Offline / Send Message
    gnoop sublime tool
    it's most probably because of normal map mip dropping in Lod1 cards. So all those single blade shadings in the foreground turns into something average or non existent on those cards. I would do normal map on the cards more contrast and switch distance much closer

    Imo it's insane amount of geometry for the grass only Plus it would become more on pair with similar Fresnel effect we see in the grass by our own eyes usually because or different view angle
  • Steamy_Steve
    Offline / Send Message
    Steamy_Steve triangle
    gnoop said:

    it's most probably because of normal map mip dropping in Lod1 cards. So all those single blade shadings in the foreground turns into something average or non existent on those cards. I would do normal map on the cards more contrast and switch distance much closer

    Imo it's insane amount of geometry for the grass only Plus it would become more on pair with similar Fresnel effect we see in the grass by our own eyes usually because or different view angle

    Thank you for your reply, but it was just me, I was handmaking LODs, which is good for certain elements but total madness for chaotic elements like grass.
    I've used auto-LODs as @Obscura suggested and voila:

  • Eric Chadwick
  • Steamy_Steve
    Offline / Send Message
    Steamy_Steve triangle

    This might give you some ideas.
    http://d.hatena.ne.jp/hanecci/20150712/p4

    Actually, I find horizontally placed strands work better at LOD0, where players might actually look down and see too much terrain.
    LOD1, instead, can be decimated and horizontal meshes can be eliminated, since vertical ones would hide the terrain for good.
  • Eric Chadwick
    OK gotcha, it was tl;dr.
  • Obscura
    Offline / Send Message
    Obscura grand marshal polycounter
    It need to be noted that in Unreal, you can't use different uv layouts on the different lods, if you use baked lighting because the h - instanced static meshes doesn't support different uvs on the different lods for light mapping.
  • Steamy_Steve
    Offline / Send Message
    Steamy_Steve triangle
    @Obscura In the handmade LOD I was using both a different mesh AND a different texture/normal map, that's why I was surprised by the mediocre result.
    But now I'm not surprised anymore....you should see what Simpligon makes of my grass strands on LOD3! ^^'
Sign In or Register to comment.