Unreal Best Practices

UNREAL ENGINE 5.1 BEST PRACTICES

VR BEST PRACTICES:

1.Use Console Variables Editor (experimental) from Plugins

The Console Variables Editor is a panel that displays information about all the console variables set in the project, and provides a central location to view and modify all the variables.

2.Useful VR Console Commands. You can use these settings as a starting point by copying them to your project’s Config/DefaultEngine.ini file under SystemSettings or in a new Console Variables Editor.

• vr.PixelDensity=1

• r.SeparateTranslucency=0

• r.HZBOcclusion=0

• r.MotionBlurQuality=0

• r.PostProcessAAQuality=3

• r.BloomQuality=1

• r.EyeAdaptationQuality=0

• r.AmbientOcclusionLevels=0

• r.SSR.Quality=1

• r.DepthOfFieldQuality=0

• r.SceneColorFormat=2

• r.TranslucencyVolumeBlur=0

• r.TranslucencyLightingVolumeDim=4

• r.MaxAnisotropy=8

• r.LensFlareQuality=0

• r.SceneColorFringeQuality=0

• r.FastBlurThreshold=0

• r.SSR.MaxRoughness=0.1

• r.rhicmdbypass=0

• sg.EffectsQuality=2

• sg.PostProcessQuality=0

3.Profiling VR Console Commands:

• Stat Unit

• Stat FPS

• Stat RHI

• Stat SceneRendering

• GPU = Ctrl + Shift + ,

• Stat GPU

• startfpschart/stopfpschart

• Stat Detailed

• ABTest (Value1) (Value2) e.g abtest r.VolumetricFog 0 1 to stop abtest stop

4.While previewing the project you can switch to camera mode to “fly” around the scene by typing the console command ToggleDebugCamera

5.It is better to test/preview the unbuild project using Standalone Game method and not just the VRpreview

•To make it run in VR go to Editor - Preferences - Level Editor - Play in Standalone Game - Additional Launch Parameters and add -vr

6.VR Mode not supported by OpenXR but can be used with SteamVR plugin. For its full features enable Legacy editor UI mode

Use VR Mode to design and build worlds in a virtual reality environment using the full capabilities of the Unreal Editor toolset combined with interaction models designed specifically for Virtual Reality (VR) world building.

Optimization tips:

-Precomputed visibility and cull distances.

-LODs and HLODs.

-Instances to reduce draw calls (local clusters).

-Avoid large meshes.

-Merge similar actors (local clusters).

-Disable unused rendering features, e.g. Deferred decals.

-Dont use Event Tick when you dont need it.

GENERAL BEST PRACTICES:

1.Use Columns view for more information about the assets in content browser.

The Columns view lays out all Assets with a spreadsheet-like arrangement of properties.

2.Use filters to select needed assets faster.

Filters and Collections are both ways to sort and group Assets inside the Content Browser.

3.Use Advanced Search Syntax and save it into Custom Filter.

You can search for your content in the Content Browser using advanced search operators. These operators can refine your search, making it easier for you to find what you need. You can also use them to search for key-value pairs from Asset metadata, and access special key values.

4.Use Bulk Edit via Property Matrix to change setting for a group of assets (Nanite,LODs, etc).

Use the Property Matrix to bulk edit and compare values for large numbers of Objects or Actors. It displays a configurable set of properties for a collection of objects as columns in a table view that can be sorted on any column. The Property Matrix also provides a standard property editor that displays all properties for the current selection set in the table view.

5.Use Master Materials and Material Instances

Material instancing is a way to create a parent Material that you can use as a base to make a wide variety of different looking children (Material instances).

6.Textures should always be a power of 2 (128,512,1024,2048,4096)

Use power of two sizes when possible, such as 32, 64, 128, 2048, and so on. Power of two values can be mipmapped and streamed. Non-power of two sizes are never streamed and do not generate mipmaps. Some GPUs have hardware limits in the maximum size texture they can support. For example, some GPUs may not support texture sizes larger than 8192 pixels (8k).}

7.Use texture MIP Mapping

The Level Of Detail section displays mip and LOD settings. Mip-map generation happens during importing of the Texture and creates a mip-map chain for the Texture

8.Use Merge Actor tool

Combine two or more Static Mesh Actors into a single new Actor using Actor merging. This reduces draw calls and helps with project optimization

9.Use Hierarchical Level of Detail (HLOD) system as a way to increase performance while keeping the quality high.

HLODs can replace multiple Static Mesh Actors with single, combined SM Actor at long view distances. This reduces the number of Actors needed to be rendered for the scene, increasing the performance by lowering the number of draw calls per frame.

10.Use Packed Level Actor by selecting a group of actors - right clicking on them and sending them to separate level instance.

It groups a Levels static meshes into as few static mesh instances as possible.

11.Use Modelling Tools Editor Mode and Static Mesh Editor Modeling Mode Plugins

Modeling Mode contains a variety of tools for creating both simple and complex 3D meshes for all your visualization projects. These tools are designed to streamline the modeling creation process and are compatible with meshes created using traditional workflows, as well as more complex meshes that are generated by photogrammetry

•For example - Change Pivot origin using Modeling Mode