【发布时间】:2014-08-08 19:18:39
【问题描述】:
也许问题看起来很奇怪,但是,请看一下下面列出的汇总着色器代码:
Shader "AngryBots/PlanarRealtimeReflection" {
Properties {
...
}
SubShader {
LOD 400
Tags { "RenderType"="Opaque" }
Fog { Mode Off }
Pass {
...
}
}
SubShader {
LOD 200
Tags { "RenderType"="Opaque" }
Fog { Mode Off }
Pass {
....
}
}
}
每个子着色器都有不同的 LOD,我知道更大的 LOD 有更多的细节并需要更多的 GPU 处理,那么我们应该如何编号着色器的 LOD?设备 GPU 如何理解数字!
那么我如何才能发现我的着色器 LOD 是 500 或 700 或 300?
我已经阅读了 unity3d 手册,它告诉我例如 BumpedMapDiffuse Shader For PC 是 500 !但是如何将其转换为移动设备?
【问题讨论】:
-
将 LOD 视为手动过滤。它不会释放任何额外的潜力或为您提供更多细节,它只是一种手动禁用某些着色器的方法,如果您知道自己处于 iPad 与 PC 等受限环境中。更改允许的 LOD 由您完成,没有幕后算法。
-
您想告诉我 GPUS 根本无法与它们一起使用吗?我应该编写一些脚本并手动控制它们吗?那么他们的职责是什么?我可以使用 shader.isSupported 属性!