包含此页的版本:
不含此页的版本:
您可以分配一个LOD:细节级别 (LOD) 技术是一种优化,可减少 Unity 在游戏对象与相机的距离增加时必须为游戏对象渲染的三角形数量。更多信息
请参阅术语表值添加到子着色器。此值表示它的计算要求。
在运行时,您可以将着色器在 GPU 上运行的程序。更多信息
请参阅术语表LOD的单个值Shader 对象Shader 类的实例,Shader 对象是着色器程序和 GPU 指令的容器,以及告诉 Unity 如何使用它们的信息。将它们与材质一起使用,以确定场景的外观。更多信息
请参阅术语表,或对于所有 Shader 对象。然后,Unity 会优先考虑 LOD 值较低的子着色器。有关 Unity 如何选择何时使用子着色器的信息,请参阅 Unity 如何选择子着色器。
注意:尽管此技术以渲染网格的 LOD 功能命名,但存在重要区别:着色器 LOD 与相机在场景中创建特定视点图像的组件。输出要么绘制到屏幕上,要么作为纹理捕获。更多信息
请参阅术语表,并且 Unity 不会自动计算着色器 LOD。您必须手动设置最大着色器LOD。
使用此技术可以微调不同硬件上的着色器性能。当用户的硬件理论上支持子着色器,但硬件无法很好地运行它时,这很有用。
注意:在您的Shader块,则必须按LOD降序排列子着色器。例如,如果你有LOD值为200、100和500的子着色器,则必须先放置LOD值为500的子着色器,然后是LOD值为200的子着色器,然后是LOD值为100的子着色器。这是因为 Unity 会选择它找到的第一个有效的子着色器,因此如果它首先找到一个 LOD 较低的子着色器,它将始终使用该 SubShader。
此示例代码创建一个包含两个子着色器的对象:一个 LOD 值为 200,另一个值为 100。子着色器按LOD值降序排列。
Shader "Examples/ExampleLOD"
{
SubShader
{
LOD 200
Pass
{
// The rest of the code that defines the Pass goes here.
}
}
SubShader
{
LOD 100
Pass
{
// The rest of the code that defines the Pass goes here.
}
}
}
要为给定的着色器对象设置着色器LOD,您可以使用Shader.maximumLOD。要为所有着色器对象设置着色器LOD,可以使用Shader.globalMaximumLOD。默认情况下,没有最大LOD。