Performance Settings
TButt exposes performance and quality settings from Unity and platform SDKs into an editor window so you can tweak and test until you find the best fit for your game.
Timestep
The Core Settings window offers optional, per-platform settings for syncing Unity Time settings with the refresh rate of the active headset.
Value | Description |
---|---|
Locked | Sets the timestep to match the framerate of the active headset (1/90 for 90hz, 1/60 for 60 hz, etc). |
Half | Sets the timestep to be half the framerate of the active headset (1/45 for 90hz, 1/30 for 60 hz, etc). |
Keep Unity Setting | Leaves your time setting alone. |
Target Timestep
Assigns the fixed delta time in relation to the headset.
Max Timestep
Assigns the maximum delta time in relation to the headset. We recommend leaving this at “half” on platforms offer reprojection or motion smoothing systems (such as Steam and Oculus PC) and setting it to “locked” on platforms that do not (such as Oculus mobile and Daydream).
GPU Performance
Some Unity rendering settings are assigned per-platform using the Core Settings tool.
GPU Sorting Mode
Adjusts the OpaqueSortMode property on the camera. If you are CPU limited and batching to optimize draw calls (usually on mobile), you want to use No Distance Sort. If you are being hurt by overdraw (usually on PC/console), you may have better performance with Front to Back. If you aren’t sure, set it to Default to use Unity’s recommended setting.
Camera Depth Texture
Adjusts the DepthTextureMode property on the camera. You can use this to explicitly disable the depth texture on platforms where you don’t need it for shaders or post-processing effects to improve performance.
Renderscale
Controls the (XRSettings.eyeTextureResolutionScale
) at startup. The defaults represent the recommended renderscales provided by each platform.
TBQualitySettings
TButt includes an internal quality level that is decoupled from Unity’s quality settings. You can assign different quality levels to different platforms to create quality level buckets, and then reference it at runtime to adjust your game’s fidelity across those buckets.
Example
if(TBSettings.GetCurrentQualityLevel() < TBSettings.TBQualityLevel.Medium)
{
// Play low-res VFX
}
else
{
// Play high-res VFX
}
Note: Use of the quality level system is completely optional. TButt does not rely on any particular values being assigned to it.
Quality Settings Overrides
You can optionally override the Unity quality settings for each platform by toggling the override in the Core Settings menu.
Oculus Rendering Options
Fixed Foveated Rendering
Available on: Oculus Quest, Oculus Go. Amount of Fixed Foveated Rendering to use. See Oculus documentation here for more details. Options: None
Low
Medium
High
.
Refresh Rate
Available on: Oculus Go. Choose the refresh rate mode to use. Options: 60
72
.
Adaptive Resolution
Available on: Oculus Rift. Assign values for the Oculus adaptive resolution system. See Oculus documentation here for more details.