为什么要谈Shader.globalMaximumLOD 因为需要啊 不知道有没有发现某某场景在某个显卡上帧率很低 其他显卡就没有低帧率。怎么办呢?有没有快的办法
那就直接硬编码检测 某地图 某显卡直接降低globalMaximumLOD
Shader.globalMaximumLOD是Unity中的一个属性,用于全局设置Shader的最大细节等级(Level of Detail,简称LOD)。这个属性的值是一个整数,表示Shader的最大LOD值。默认情况下,这个值是1000。
LOD是一种常用的优化技术,用于根据对象距离摄像机的远近,或者其他一些条件,来选择使用不同的资源或者算法,以此来平衡画面质量和性能。在Unity中,你可以为一个Shader编写多个Pass,每个Pass对应一个LOD值。当渲染一个物体时,Unity会选择LOD值小于等于Shader.globalMaximumLOD的最大的那个Pass来渲染。
例如,假设你有一个Shader,它有三个Pass,LOD值分别是100、200和300。如果你将Shader.globalMaximumLOD设置为200,那么Unity就会选择LOD值为200的那个Pass来渲染。如果你将Shader.globalMaximumLOD设置为150,那么Unity就会选择LOD值为100的那个Pass来渲染。
通过调整Shader.globalMaximumLOD的值,你可以全局控制Shader的细节等级,这对于在低端设备上运行游戏,或者在需要节省性能的情况下,是非常有用的。例如,你可以在游戏的设置菜单中,提供一个选项让玩家选择画面质量,然后根据玩家的选择来设置Shader.globalMaximumLOD的值。
需要注意的是,Shader.globalMaximumLOD只影响Shader的选择,不会影响模型的LOD Group。模型的LOD Group是另一种LOD技术,用于根据摄像机的距离来选择使用不同的模型。