Graphics project settings reference
Apply global settings for graphics.
Read time 14 minutesLast updated 4 days ago
Use the Graphics settings (main menu: Edit > , then select the Graphics category) to apply global settings for Graphics.
Project Settings
?
When you build your project, the values of these settings become static. You can't change the settings at runtime.
This section provides documentation on the following groups of properties:
Set Default Render Pipeline Asset
Use the Default Render Pipeline field to set the default render pipeline Unity uses to render your project. For example, set Default Render Pipeline to a Universal Render Pipeline (URP) asset to use URP to render your project.
If Default Render Pipeline is set to None, Unity uses the Built-In Render Pipeline.
For more information, refer to the following:
Shader Build Settings
These properties allow you to reduce shader variants in your build.
Open the Keyword Declaration Overrides dropdown to add the keyword sets you want to set to a different keyword type or remove.
Property | Description |
|---|---|
| Keyword Set | The keyword set you want to set to a different keyword type or remove. Use spaces to separate keywords in the set, for example To change the keyword type, use the Type Override property. To exclude a keyword in the build, select the foldout (triangle) then disable the checkbox for the keyword. For more information, refer to reduce shader variants. |
| Type override | The keyword type to use for the keyword set. The options are:
|
| Selected keywords | The number of keywords you select from the keyword set to be included in the build, out of the total number of keywords in the set. |
| Revert | Cancel your changes. |
| Apply | Apply your changes. |
Shader stripping
These properties allow you to configure shader variant stripping in your build.
By default, Unity examines the scenes in the build and automatically strips shader variants that are not used in those scenes. However, this can cause problems if you want to use shaders or variants at runtime that would not otherwise be included in the build. For example, if you use AssetBundles or Addressables that rely on those shaders or variants, or if you use shader keywords to change variants at runtime.
Property | Function |
|---|---|
| Lightmap Modes | Determine the shader variant stripping behavior for lightmap-related shaders. The options are:
|
| Fog Modes | Determine the shader variant stripping behavior for shaders that relate to Unity's built-in fog effect. The options are:
|
| Instancing Variants | Determine the shader variant stripping behavior for shaders that relate to GPU instancing. The options are:
|
Shader loading
These properties allow you to configure how Unity prewarms graphics state collections or shader variant collections in your application.
For information on prewarming, including important information about graphics API support, refer to Introduction to PSO tracing and warming.
Property | Function |
|---|---|
| Renderer Light Probe Selection | Choose the type of probe Unity uses when a Renderer receives global illumination from Light Probes but is not within the volume of influence (the tetrahedron) of any group of Light Probes. Options:
|
| Preload Graphics State Collection | Select the graphics state collection to load before beginning PSO tracing or prewarming on application start, depending on the behavior specified in Collection Startup Behavior. |
| Collection Startup Behavior | Determine whether to trace or warmup PSOs at application startup. The options are:
|
| Save As | Specify the name and file path within the application's persistent data directory to save the resulting graphics state collection file to. If you enable Send to Editor, the save location is relative to the project's Note: This option is only available when the Collection Startup Behavior is BeginTrace. |
|Send to Editor| Enable to send the resulting graphics state collection asset to the Editor if connected using the Autoconnect Profiler build setting.
Note: This option is only available when the Collection Startup Behavior is BeginTrace.| |Additional Collections| Add any additional graphics state collections to append to the specified collection in Preload Graphics State Collection before initiating warmup.| |Warmup Asynchronously| Enable to prewarm PSOs in the background without blocking the main thread until completion.| |Warmup After Showing First Scene| This property determines when Unity prewarms the graphics states specified in Preload Graphics State Collection.
If enabled, Unity loads and prewarms the PSOs after the first scene has fully loaded. Otherwise, Unity loads and starts prewarming before showing the first scene.| |Progressive count limit per frame| Determines how Unity prewarms the graphics states specified in Preload Graphics State Collection if Warmup After Showing First Scene is enabled.
If set to , Unity preloads all PSOs on the next frame after it displays the first scene.
0Otherwise, Unity preloads new PSOs over multiple frames after it displays the first scene. In a given frame, Unity is limited to the specified number of graphics states and doesn't begin prewarming new PSOs until the next frame.| |Enable Cache Miss Tracing| If enabled and Warmup is set as the Collection Startup Behavior, any new un-warmed graphics states after prewarming is complete will be traced to a separate graphics state collection. Tracing is only supported on development builds.| |Cache Miss Collection Save Path| Specify the name and file path within the application's persistent data directory to save the resulting graphics state collection file to.
Note: This option is only available when you enable Enable Cache Miss Tracing.| |Preload Shaders| The shader variant collections to prewarm on application start.
Note: For better stutter reduction, Unity recommends you instead prewarm PSOs with graphics state collections.| |Preload Shaders After Showing First Scene| This property determines when Unity prewarms the shader variants specified in Preload Shaders.
If enabled, Unity loads and prewarms the variants after the first scene has fully loaded. Otherwise, Unity loads and prewarms them before showing the first scene.| |Preload Time Limit Per Frame (ms)| Specify the per-frame time limit for Unity to prewarm the shader variants specified in Preload Shaders if Preload Shaders After Showing First Scene is enabled.
If set to , Unity preloads all shader variants on the next frame after it displays the first scene.
0Otherwise, Unity preloads new shader variants over multiple frames after it displays the first scene. In a given frame, Unity prewarms shader variants until it reaches the time limit set in this property, then doesn't begin prewarming new shader variants until the next frame. |
Tracked shader variants
The Unity Editor can track which shader variants your application uses when it runs. You can use this information to build shader variant collections.
Control | Function |
|---|---|
| Create asset | Creates a new shader variant collection asset using the currently tracked shader variants. |
| Clear | Clear tracked shader variants. |
Culling settings
Camera-Relative Culling determines whether Unity uses the camera position as the reference point for culling.
Property | Function |
|---|---|
| Lights | Use the camera position as the reference point to cull lights instead of the world space origin. Enable Lights to reduce flickering if lights are far away from the camera. Refer to Understanding the View Frustum for more information. |
| Shadows | Use the camera position as the reference point to cull shadows instead of the world space origin. Enable Shadows to reduce flickering if shadows are far away from the camera. Refer to Understanding the View Frustum for more information. |
Pipeline-specific settings
The Graphics settings window always contains the Built-in Render Pipeline settings below.
However if your project uses a Scriptable Render Pipeline (SRP), for example the Universal Render Pipeline (URP) or the High Definition Render Pipeline (HDRP), the window contains a tab for each SRP in your project. Refer to the following pages for more information:
Camera Settings
These properties control various rendering settings.
Property | Function |
|---|---|
| Transparency Sort Mode | Define the order for rendering objects by their distance along a specific axis. Renderers in Unity are sorted by several criteria, such as their layer number or their distance from the camera. This is generally only useful in 2D development: for example, sorting Sprites by height or along the Y-axis. The options are:
|
| Transparency Sort Axis | Define a custom Transparency Sort Mode. |
Tier Settings
In the Built-in Render Pipeline, you can use Tier settings to change rendering and shader compilation settings for different types of hardware. For more information, see Graphics tiers.
Property | Function |
|---|---|
| Standard Shader Quality | Set the quality of the Standard Shader to High, Medium, or Low. |
| Reflection Probes Box Projection | Enable projection for reflection UV mappings on Reflection Probes. |
| Reflection Probes Blending | Enable blending on Reflection Probes. |
| Detail Normal Map | Enable Detail Normal Map sampling, if assigned. |
| Enable Semitransparent Shadows | Enable Semitransparent Shadows. This adds or removes the UNITY_USE_DITHER_MASK_FOR_ALPHABLENDED_SHADOWS shader compiler define. |
| Enable Light Probe Proxy Volume | Enable rendering a 3D grid of interpolated Light Probes. |
| Cascaded Shadows | Enable using cascaded shadow maps. This adds or removes the UNITY_NO_SCREENSPACE_SHADOWS shader compiler define. |
| Prefer 32 bit shadow maps | Enable 32-bit float shadow map when you are targeting platforms that use DX11 or DX12. Most platforms have a fixed shadow map format that you can't adjust. These vary in format, and can be 16-bit, 24-bit, or 32-bit, and can also be either float- or integer-based. 32-bit shadow maps give higher quality shadows than 16-bit, but use increased memory and bandwidth on the GPU. Note: To use 32-bit shadow maps, make sure the depth buffer is also set to 32-bit. |
| Use HDR | Enable High Dynamic Range rendering for this tier. |
| HDR Mode | Select the format to use for the HDR buffer when HDR is enabled for the current Graphics Tier. By default, this is set to FP16. The options are:
|
| Rendering Path | Choose how Unity should render graphics. Different rendering paths affect the performance of your game, and how lighting and shading are calculated. Some paths are more suited to different platforms and hardware than others. Deferred rendering is not supported when using Orthographic projection. If the camera’s projection mode is set to Orthographic, these values are overridden, and the camera always uses Forward rendering. The options are:
|
| Realtime Global Illumination CPU Usage | The CPU budget you allow Enlighten Realtime Global Illumination to use for lighting calculations at runtime. Increasing this makes the system react faster to changes in lighting at a cost of using more CPU time. Note: Some platforms allow all CPUs to be occupied by worker threads whereas some enforce maximums. For example, some gaming consoles allow a maximum of 4 CPU cores. For Android devices, if it is a bigLittle architecture, only the little CPUs are used; otherwise the maximum is one less than the total number of CPUs. If you use the URP or HDRP render pipelines, you can configure this property in the quality settings. The options are:
|
Built-in shader settings
Use these settings to specify which shader to use for each of the listed features in the Built-in Render Pipeline.
Rendering path | Shader to use |
|---|---|
| Deferred | Use with Deferred shading. |
| Deferred Reflection | Use with Reflection Probes in deferred shading. |
| Screen Space shadows | Use with cascaded shadow maps for directional lights on PC/console platforms. |
| Motion vectors | Use for object-based motion vector calculations. |
| Lens Flare | Use with Lens Flares. |
| Light Halo | Use with Light Halos. |
For each of these features, you can choose which type of Shader to use:
- No Support disables this calculation. Use this setting if you are not using deferred shading. This will save some space in the built game data files.
- Built-in Shader uses Unity's built-in Shaders to do the calculation. This is the default.
- Custom Shader uses your own compatible Shader to do the calculation. This enables you to do deep customization of deferred rendering.
When you choose Custom shader, a reference property appears below the feature property where you can set a reference to the Shader you want to use.
Shader
?
Always Included Shaders
This is a list of shaders for which Unity includes all possible variants in every build. This can be useful if you want to use shaders or variants at runtime that would not otherwise be included in the build; for example, if you use AssetBundles or Addressables that rely on those shaders or variants, or if you use shader keywords to change variants at runtime.
To add a shader to the list, increase the value in the Size property. To remove the last shader in the list, decrease the Size property. To remove a shader which is not the last one in the list, you can set the value to None.