Announcement

Collapse
No announcement yet.

Lean Mean UE4 Mobile VR Settings

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

    Lean Mean UE4 Mobile VR Settings

    I spoke with Nick Whiting at Steam Dev Days about getting some settings for an Unreal Project that is the bare bones minimum to run with the best possible performance in Android VR. He mentioned I should put a post here on the Unreal Forums and that Sam Dieter had some settings he could share with us.

    No physics, no post processing, no fancy lighting, no fancy particle effects, etc. All off if possible without modifying engine code.

    We have followed best practices and set things up turning all additional effects off etc ( except hardware Mobile MSAA ), but as there are many different systems, we want to make sure we've caught everything.

    Thanks!

    #2
    Hey Elecorn,

    I do have a few settings you can use to make your project run as fast as possible on Android. Please keep in mind that these settings will take you to a lot of different areas of the engine, but I will try and group as many of them together as I can.

    Existing Doc's

    Make sure you check out the following doc's as they have a lot of great information related to performance on mobile devices.

    https://docs.unrealengine.com/latest...cks/index.html
    https://docs.unrealengine.com/latest...e/Performance/

    New Project Settings
    When you create a new project make sure to use the Mobile and Scaleable 2D / 3D settings to make sure that all advanced graphics options have been disabled.

    Disable Post Process Settings

    To make sure that no Post Processes options are accidently enabled you should add a Post Process volume to your level and then in each of the sections, that makes sense to disable, enable the first parameter in the section and set it's value to 0 which will disable it. I have copyed the PP Volume from one of my example levels which you can copy and then paste into your UE4 scene to get the same results.

    Code:
    Begin Map
       Begin Level
          Begin Actor Class=PostProcessVolume Name=PostProcessVolume_1 Archetype=PostProcessVolume'/Script/Engine.Default__PostProcessVolume'
             Begin Object Class=BrushComponent Name="BrushComponent0" Archetype=BrushComponent'Default__PostProcessVolume:BrushComponent0'
                Begin Object Class=BodySetup Name="BodySetup_1"
                End Object
             End Object
             Begin Object Class=CubeBuilder Name="CubeBuilder_3"
             End Object
             Begin Brush Name=Model_2
             End Brush
             Begin Object Name="BrushComponent0"
                Begin Object Name="BodySetup_1"
                   AggGeom=(ConvexElems=((VertexData=((X=-100.000000,Y=100.000000,Z=-100.000000),(X=-100.000000,Y=100.000000,Z=100.000000),(X=-100.000000,Y=-100.000000,Z=100.000000),(X=-100.000000,Y=-100.000000,Z=-100.000000),(X=100.000000,Y=100.000000,Z=-100.000000),(X=100.000000,Y=100.000000,Z=100.000000),(X=100.000000,Y=-100.000000,Z=-100.000000),(X=100.000000,Y=-100.000000,Z=100.000000)),ElemBox=(Min=(X=-100.000000,Y=-100.000000,Z=-100.000000),Max=(X=100.000000,Y=100.000000,Z=100.000000),IsValid=1))))
                   bGenerateMirroredCollision=False
                   CollisionTraceFlag=CTF_UseSimpleAsComplex
                End Object
                Brush=Model'Model_2'
                BrushBodySetup=BodySetup'BodySetup_1'
             End Object
             Begin Object Name="CubeBuilder_3"
             End Object
             Settings=(bOverride_AmbientCubemapIntensity=True,bOverride_AutoExposureMinBrightness=True,bOverride_AutoExposureMaxBrightness=True,bOverride_LensFlareIntensity=True,bOverride_AmbientOcclusionIntensity=True,bOverride_MotionBlurAmount=True,bOverride_ScreenSpaceReflectionIntensity=True,bOverride_ScreenSpaceReflectionQuality=True,AmbientCubemapIntensity=0.000000,AutoExposureMinBrightness=1.000000,AutoExposureMaxBrightness=1.000000,LensFlareIntensity=0.000000,AmbientOcclusionIntensity=0.000000,MotionBlurAmount=0.000000,ScreenSpaceReflectionIntensity=0.000000,ScreenSpaceReflectionQuality=0.000000)
             BrushType=Brush_Add
             Begin Brush Name=Model_2
                Begin PolyList
                   Begin Polygon
                      Origin   -00100.000000,-00100.000000,-00100.000000
                      Normal   -00001.000000,+00000.000000,+00000.000000
                      TextureU +00000.000000,+00001.000000,+00000.000000
                      TextureV +00000.000000,+00000.000000,-00001.000000
                      Vertex   -00100.000000,-00100.000000,-00100.000000
                      Vertex   -00100.000000,-00100.000000,+00100.000000
                      Vertex   -00100.000000,+00100.000000,+00100.000000
                      Vertex   -00100.000000,+00100.000000,-00100.000000
                   End Polygon
                   Begin Polygon
                      Origin   -00100.000000,+00100.000000,-00100.000000
                      Normal   +00000.000000,+00001.000000,+00000.000000
                      TextureU +00001.000000,-00000.000000,+00000.000000
                      TextureV +00000.000000,+00000.000000,-00001.000000
                      Vertex   -00100.000000,+00100.000000,-00100.000000
                      Vertex   -00100.000000,+00100.000000,+00100.000000
                      Vertex   +00100.000000,+00100.000000,+00100.000000
                      Vertex   +00100.000000,+00100.000000,-00100.000000
                   End Polygon
                   Begin Polygon
                      Origin   +00100.000000,+00100.000000,-00100.000000
                      Normal   +00001.000000,+00000.000000,+00000.000000
                      TextureU +00000.000000,-00001.000000,+00000.000000
                      TextureV +00000.000000,+00000.000000,-00001.000000
                      Vertex   +00100.000000,+00100.000000,-00100.000000
                      Vertex   +00100.000000,+00100.000000,+00100.000000
                      Vertex   +00100.000000,-00100.000000,+00100.000000
                      Vertex   +00100.000000,-00100.000000,-00100.000000
                   End Polygon
                   Begin Polygon
                      Origin   +00100.000000,-00100.000000,-00100.000000
                      Normal   +00000.000000,-00001.000000,+00000.000000
                      TextureU -00001.000000,-00000.000000,-00000.000000
                      TextureV +00000.000000,+00000.000000,-00001.000000
                      Vertex   +00100.000000,-00100.000000,-00100.000000
                      Vertex   +00100.000000,-00100.000000,+00100.000000
                      Vertex   -00100.000000,-00100.000000,+00100.000000
                      Vertex   -00100.000000,-00100.000000,-00100.000000
                   End Polygon
                   Begin Polygon
                      Origin   -00100.000000,+00100.000000,+00100.000000
                      Normal   +00000.000000,+00000.000000,+00001.000000
                      TextureU +00001.000000,+00000.000000,+00000.000000
                      TextureV +00000.000000,+00001.000000,+00000.000000
                      Vertex   -00100.000000,+00100.000000,+00100.000000
                      Vertex   -00100.000000,-00100.000000,+00100.000000
                      Vertex   +00100.000000,-00100.000000,+00100.000000
                      Vertex   +00100.000000,+00100.000000,+00100.000000
                   End Polygon
                   Begin Polygon
                      Origin   -00100.000000,-00100.000000,-00100.000000
                      Normal   +00000.000000,+00000.000000,-00001.000000
                      TextureU +00001.000000,+00000.000000,+00000.000000
                      TextureV +00000.000000,-00001.000000,+00000.000000
                      Vertex   -00100.000000,-00100.000000,-00100.000000
                      Vertex   -00100.000000,+00100.000000,-00100.000000
                      Vertex   +00100.000000,+00100.000000,-00100.000000
                      Vertex   +00100.000000,-00100.000000,-00100.000000
                   End Polygon
                End PolyList
             End Brush
             Brush=Model'Model_2'
             BrushComponent=BrushComponent0
             BrushBuilder=CubeBuilder'CubeBuilder_3'
             bHidden=False
             RootComponent=BrushComponent0
             ActorLabel="PostProcessVolume"
          End Actor
       End Level
    Begin Surface
    End Surface
    End Map

    Material Options

    If you select the Main Material node in the Material Editor and then go to the details pannel there are a number of things you can disable to make the Materials faster to render. Keep in mind that some of the settings will disable your Materials ability to use certian input which will effect how your Material looks.
    • Shading Model: Unlit
    • Fully Rough: True
    • Use Lightmap Directionality: False


    Lighting / Shadowing
    To make sure that your lighting is as cheap as possible make sure all your light's are set to Static and not Stationary or Dynamic. I would also make sure to disable any dynamic shadow casting on objects to ensure that they will not cast dynamic shadows.

    If you try all of the following and are still haveing performance issuses please post back with the kinds of issues you are having and I will see what else I can do to help you get your project running at the proper frame rate and if you have any other questions please let me know.

    Cheers-

    Sam Deiter

    Comment


      #3
      Awesome! Thanks so much Sam! I will let you know what we find.

      Comment


        #4
        Should the post process volume you have above be unbound?

        Comment


          #5
          Originally posted by elecorn View Post
          Should the post process volume you have above be unbound?
          Yes it should if you want it to be the post processing for the entire level.

          Comment

          Working...
          X