包含此页的版本:
不含此页的版本:
通过实现自定义照明功能或模型,可以更好地控制应用程序的视觉样式和性能。
例如,更简单的卡通风格渲染可能比逼真的基于物理的渲染快得多,并且可以具有独特的吸引人的外观。
自定义光照实现的一个很好的例子是URP 3D示例项目中的驾驶舱场景。
Unity 提供了多种使用 HLSL 实现自定义光照的方法,着色器在 GPU 上运行的程序。更多信息
请参阅术语表graph自定义函数节点,或通过URP源码修改。
自定义 HLSL 着色器为你提供了广泛的功能和灵活性来实现自定义照明功能。你可以完全控制渲染通道、输入和输出变量、属性和内部着色器函数。
预构建的着色器图表节点允许您使用常见的着色器函数,但提供很少的选项来修改其行为。着色器图表还提供自定义函数节点,允许您在节点内注入自定义 HLSL 代码。
你可以在URP 3D示例项目和着色器图表特征示例中找到自定义函数节点的示例。
自定义函数节点允许您将代码插入顶点着色器 渲染模型时在 3D 模型的每个顶点上运行的程序。更多信息
请参阅术语表函数或片段着色器函数。这些函数对应于着色器图中的顶点和片段着色器阶段,或对应于函数vert(Attributes IN)和frag(Varyings IN)在 HLSL 着色器中。
自定义函数节点不提供以下功能:
更改或添加输入和输出结构中的属性(通常定义为struct Attributes和struct Varyings在着色器代码中)。例如,这意味着您无法向 Fragment 或 Vertex 着色器阶段添加额外的自定义选项。
定义额外的着色器通道。
定义额外的渲染状态命令,例如ColorMask.
如果你的着色器需要上述任何功能,请考虑编写一个ShaderLabUnity 用于定义 Shader 对象结构的语言。更多信息
请参阅术语表着色。
实现自定义光照的技术因自定义效果所需的光源类型而异。
要使用主灯,请使用GetMainLight着色器函数。有关更多信息,请参阅在自定义URP着色器中使用光照。
Forward 和 Forward+ 渲染路径以不同的方式处理额外的定向光源和附加光源。前进+渲染路径渲染管道用于渲染图形的技术。选择不同的渲染路径会影响照明和着色的计算方式。某些渲染路径比其他路径更适合不同的平台和硬件。更多信息
请参阅术语表对每个实时光源没有限制游戏对象Unity 场景中的基本对象,可以表示角色、道具、风景、相机、航路点等。游戏对象的功能由附加到它的组件定义。更多信息
请参阅术语表,因此GetAdditionalLightsCount方法始终返回 0。有关如何编写在“前向”和“前向+”渲染路径中使用其他灯光的渲染循环的信息,请参阅在URP 中的着色器中渲染其他灯光。