How To Enable Software Occlusion Culling To Improve Performance In UE4/5 and Mobile VR

Поделиться
HTML-код
  • Опубликовано: 29 ноя 2021
  • Updated Discord invitation: / discord #UnrealEngine #VR #VirtualReality
    ► Join the Discord: / discord
    ► Description
    In this tutorial, I show how to enable Software occlusion culling to improve the performance of your levels. An awesome feature to use for anyone working with mobile devices and VR but ideally, this should be used for any and all projects.
    -----------------------------------------------------------------------------------------------------------
    ► Patreon: / gamedevxr
    ► Twitter: / gamedevxr
    ► Instagram: / gamedevxr
    -----------------------------------------------------------------------------------------------------------
    If you're new to VR and want to get started with Oculus Quest development, I recommend watching these videos first.
    1. Installing UE4 from Source code (contains more up to date Quest features)
    • Installing UE4 4.25 fr...
    2. Installing Android Studio (Required to create Oculus Quest projects in UE4.25+)
    • Installing Android Stu...
    3. My Oculus Quest 1 Settings (These are different to the Quest 2)
    • My Oculus Quest 4.25 B...
    4. My Oculus Quest 2 Settings
    • Quest 2 Settings You S...
    -----------------------------------------------------------------------------------------------------------
    PC SPECS:
    ► RTX 2070 Super
    ► I9-9900K
    ► 32GB Ram
    ► 2TB SSD
    Equipment
    ► Keyboard: HyperX Alloy Origins
    ► Mouse: Anker® Ergonomic Optical USB Wired Vertical Mouse
    ► Mic: Trust GXT 232
    ► WebCam: Jelly Comb
    ► Screen: AOC I2367fh 23-inch LED x 2
    ► Headset 1: Oculus Quest 128GB
    ► Headset 2: Oculus Rift + Motion Controllers
    ► Headset 2: Oculus Quest 2
    ► Graphics Tablet: Wacom Cintiq 13hd
  • ИгрыИгры

Комментарии • 43

  • @ChrixB
    @ChrixB 2 года назад +3

    OMG, I was trying to optimize my LOD mesh unsuccessfully until I did that simple Occlusion Culling tick, and boom! I got my fps up and now I'm able to spawn a tone of meshes, thank you so much !!!

  • @spacepirate9882
    @spacepirate9882 2 года назад +15

    Note that software occlusion culling is ONLY usefull on GPU that doesn't support hardware occlusion culling, which means MOBILE GPU ONLY.
    It won't help in any way with any PC GPU because they do occlusion culling internally and it's way faster than software occlusion culling.
    Also, for mobile, "precomputed visibilty cells" is still a less expensive occlusion culling method as it's precomputed and not realtime, the only drawback is that it use more memory but usualy you're limited by the rendering thread, not the size of the memory.

    • @SpeedfreakUK
      @SpeedfreakUK Год назад

      What if you're CPU-limited from the sheer amount of stuff you're throwing at the GPU?

    • @spacepirate9882
      @spacepirate9882 Год назад

      @@SpeedfreakUK What !?

    • @RubyDD31
      @RubyDD31 6 месяцев назад

      How do you use occlusion culling for PC unreal project so?
      The "Occlusion Culling" check box on or off dont change any FPS performance in our student project.
      Do I have to search about GPU settings and not (unreal) project settings ???

  • @Daniel-be6cj
    @Daniel-be6cj 4 месяца назад

    This is really helpful, I had a suspicion the occlusion wasn't functioning on my mobile VR project and not having "LOD for occlusion mesh" definitely makes sense

  • @IvanJames
    @IvanJames 2 года назад +1

    That video saved me today ! Thanks !!

  • @Phoenix_VR
    @Phoenix_VR 2 года назад

    That's awesome to know...thanks sir :)

  • @TrueFFranco
    @TrueFFranco Год назад +6

    Sadly this doesn't apply to Unreal 5, as there is no Software Occlusion Culling in UE5 :(

  • @WoodysAR
    @WoodysAR Год назад

    Thank you! Brother, How did you get the properties panel to the right of the bulk properties matrix editor? .. I only see the 'Grid' ... Tab/Window.

  • @amerboss99
    @amerboss99 9 месяцев назад +1

    how to enable it in ue 5 that option where it says LOD for occlusion match is not anywhere

  • @guijieqiu1878
    @guijieqiu1878 2 года назад

    I would like to ask why my packaged APK runs in Quest2 and always has only 72 frames, even if I don't increase anything

  • @letsplaysomthing3799
    @letsplaysomthing3799 9 месяцев назад +1

    how to do that on ue5? i cant find that settings on project setting

  • @youtubi123youtubipel
    @youtubi123youtubipel 2 года назад +8

    I did not understand something. Why did you set LOD 0 as the LOD for the occluded meshes? Wouldn't this means that UE will use the LOD 0 (most high poly version) for the occluded ones? Should'nt we set it to something like LOD 3 or 4, since it's a more low poly version?

    • @GDXR
      @GDXR  2 года назад +5

      Yes, ideally you would if you have more LODs on the model but they need to be created first. I plan to create a much longer optimization tutorial in the future showing this but in most instances people doing mobile and VR development, this will be a good place to get started.

    • @WoodysAR
      @WoodysAR Год назад

      @@GDXR also the LOD 0 are the ones that are around you and the ones that would be including things that are further away so it seems like those would be the ones to pick as the Ocluders.. I actually thought that's what it meant anyways... You would never be near an LOD 3 those are far away so are you choosing what is occluded or what is ocluding,,?

    • @WoodysAR
      @WoodysAR Год назад +1

      Surely one is concerned with releasing the largest models from memory... not the smallest?

  • @KillerBearsaw
    @KillerBearsaw 2 года назад

    Thanks, this helps out alot. Wouldn't have known about the LOD setting. Do you know of a way to default it to 0 for new static meshes?

    • @dokugames
      @dokugames 2 года назад +2

      Something to note, this video only applies to mobile.

    • @GDXR
      @GDXR  2 года назад

      Not that I know of, but definitely look into it some more as its possible to push this setting further.

  • @QuiteDan
    @QuiteDan Год назад +2

    I can't find LOD for Occluder Mesh is UE5. Did they change the methods?

    • @GDXR
      @GDXR  Год назад

      Yeah, they removed it shortly after i made the video I belive.

    • @QuiteDan
      @QuiteDan 2 месяца назад

      @@GDXR oh poo

  • @arcader9184
    @arcader9184 Год назад

    Is there any way I can do something like this for lights? I have a lot of movable lights, but even when they’re behind an object they still hurt performance. I know it’s good to use static lights most of the time, but most lights need to be movable for this project.

    • @dangerousbobstudioLLC
      @dangerousbobstudioLLC Год назад +1

      on lights, there is max draw distance. Set that to about 5000. any lights that are far from the player will fade out. really helps with the FPS.

  • @IJCT
    @IJCT 3 месяца назад

    does this only works for mobile? not desktop or consoles?

  • @AdrianoFerreira-nb8cd
    @AdrianoFerreira-nb8cd 2 года назад

    Awesome advice, I didn’t know this was a thing until I came across it. Does unreal not generate automatic LODs from view distance for you meaning , wouldn’t have to create LODs? So I can lower the LODs to 2 if I wanted or, is that a different method compared to occlusion culling.
    You said it’s for VR and Mobile so is there a different culling method for PC? :)

    • @WoodysAR
      @WoodysAR Год назад

      Think of it like this the LOD zeros are the most costly and if it's not creating an LOD 0 (on the other side of a building from your POV, then it's not creating a 1,2 or 3 either... You really need to separate in your mind the idea of distance and the idea of things on being the other side of other things and they're kind of separate. So whatever it is occluding, it's already getting rid of LOD0, and it is DEFINTELY not 'generating' any 1, 2 or 3 for those areas at those times! :) Those calls are not being made...

    • @WoodysAR
      @WoodysAR Год назад

      Also... Yes.. I too rarely use LODs greater than 2. Except maybe for things that are in thousands to millions like grass or in special cases where things are viewable from a very long distance :).. Even then... LOD can be a well executed plane w/ transparency and no one knows the difference...

  • @guillermofleitaspulido
    @guillermofleitaspulido Год назад +2

    Hi! 2:13 There is no option of "LOD for occluder Mesh " in unreal 5 is that normal or im doing something wrong?

    • @letsplaysomthing3799
      @letsplaysomthing3799 9 месяцев назад

      did u find solution?

    • @guillermofleitaspulido
      @guillermofleitaspulido 9 месяцев назад

      @@letsplaysomthing3799 I didnt find out, I think in unreal 5 it is activated by default but im not 100% sure, it was 6 months ago, sorry :(

    • @letsplaysomthing3799
      @letsplaysomthing3799 9 месяцев назад

      @@guillermofleitaspulido its okay thank you :)

  • @lifeartstudios6207
    @lifeartstudios6207 2 года назад +1

    occlusion culling is expensive. It's better for performance to turn it off and manually manage your scene's draw calls and poly counts. Otherwise, you'll have to make sure your cpu isn't bottlenecked by other game aspects to allow for culling.

    • @greengamerguy623
      @greengamerguy623 2 года назад +1

      This is very true the GPU in the Quest for example hates occlusion culling you will have a massive performance impact on mobilevr

    • @MonsterJuiced
      @MonsterJuiced 2 года назад

      yea this technique just lost me about 30 frames on the quest2

    • @lifeartstudios6207
      @lifeartstudios6207 2 года назад

      @@MonsterJuiced turning occlusion culling on or off?

    • @MonsterJuiced
      @MonsterJuiced 2 года назад

      @@lifeartstudios6207 on, i followed the tutorial and lost 30 fps. I'm building for quest 2 and inside the headset I lost around 15 to 20 which is quite substantial. In the video he said to set all LODs to 0. Then in a comment he said "oh uea but I didn't have other lods to use otherwise using lod3 or 4 would be ideal" which is ridiculius he could have said that because I thought it was using lod 0 as the occuding mesh and not the value of the mesh when it's occluded

    • @fatmon95
      @fatmon95 2 года назад

      @@greengamerguy623 Im not sure what you guys are doing wrong, but software occlusion is a massive performance gain on the quest 2. "managing" your scenes draw call is a nonsense statement because other than merging or distance culling there is no other way to get rid of unnecessary draws than to use software occlusion. When using vulkan there literally isn't depth based culling on the quest meaning that if you have an apple behind a wall then it still gets drawn even if its blocked by a wall if you don't believe me use the freeze rendering command and test it. The answer is to use large culling objects with low poly counts such as a big blank cube with an unlit material inside of all your level architecture pieces. The number of occluders and the polycount of those occluders matter. If you just use lod 0 for everything then of course software occlusion is gonna cost like 5ms but if you use simplified geometry then it costs less than .4 ms. stat softwareocclusion is your friend.

  • @gegen_den_strom
    @gegen_den_strom 2 года назад +1

    seems like this is not available in ue5?

    • @digitaldruglord6888
      @digitaldruglord6888 2 года назад

      I dont think UE5 has any new updates or benefits for mobile...