文档

Unity Engine


Unity Engine


Shader keywords and macros reference in URP

Shader keywords and macros that enable or provide access to URP features in shaders.
阅读时间2 分钟最后更新于 1 个月前

Shader keywords and macros that enable or provide access to URP features in shaders.

Element

Description

_CLUSTER_LIGHT_LOOP
Use this
multi_compile
keyword to make the shader compatible with the Forward+ and Deferred+ rendering paths. For an implementation example, refer to Render additional lights in a shader.
_ADDITIONAL_LIGHTS
Use this keyword to define areas in shader code that Unity should execute if per-pixel additional lights are enabled in a scene and URP asset. If a renderer uses the Forward+ rendering path, Unity ignores this keyword and uses the
_CLUSTER_LIGHT_LOOP
keyword instead. For an implementation example, refer to Render additional lights in a shader.
LIGHT_LOOP_BEGIN
Use this macro to iterate over the additional lights. In the Forward+ rendering path, the
LIGHT_LOOP_BEGIN
macro requires the following struct to be in its scope, both the type and the variable name must match this signature:
InputData inputData
. For an implementation example, refer to Render additional lights in a shader.
_DEPTH_AS_INPUT_ATTACHMENT
Use this
multi_compile
keyword to define areas in shader code that read depth using the
FetchSceneDepth(float2 fragCoord)
input attachment method instead of sampling a depth texture. Unity enables this keyword when a render pass binds depth as a non-MSAA input attachment. For an implementation example, refer to Get the current depth buffer from GPU memory in URP.
_DEPTH_AS_INPUT_ATTACHMENT_MSAA
Use this
multi_compile
keyword to define areas in shader code that read depth using the
FetchSceneDepth(float2 fragCoord, int sampleIndex)
input attachment method when MSAA is enabled. Unity enables this keyword when a render pass binds depth as an MSAA input attachment. For an implementation example, refer to Get the current depth buffer from GPU memory in URP.

Additional resources