Version: Unity 6.7 Alpha (6000.7)
Language : English
2D and 3D mode settings
Package Manager

Graphics settings reference

Important: The Built-In Render Pipeline is deprecated and will be made obsolete in a future release.
It remains supported, including bug fixes and maintenance, through the full Unity 6.7 LTS lifecycle.
For more information on migration, refer to Migrating from the Built-In Render Pipeline to the Universal Render Pipeline and Render pipeline feature comparison.

Use the Graphics settings (menu: Edit > Project Settings, then select the Graphics category) to apply global settings for Graphics.

Note: You can also access Graphics settings from the Build Profiles window (menu: File > Build Profiles). With build profilesA set of customizable configuration settings to use when creating a build for your target platform. More info
See in Glossary
, you can customize the Graphics settings per build profile to set different values for each platform. For more information, refer to Customize settings with build profiles.

When you build your project, the values of these settings become static. You can’t change the settings at runtime.

This page 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, set named numeric constants for your shaders, and select a shader compiler.

Keyword Declaration Overrides

Use these properties to reduce shader variants in your build.

Important: When you remove built-in shader keywords, Unity might strip shader variants your built project needs. To check how many shader variants your project has, enable strict shader variant matching, otherwise Unity might replace missing shader variants with others. For more information, refer to Check how many shader variants you have.

Open the Keyword Declaration Overrides foldout (triangle) to add the keyword sets you want to set to a different keyword type or remove.

Property Description
Keyword Set Specifies the keyword set to assign to a different keyword type or remove. Use spaces to separate keywords in the set, for example FOG_LINEAR FOG_EXP FOG_EXP2. Enter all the keywords in the set, including _ if it exists.

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 Specifies the keyword type to use for the keyword set. The options are:
  • Default: Uses the keyword type the shader code uses.
  • shader_feature: Compiles shader variants for keyword combinations that materials in your build use, and removes other shader variants. Use this option if the keywords are material properties.
  • multi_compile: Compiles shader variants regardless of whether they’re used by materials in your build. Use this option if you need to use a C# script to change the state of the keywords at runtime.
  • dynamic_branch: Uses dynamic branching for conditional code that uses these keywords, and doesn’t compile shader variants. Use this option if your shaders run on a fast GPU, and don’t have asymmetric code branches where one branch is longer or more complex than the other.
For more information, refer to How Unity compiles branching shaders.
Selected keywords Shows the number of keywords selected from the keyword set to be included in the build, out of the total number of keywords in the set.
Revert Cancels your changes.
Apply Applies your changes.

Shader Constant Defines

Open the Shader Constant Defines foldout (triangle) to create preprocessor #define directives with constant values for all your shaders.

To set a different constant value for each platform, use the Build Profiles window. For more information, refer to Use shader constants instead of keywords.

Property Description
Shader Constant Defines Sets the list of constants to define for all your shaders.
Add (+) Adds a new constant to the list. To create the constant, enter the name followed by a space and the value, for example NUMBER_OF_MSAA_SAMPLES 4. Add f to the value if the value is a float.
Remove () Removes the selected constant from the list.

Shader Compiler Backend Selection

This section applies only if you build for the Direct3D 12 (DX12) graphics API.

Note: You can’t change these properties in the Graphics settings window. Set them in the build profile settings instead.

Property Description
Graphics API Sets the graphics API you want to select the shader compiler for. The only option is Direct3D12.
Compilers Sets the shader compiler Unity uses for the Graphics API.

The options are:
  • Default: Compiles shaders for the Graphics API using the Unity default, which is the DirectX 11 shader compiler.
  • DirectX 11 Shader Compiler (FXC): Compiles shaders for the Graphics API using the DX11 shader compiler. This is the recommended option if you build for both DX11 and DX12, otherwise Unity compiles two sets of shaders by using FXC for DX11 and DXC for DX12.
  • DirectX 12 Shader Compiler (DXC): Compiles shaders for the Graphics API using the DX12 shader compiler. This is the recommended option if you build for DX12 only.
For more information, refer to Compile shaders with the DirectX 12 compiler and Shader compilation.

To override the compiler for a specific shader, use the #pragma never_use_dxc or #pragma use_dxc directives. For more information, refer to HLSL pragma directives reference.

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 variantsA verion of a shader program that Unity generates according to a specific combination of shader keywords and their status. A Shader object can contain multiple shader variants. More info
See in Glossary
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 Description
Lightmap Modes Determines the shader variant stripping behavior for lightmap-related shaders. The options are:
  • Automatic: Unity examines the scenes in the build and automatically strips variants that are not used in those scenes. This is the default setting.
  • Custom: Select this option to manually include or exclude variants for the following lightmap modes:
    • Baked Non-Directional
    • Baked Directional
    • Realtime Non-Directional
    • Realtime Directional
    • Baked Shadowmask
    • Baked Subtractive
    Select Import From Current Scene to automatically calculate and set the lightmap modes used by the current scene.
Fog Modes Determines the shader variant stripping behavior for shaders that relate to Unity’s built-in fog effect. The options are:
  • Automatic: Unity examines the scenes in the build and automatically strips variants that are not used in those scenes. This is the default setting.
  • Custom: Select this option to manually include or exclude variants for the following fog modes:
    • Linear
    • Exponential
    • Exponential Squared
    Select Import From Current Scene to automatically calculate and set the fog modes used by the current scene.
Instancing Variants Determines the shader variant stripping behavior for shaders that relate to GPU instancing. The options are:
  • Strip Unused: Unity only includes variants for GPU instancing for a given shader if at least one material that uses that shader has Enable instancing enabled. This is the default setting.
  • Strip All: Strip all variants for GPU instancing, even if they are being used.
  • Keep All: Include all variants for GPU instancing, even if they are not being used.
Batch Renderer Group Variants Determines the shader variant stripping behavior for shaders used by the Batch Renderer Group. The options are:
  • Strip if Entities Graphics Package is not installed: Strips Batch Renderer Group shader variants unless the Entities Graphics package is installed in the project. This is the default setting.
  • Strip All: Strips all Batch Renderer Group shader variants.
  • Keep All: Includes all Batch Renderer Group shader variants.

Shader Loading

Property Description
Log Shader Compilation Prints shader information to the log each time Unity compiles a shader. This property is only available in development and debug builds.

Culling Settings

Camera-Relative Culling determines whether Unity uses the camera position as the reference point for culling.

Property Description
Lights Uses the camera position as the reference point to cull lights instead of the world space origin, reducing flickering when lights are far from the camera. For more information, refer to Introduction to the camera view.
Shadows Uses the camera position as the reference point to cull shadows instead of the world space origin, reducing flickering when shadows are far from the camera. For more information, refer to Introduction to the camera view.

Shader Settings

These properties allow you to configure shader inclusion, graphics state collection prewarming, and shader variant collection prewarming in your application.

For information on prewarming, including important information about graphics API support, refer to Introduction to PSO tracing and warming.

Property Description
Video Determines whether to include shaders used by the Video Player for video decoding and compositing. The options are:
  • Don’t include: Excludes all video shaders from the build.
  • Include if referenced: Includes video shaders only if a Video Player in the project references them.
  • Always include: Always includes video shaders in the build. This is the default setting.
Always Included Shaders Lists the 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.

Warning: This feature is not recommended for shaders that have a large number of variants, such as the Standard Shader; it can lead to significant runtime and build time performance problems. You should instead create graphics state collections that contain only the variants you need, and include those in your build.

Note: This setting overrides shader keyword declaration settings. For each shader in the list, Unity includes all sets of all keywords, even if you use the shader_feature declaration type.

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.
Renderer Light Probe Selection Chooses 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.
The options are:
  • Find closest Light Probe: Searches for the nearest Light Probe, which consumes significant system resources. This is the default setting.
  • Use Ambient Probe: Uses the Ambient Probe. This option uses less system resources.
Preload Graphics State Collection Selects 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 Determines whether to trace or warm up PSOs at application startup. The options are:
  • None: Doesn’t load the graphics state collection and there’s no automated startup behavior. This is the default setting.
  • Begin Trace: Runs BeginTrace on application start after loading the collection specified in Preload Graphics State Collection, or creating a new collection if not specified. Note: PSO tracing is only supported on development builds.
  • Warmup: Prewarms the PSOs and shader variants specified in Preload Graphics State Collection on application start.
Save As Specifies 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 Assets folder.

Note: This property is available only when Collection Startup Behavior is Begin Trace.
Send to Editor Sends the resulting graphics state collection asset to the Editor when connected using the Autoconnect Profiler build setting.

Note: This property is available only when Collection Startup Behavior is Begin Trace.
Additional Collections Adds any additional graphics state collections to append to the specified collection in Preload Graphics State Collection before initiating warmup.

Note: This property is available only when Collection Startup Behavior is Warmup.
Warmup Asynchronously Enables prewarming PSOs in the background without blocking the main thread until completion.

Note: This property is available only when Collection Startup Behavior is Warmup.
Warmup After Showing First Scene 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.

Note: This property is available only when Collection Startup Behavior is Warmup.
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 0, Unity preloads all PSOs on the next frame after it displays the first scene.
Otherwise, 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.

Note: This property is available only when Collection Startup Behavior is Warmup.
Enable Cache Miss Tracing Traces any new un-warmed graphics states to a separate graphics state collection after prewarming is complete, when Collection Startup Behavior is Warmup. Tracing is only supported on development builds.

Note: This property is available only when Collection Startup Behavior is Warmup.
Cache Miss Collection Save Path Specifies the name and file path within the application’s persistent data directory to save the resulting graphics state collection file to.

Note: This property is available only when Collection Startup Behavior is Warmup.
Preload Shaders Specifies the shader variant collections to prewarm on application start.

Note: For better stutter reduction, the recommended best practice is to prewarm PSOs with graphics state collections.
Preload Shaders After Showing First Scene 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) Specifies 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 0, Unity preloads all shader variants on the next frame after it displays the first scene.
Otherwise, 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 Description
Save to asset… Creates a new shader variant collection asset using the currently tracked shader variants.
Clear Clears tracked shader variants.

Light Baker

Use these settings to configure the default light baker Unity uses for lightmap and Light Probe generation.

Property Description
Default Light Baker Selects the light baker Unity uses by default for lightmap and Light Probe generation. The options are:
  • Progressive Light Baker: Uses the Progressive Lightmapper.
  • Unity Compute Light Baker: Uses the Unity Compute Light Baker, which samples the environment and emissive surfaces using the direct sample count. To improve quality, increase the number of direct samples. To reduce bake time, set the GPU Baking Profile to Highest Performance.

Pipeline Specific Settings

The Graphics settings window always contains the following Built-In Render Pipeline settings.

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 Description
Transparency Sort Mode Defines 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:
  • Default: Sort objects based on the Camera mode.
  • Perspective: Sort objects based on perspective view.
  • Orthographic: Sort objects based on orthographic view.
  • Custom Axis: Sort objects based on the sort mode defined with the Transparency Sort Axis.
Transparency Sort Axis Defines 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, refer to Graphics tiers.

Property Description
Standard Shader Quality Sets the quality of the Standard Shader to High, Medium, or Low.
Reflection Probes Box Projection Enables projection for reflection UV mappings on Reflection ProbesA rendering component that captures a spherical view of its surroundings in all directions, rather like a camera. The captured image is then stored as a Cubemap that can be used by objects with reflective materials. More info
See in Glossary
.
Reflection Probes Blending Enables blending on Reflection Probes.
Detail Normal Map Enables Detail Normal Map sampling, if assigned.
Enable Semitransparent Shadows Enables semitransparent Shadows. This adds or removes the UNITY_USE_DITHER_MASK_FOR_ALPHABLENDED_SHADOWS shader compiler define.
Enable Light Probe Proxy Volume Enables rendering a 3D grid of interpolated Light ProbesLight probes store information about how light passes through space in your scene. A collection of light probes arranged within a given space can improve lighting on moving objects and static LOD scenery within that space. More info
See in Glossary
.
Cascaded Shadows Enables cascaded shadow maps. This adds or removes the UNITY_NO_SCREENSPACE_SHADOWS shader compiler define.
Prefer 32 bit shadow maps Enables 32-bit float shadow maps when 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 Enables High Dynamic Range rendering for this tier.
HDR Mode Selects the format to use for the HDR buffer when HDR is enabled for the current Graphics Tier. The default is FP16. The options are:
  • FP16: Color render texture format, 16-bit floating point per channel.
  • R11G11B10: Color render texture format. R and G channels are 11-bit floating point, B channel is 10-bit floating point.
Rendering Path Determines how Unity renders 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:
  • Forward
  • Deferred
  • Legacy Vertex Lit
For more information, refer to Rendering pathsThe technique that a render pipeline uses to render graphics. Choosing a different rendering path affects how lighting and shading are calculated. Some rendering paths are more suited to different platforms and hardware than others. More info
See in Glossary
.
Realtime Global Illumination CPU Usage Sets the CPU budget for 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 URP or HDRP, you can configure this property in the quality settings.

The options are:
  • Low: 25% of the allowed CPU threads are used as worker threads.
  • Medium: 50% of the allowed CPU threads are used as worker threads.
  • High: 75% of the allowed CPU threads are used as worker threads.
  • Unlimited: 100% of the allowed CPU threads are used as worker threads.

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 shadingA rendering path in the Built-in Render Pipeline that places no limit on the number of Lights that can affect a GameObject. All Lights are evaluated per-pixel, which means that they all interact correctly with normal maps and so on. Additionally, all Lights can have cookies and shadows. More info
See in Glossary
.
Deferred Reflections Use with Reflection Probes in deferred shading.
Screen Space Shadows Use with cascaded shadow maps for directional lights on PC/console platforms.
Depth Normals Use with the depth and normals texture when it is enabled on a Camera.
Motion Vectors Use for object-based motion vector calculations.
Light Halo Use with Light Halos.
Lens Flare Use with Lens FlaresA component that simulates the effect of lights refracting inside a camera lens. Use a Lens Flare to represent very bright lights or add atmosphere to your scene. More info
See in Glossary
.

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 Shader reference property appears below the feature property where you can set a reference to the Shader you want to use.

Additional resources

GraphicsSettings

2D and 3D mode settings
Package Manager