Develop

Hands Removal

Updated: Apr 14, 2026

Overview


If you want to render virtual hands to replace the physical hands, this can result in depth fighting. To avoid this, you can enable the hands removal feature, which removes hands from the environment depth texture and replaces the affected region with a depth estimate of the environment behind the hands.
Comparison showing virtual hands with and without depth hand removal to prevent depth fighting.
Note: Hand tracking must be active for hand removal to take effect. The feature is not supported while holding controllers.

Implementation


Environment depth must be started via StartEnvironmentDepth for hand removal to produce a visual effect. You can call SetEnvironmentDepthHandRemoval before or after starting environment depth. If called before, the setting is saved and applied when depth starts.

Blueprint

Enable hand removal by using the SetEnvironmentDepthHandRemoval Blueprint node. The node accepts a boolean input to enable or disable hand removal.

C++

Enable hand removal by calling UOculusXRFunctionLibrary::SetEnvironmentDepthHandRemoval from C++:
#include "OculusXRFunctionLibrary.h"

// Enable hand removal from the environment depth texture
UOculusXRFunctionLibrary::SetEnvironmentDepthHandRemoval(true);
For a complete working implementation, see the Unreal-OcclusionSample.