User Tools

Site Tools


democap:performanceimprovements

This is an old revision of the document!


Start Page » DEMoCap: Drag[en]gine Motion Capture » Performance Improvements

VR is heavy on the GPU and thus performance problems are common. Following the steps outlined here can help to improve performance.

SteamVR Motion Smoothing

The biggest issue with SteamVR is the Motion Smoothing feature. This feature is designed to improve the re-projection calculation done by SteamVR to fill in frames if the application can not keep up with 90Hz render rate. The main problem here is that these calculations are tuned for virtual cameras to move exactly like your real world HMD does move. DEMoCap though provides motion capture support for all kinds of characters, especially those where the virtual head does not perform the same movement as your real head does. Since the virtual camera is attached to this virtual head the SteamVR calculations are done for the wrong camera movement and thus the result is aweful.

It is highly recommended to disable the Steam Motion Smoothing feature to get rid of these problems.

While taking care of the biggest issue these following steps can help improve the performance further

Settings Panel

Panel Settings

The settings panel provides these parameters you can tune.

Global Illumination

Global Illumination is heavy on the GPU. For motion capture these are usually not required hence you can disable this option in the settings panel. By default this option is disabled. Should this be enabled you can disable it to improve performance.

Graphic Module Parameters

Settings Dialog

Settings Dialog

In the UI Settings Panel click on Module Parameters button.

The module parameters dialog allows to change game engine module parameters. The graphic module parameters are of highest interest here to improve performance.

Once you are done making changes click on Save button to apply the changes. Upon exiting DEMoCap the changes are saved by the launcher and will be restored the next time DEMoCap is run.

SSAO

SSAO (Screen Space Ambient Occlusion) is a fill rate heavy render effect. In normal game rendering this is not much of a problem. With VR rendering though the fill rate consumption can push less performant cards over the cliffs.

Disable SSAO usually yields the biggest performance improvement hence try disabling this first.

It is recommended to always disable this parameter.

VR Render Scale

VR Systems indicate to the application the size to render for each eye. Especially for higher resolution HMDs this results in high fill rate which quickly cuts down performance. The OpenGL module supports rendering at lower resolution then upscaling to the requested render size. This causes the image to be of lower quality and makes using the VR menu harder but improves performance a lot. By halving the render size the fill rate drops to 25% which helps a lot.

This parameter supports entering a percentage value in the range from 50(%) to 100(%) in steps of 5(%). Depending on the GPU used switching to 75(%) can be enough to improve performance. For less performant GPU go down to 50(%).

GI Quality

If Global Illumination (GI) is enabled you can improve the performance by lowering the GI Quality parameter.

This parameters accepts the values “off”, “low”, “medium”, “high” and “veryHigh”.

Shadow Quality

Defines the size of rendered shadow maps. This is usually not a problem unless the GPU is not so strong. You can though lower the quality or disable shadow casting altogether.

This parameters accepts the values “off”, “low”, “medium”, “high” and “veryHigh”.

SSR

SSR (Screen Space Reflection) is another effect which can improve performance if it is disabled. In general though this effect has less impact on performance but if you are in a pinch you can try disabling this effect too.

Transparency Layer Limit

If you use scenes or characters with lots of transparency this can cause performance issues. Using this parameter you can limit the count of transparent layers rendered. This can causes artifacts if more layers than allowed are required to render each pixel correctly. Still limiting the maximum count of transparent layers rendered can improve the performance.

Using a value of 4 is usually a good value to use. If performance is an issue you can try dropping it down to 2. Going down to 1 is not recommended as this can easily break rendering.

You could leave a comment if you were logged in.
democap/performanceimprovements.1660441269.txt.gz · Last modified: 2022/08/14 01:41 by dragonlord