包含此页的版本:
不含此页的版本:
此页面包含有关优化您的着色器在 GPU 上运行的程序。更多信息
请参阅术语表用于运行时性能,尤其是在 GPU 性能有限的移动平台上。
若要避免复杂的计算,请执行以下作,例如:
pow,log和sin.normalize和dot,而不是自己写。这确保了驱动程序可以生成更好的代码。若要避免着色器重复计算,请执行以下作,例如:
用half而不是float对于除世界空间坐标和纹理坐标之外的所有变量。有关详细信息,请参阅在着色器中使用 16 位精度。
Unity 不支持后缀,因此像2.0h变成一个完整的float.这意味着当 GPU 进行计算时,它可能必须将其他值转换为float然后回来。这会减慢着色器的速度。
为防止这种情况,请使用强制转换而不是后缀。例如,使用half(2.0)而不是2.0h.
若要避免着色器速度变慢,请避免使用以下资源密集型方法:
discard片段着色器中的方法。为确保移动 GPU 可以使用早期深度测试来加快渲染速度,请勿将深度缓冲区 保存图像中每个像素的 z 值深度的内存存储,其中 z 值是投影平面中每个呈现像素的深度。更多信息
请参阅术语表在片段着色器中。
有关深度测试的更多信息,请参阅 ShaderLab 命令:ZTest。