Announcement

Collapse
No announcement yet.

With forward rendering is the shader complexity view of masked materials accurate?

Collapse
X
 
  • Filter
  • Time
  • Show
Clear All
new posts

    With forward rendering is the shader complexity view of masked materials accurate?

    In deferred rendering the transparent parts of a masked material are the most expensive and that is what is reflected in the shader complexity view. also when looking through a bunch of masked transparent planes you get overdraw.

    However, if you stack a bunch of masked planes one after the other in forward rendering the shader complexity shows no overdraw.

    in the pic attached I'm using msaa at around .5 masked opacity so the planes are translucent. if I turn off AA and set the opacity to 0 the planes become invisible but there in no overdraw shown. in fact the planes just disappear from the shader complexity view altogether.


    I'm trying to figure this out because making trees and grass is way easier if masked materials don't create overdraw in forward rendering since I could use lower poly billboards.
    YT Channel: https://www.youtube.com/channel/UCoc...KYPSK6g7vZ5CNg

    #2
    That looks inaccurate to me. My guess is the complexity display shader doesn't play well with MSAA.

    Comment


      #3
      I switched my game over to the forward rendering and the difference is huge. My fps in my outdoor, foliage-filled world went up anywhere from 30 to 60 fps in some areas. I'm getting 180+ fps in some areas outdoors, with the most dense areas still getting 120-140 fps.

      Before I was getting around 90 fps max in the worst areas using the deferred renderer. My game is fully dynamic with a night/day system so this fps improvement is huge for me.

      I'm not exactly sure but I think that overdraw isn't as a big of an issue with the forward renderer. UE4 is notorious for getting terrible fps in foliage-filled outdoor worlds. By switching to the forward renderer, you can get much better results

      Comment


        #4
        i don't think it's just msaa because if you turn AA off and set the opacity under the clip value, so you can look through a bunch of invisible sheets, it doesn't show the complexity either.

        My pessimistic theory is that since the different visualizers are just post process effects and since some of the scenetexture lookups don't work in forward maybe that limits the accuracy of shader complexity view. Meanwhile the optimist theory is that the complexity view is accurate and masked transparency is basically free.
        YT Channel: https://www.youtube.com/channel/UCoc...KYPSK6g7vZ5CNg

        Comment


          #5
          well now I feel a bit dumb. Issue happens in deferred too so it's just a bug. submitted report.
          YT Channel: https://www.youtube.com/channel/UCoc...KYPSK6g7vZ5CNg

          Comment


            #6
            Not sure I understand the issue with the view, but transparency is most definitely not free. Masked or otherwise. It's one of the hardest things for the engine to render.

            forward rendering is faster. Period. Deferred rendering looks better.
            most times you end up putting transparent materials in Forward Rendering manually by changing the material - that is because forward rendering renders the transparency a bit better - and over 2 passes.

            As far as complexity goes, I definitely see highlighted/red areas where the light reflects in my meshes.

            As far as Masked Opaque materials go, (the norm for grass/leaves?) They are heaviest at the antialiased edges that overlap other transparencies.
            so the center of a grass mesh is the most complex part because you have the most overlaid things that require "thinking" time to compute. If that makes sense.
            even the ue4 kite demo assets have an "extremely bad" coloring when it comes to grass and such. But that's where their LOD's come in to help a bit.

            Comment


              #7
              Originally posted by MostHost LA View Post
              Not sure I understand the issue with the view, but transparency is most definitely not free. Masked or otherwise. It's one of the hardest things for the engine to render.

              forward rendering is faster. Period. Deferred rendering looks better.
              most times you end up putting transparent materials in Forward Rendering manually by changing the material - that is because forward rendering renders the transparency a bit better - and over 2 passes.

              As far as complexity goes, I definitely see highlighted/red areas where the light reflects in my meshes.

              As far as Masked Opaque materials go, (the norm for grass/leaves?) They are heaviest at the antialiased edges that overlap other transparencies.
              so the center of a grass mesh is the most complex part because you have the most overlaid things that require "thinking" time to compute. If that makes sense.
              even the ue4 kite demo assets have an "extremely bad" coloring when it comes to grass and such. But that's where their LOD's come in to help a bit.

              thanks, I was just confused by the bug in 4.23. idk if it is occurring on every computer but there are a few others i've chatting with who are having the same issue.
              YT Channel: https://www.youtube.com/channel/UCoc...KYPSK6g7vZ5CNg

              Comment


                #8
                Originally posted by JTXPbrah View Post
                I switched my game over to the forward rendering and the difference is huge. My fps in my outdoor, foliage-filled world went up anywhere from 30 to 60 fps in some areas. I'm getting 180+ fps in some areas outdoors, with the most dense areas still getting 120-140 fps.

                Before I was getting around 90 fps max in the worst areas using the deferred renderer. My game is fully dynamic with a night/day system so this fps improvement is huge for me.

                I'm not exactly sure but I think that overdraw isn't as a big of an issue with the forward renderer. UE4 is notorious for getting terrible fps in foliage-filled outdoor worlds. By switching to the forward renderer, you can get much better results
                GPU compute power has been increasing much more than memory bandwidth for a while now, so the cases where deferred beats forward are usually limited to scenes with large number of visible lights/decals.

                Comment

                Working...
                X