GL_DOT3_RGB的限制

pri*_*out 3 iphone opengl-es

我正在使用基于纹理的DOT3照明来实现老式iPhone上的凹凸贴图,我想知道是否有一种偷偷摸摸的方式使它看起来正确,即使视点发生变化.

对于"真实"光照,法线通过逆模型 - 视图矩阵进行变换.使用基于纹理的DOT3照明,没有变换.

使用基于着色器的凹凸贴图,法线贴图位于切线空间中.使用DOT3照明时,法线贴图需要在眼睛空间中.只有当您有一个固定的视点,或者您的几何形状恰好是一个平面时,这是可以的.

我应该接受这个作为DOT3照明的另一个限制吗?既然它也无法处理镜面反射,我开始质疑它究竟是多么有用.

Piv*_*vot 5

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