Sets which polygons the GPU should cull, based on the direction that they are facing relative to the cameraA component which creates an image of a particular viewpoint in your scene. The output is either drawn to the screen or captured as a texture. More info
See in Glossary.
Culling is the process of determining what not to draw. Culling improves renderingThe process of drawing graphics to the screen (or to a render texture). By default, the main camera in Unity renders its view to the screen. More info
See in Glossary efficiency, by not wasting GPU time drawing things that would not be visible in the final image.
By default, the GPU performs back-face culling; this means that it does not draw polygons that face away from the viewer. In general, the more you can reduce the rendering workload, the better; you should therefore change this setting only when necessary.
Feature name | Built-in Render Pipeline | Universal Render Pipeline (URP) | High Definition Render Pipeline (HDRP) | Custom SRP |
---|---|---|---|---|
Cull | Yes | Yes | Yes | Yes |
This command makes a change to the render state. Use it in a Pass
block to set the render state for that Pass, or use it in a SubShader
block to set the render state for all Passes in that SubShader.
Signature | Example syntax | Function |
---|---|---|
Cull <state> |
Cull Back |
Sets which polygons the GPU should cull, based on the direction that they face relative to the camera. |
Parameter | Value | Function |
---|---|---|
state | Back |
Cull polygons that face away from the camera. This is called back-face culling. This is the default value. |
Front |
Cull polygons that face towards the camera. This is called front-face culling. Use this for turning geometry inside-out. |
|
Off |
Do not cull polygons based on the direction that they face. Use this for special effects, such as transparent objects or double-sided walls. |
Shader "Examples/CommandExample"
{
SubShader
{
// The rest of the code that defines the SubShader goes here.
Pass
{
// Disable culling for this Pass.
// You would typically do this for special effects, such as transparent objects or double-sided walls.
Cull Off
// The rest of the code that defines the Pass goes here.
}
}
}
This example code demonstrates the syntax for using this command in a SubShader block.
Shader "Examples/CommandExample"
{
SubShader
{
// Disable culling for this SubShader.
// You would typically do this for special effects, such as transparent objects or double-sided walls.
Cull Off
// The rest of the code that defines the SubShader goes here.
Pass
{
// The rest of the code that defines the Pass goes here.
}
}
}