Oculus Go Development

On 6/23/20 Oculus announced plans to sunset Oculus Go. Information about dates and alternatives can be found in the Oculus Go introduction.

Oculus Quest Development

All Oculus Quest developers MUST PASS the concept review prior to gaining publishing access to the Quest Store and additional resources. Submit a concept document for review as early in your Quest application development cycle as possible. For additional information and context, please see Submitting Your App to the Oculus Quest Store.

Configure the Oculus Plugin for Unreal Engine

The Oculus Integration for Unreal Engine enables you to easily configure your app for things like overlay and focus-aware support, color gamut setting, pixel density for Rift apps, FFR settings for Quest and Go apps and more. This topic describes the settings and links to topics that contain more information.

Configuration File

The OculusVR plugins page in the project settings enables you configure some aspects of engine behavior for your Oculus project, and in some cases have those settings written to the DefaultEngine.ini configuration file for the project. The DefaultEngine.ini file can be found under the Config folder for your project. To learn more about configuration files for Unreal Engine see Configuration Files in the Unreal Engine documentation

In other cases, like when you change the focus aware setting for Oculus Quest, entries are added to the app’s manifest when you package the project.

View Project Settings

Once you have created a project and enabled the Oculus VR Plugin, you can access the plugin-specific settings. To do this:

  1. Open your project in UE4.
  2. Go to Edit > Project Settings
  3. Go to Plugins and select OculusVR The Plugins - OculusVR page displays.

    This page enables you to make the following settings:

    The following image shows an example of this page:

General Oculus Settings

The General Oculus project settings enables you to Launch the Oculus Performance Window, Oculus Platform Window and Enable Oculus Build Telemetry.

The Oculus Performance Window makes it easy to configure performance-specific properties of your UE project. For more about these settings, see Oculus Performance Window.

The Oculus Platform Window provides an integrated way for you to upload your Unreal Engine apps for Oculus devices to the Oculus Store. For more information about this page, see Oculus Platform Tool.

Enable Oculus Build Telemetry is checked by default. Checked (true means this telemetry is generated, false to turn off telemetry. Uncheck this option if you don’t want telemetry.

Splash Screen Settings

The splash screens option provides the Auto Enabled checkbox, which enables/disables splash screen auto-loading. This option is on by default. In addition this section enables you to easily add an array of components that make up the splash screen to display when levels are loading in your app. You can also configure options like the texture path, transforms, scale and offset for the splash screen components. The Oculus Store requires For more information about how to configure these, see Splash Screens.

General Settings

The general section enables you to specify the color space based on the device your app targets, because the color space on each device type is slightly different. You can set the color space in which you have mastered your app so the appropriate colors are shown when the app runs. We recommend that you master your applications for the Oculus Rift CV1 color space for Rift CV1 and Rift S, and Rec.2020 color space for Oculus Quest and Go to maintain compatibility with VR apps on the Oculus Store. For more information on how to set the color space, see Color Space and Color Scaling. For detailed design guidance about color space, see the Color and Brightness Mastering Guide.

  • Enable Specific Color Gamut - Sets whether the target Oculus device performs a color space transformation on the app. Each device has uses a different color space and this setting enables an automatic transformation to the target device. Check the option to enable the transformation, uncheck to disable it. The default is false (unchecked).
  • Color Space - Sets the target color space for the app. Choose between:

    • Unknown (default) - The default value of GetHMDColorSpace until SetClientColorDesc is called. Valid on PC, mapped to Quest on Quest and Go.
    • Unmanaged: No color correction. Not recommended for production apps.
    • Rec2020 - Preferred color space for standardized colors across all Oculus devices. This color space uses D65 (daylight) for its white point.
    • Rec709 - Color space used on Oculus Go. Uses the same primary color coordinates as sRGB.
    • RiftCV1 - Indicates the original Rift unique color space.
    • RiftS - Indicates the RiftS unique color space.
    • Quest - The Quest native color space, which is similar to the RiftCV1 color space.
    • P3 - Similar to the DCI-P3 color space.
    • Adobe RGB - Similar to sRGB, but with deeper greens using D65 (daylight) for its white point.

PC Settings

The PC section contains settings specific to apps for Oculus Rift. This section contains the following:

  • Supports Dash - Indicates whether your app supports focus-awareness and displays the Oculus Dash as an overlap to your app. True to support Dash; otherwise false. This is true (checked) by default. For more information, see Oculus Dash, Overlays and Input Focus.
  • Composites Depth - Indicates whether the app’s depth layers is shared with the Rift compositor. True to support composites depth; otherwise false. True (checked) by default.
  • HQDistortion - Indicates whether mipmaps are computed for the eye buffers every frame. This results in higher-quality distortion but can have a performance impact if on. True to compute mipmaps for every frame; otherwise false. False (unchecked) by default.
  • Pixel Density Min - Minium allowed pixel density for the app. 0.5 by default. Use this to override the default setting. For more about pixel density, see Pixel Density.
  • Pixel Density Max - Maximum allowed pixel density for the app. 1.0 by default. Use this to override the default setting. For more about pixel density, see Pixel Density.

Mobile Settings

The Mobile section contains settings that affect apps for Oculus Quest and Oculus Go. This section contains the following:

  • CPULevel - Use this to set a fixed CPU level for the app. This is an abstract setting and not tied to MHz / GHz, so some effort can be made to it compatible with future devices. For current hardware, the levels can be 0, 1, 2, 3, or 4 for CPU. 0 is the slowest and most power efficient; 4 is the fastest and hottest. Read more about CPU and GPU levels in Power Management in the native mobile documentation.
  • GPULevel - Use this to set a fixed GPU level for the app. This is an abstract setting and MHz / GHz, so some effort can be made to make them compatible with future devices. For current hardware, the levels can be 0, 1, 2, 3, or 4. 0 is the slowest and most power efficient; 4 is the fastest and hottest. Read more about GPU levels in Power Management in the native mobile documentation.
  • FFRLevel Fixed Foveated Rendering is a setting that enables the edges of eye buffers to render at a lower resolution than the center of view, and can have performance benefits. You can set this to Off , Low, Medium, High or HighTop, where High indicates the highest level of resolution reduction. For more information, see Fixed Foveated Rendering.
  • FFRDynamic - Indicates whether the foveation level is adjusted dynamically depending on GPU load. True to enable dynamic foveation; otherwise false. False (unchecked) by default. For more information, see Fixed Foveated Rendering.
  • ChromaCorrection - Indicates whether the compositor should compensate for chromatic aberration. When on, this can put a heavier load on the GPU, but improves the color at the edges of the device lenses. True indicates chroma correction is on; false means it is off. False (unchecked) by default.
  • Recenter HMDWith Controller - On Oculus Go, indicates whether the device is recentered when the recenter button on the controller is pressed. True to recenter; otherwise false. True (checked) by default.
  • Focus Aware - Indicates whether the app supports focus-awareness and displays the Universal Menu as an overlap to your app. True (checked) to support Universal Menu; otherwise false. This is true (checked) by default. When Focus Aware is checked, the following entry is added to the app manifest under the <activity> node, when you package it for Android: <meta-data android:name="com.oculus.vr.focusaware" android:value="true"/>. For more information, see Oculus Dash, Overlays and Input Focus.
  • Hand Tracking Support _ Indicates whether the app supports hand tracking, controllers or both hand tracking or controllers. For more information, see Hand Tracking.
  • Late Latching - [Experimental Feature] Indicates whether late latching to reduce device and controller latency is turned on your app. True (checked) to enable late latching; otherwise false. This is false (unchecked) by default. If you enable late latching, you must also enable Vulkan and multiview. For more about late latching, see UE4 Late Latching for Oculus Quest (blog).