No announcement yet.

grass killing my fps. gtx 970, 3700x - empty map fps 120

  • Filter
  • Time
  • Show
Clear All
new posts

    Ok shadows take up around 2.6ms of time. To reduce this you can use the approach suggested above, so disable cast shadow for any lod other than lod 0 and fake it for the other lods in the material.

    The grass from project nature is optimized, therefore changes to reduce the Basepass cost will result in a loss of features/visual quality. But you can basically do two things:

    (1) If you don't need player interaction and realistic wind, then inside the grass material replace what is plugged into "World Position Offset" there with "Simple Grass Wind" (I would use a static switch you can easily change back) that will reduce the vertex shader complexity.

    (2) Add more lods/ do more aggressive lod transitions, so that when you would look at the grass in overdraw view, then it should still be somewhat blue in distance, since right now you have very high overdraw.

    And at last you might wanna think about using grass that has less impact on performance because if you would really do (1) and (2) you could just save yourself the work and use a different grass that does not have this wind effect and such a high vertex count to begin with (you could try their single triangle grass) since without the realistic wind effect the poly count is an overkill for reducing overdraw due to the opacity mask and therefore somewhat useless.

    But depends of course on how much performance you wanna use up for the grass.


      if you can, that does sound like an awesome compromise.

      I was initially using a fully transparent material. The idea was if it can function with full transparency above 60fps, converting to a regular grass material will perform far better. Combined to the per instance fade it can also visually aid / debug far distance LOD Overdraw.


        Testing for performance using and from with in the PIE is not best practice.

        UE4 rendering best practice

        Some good advice in general.

        Our maps generally run at between 30 - 60 FPS but once cooked runs at a cap of 120

        It should also be be noted that FPS is not really the indicator as to performance as most things in UE4 is based on rendering refresh rates in ms

        Also you can LOD materials as well so so you could get away with out using a mask that adds to the overdraw problem

        Clarke's third law: Any sufficiently advanced technology is indistinguishable from magic.
        Custom Map Maker Discord
        Urban Terror