我正在使用基于纹理的DOT3照明来在较旧的iPhone上实现凹凸贴图,并且我想知道是否存在一种偷偷摸摸的方法来使它即使在视点改变时也看起来正确。

使用“真实”照明,法线将通过逆模型视图矩阵进行变换。使用基于纹理的DOT3照明时,没有任何变换。

使用基于着色器的凹凸贴图时,法线贴图位于切线空间中。使用DOT3照明时,法线贴图需要在眼睛空间内。仅当您的视点固定或几何刚好是平面时,这才可以。

我是否应该接受DOT3照明的另一个限制?由于它也无法处理高光,因此我开始怀疑它的实际用途。

最佳答案

只要光向量在相同的坐标空间中,法线贴图就不必位于任何特定的空间中。对于固定功能硬件上的DOT3照明,最好将法线贴图保留在对象空间而不是眼睛空间中。从这里开始,您只需要确保在渲染每个对象时应用适当的变换即可将定向光矢量从世界空间移动到对象空间。

09-07 07:35