包含此页的版本:
不含此页的版本:
对于 URP 渲染 MotionVectors 通道ShaderLabUnity 用于定义 Shader 对象结构的语言。更多信息
请参阅术语表 着色器在 GPU 上运行的程序。更多信息
请参阅术语表,请确保其活动 SubShader 包含具有以下 LightMode 标记的通道:
Tags { "LightMode" = "MotionVectors" }
例如:
Shader “Example/MyCustomShaderWithPerObjectMotionVectors"
{
SubShader
{
// ...other passes, SubShader tags and commands
Pass
{
Tags { "LightMode" = "MotionVectors" }
ColorMask RG
HLSLPROGRAM
// Your shader code goes here.
ENDHLSL
}
}
}
有关为 alpha 剪切等功能添加运动矢量通道支持的示例,LOD:细节级别 (LOD) 技术是一种优化,可减少 Unity 在游戏对象与相机的距离增加时必须为游戏对象渲染的三角形数量。更多信息
请参阅术语表交叉淡入淡出,或 Alembic 动画,是指MotionVectors传入 URP 预构建的 ShaderLab 着色器,例如Unlit.shader文件。您的MotionVectors通道应与非运动矢量通道匹配,并应反映通道正在执行的任何自定义变形和/或顶点动画。
如果自定义着色器仅适用于具有变换运动或蒙皮动画的对象,而不使用 alpha 剪切、LOD 交叉淡入淡出、alembic 动画、自定义变形或顶点动画,则 URP 提供的运动矢量回退着色器可能就足够了。要添加预构建的回退着色器,请将以下 ShaderLab 命令添加到 SubShader 块中:
Shader “Example/MyCustomShaderWithPerObjectMotionVectorFallback"
{
SubShader
{
// ...other passes, SubShader tags, and commands
UsePass "Hidden/Universal Render Pipeline/ObjectMotionVectorFallback/MOTIONVECTORS"
}
}
注意:在 2023.2 之前的 Unity 版本中,URP 会自动对所有没有标记有MotionVectors LightMode 标签。从 Unity 2023.2 开始,由于以下原因,此回退逻辑被禁用: