【发布时间】:2010-07-10 00:45:14
【问题描述】:
我目前正在使用 OpenGL ES 1.1 并使用 DrawElements 约定以及顶点、法线、纹理坐标和索引数组。
我最近在研究使用法线/凹凸映射的想法时遇到了这个问题,这在以前用 OpenGL ES 是不可能的: http://iphone-3d-programming.labs.oreilly.com/ch08.html
我已经可以从我的 3D 建模器生成一个对象空间法线贴图,但我不完全清楚的是,如果为法线贴图实现第二个纹理单元,是否不再需要法线坐标数组,还是只需通过 DOT3_RGB 选项将光照 + 颜色纹理与法线贴图相结合?
编辑 - 在进一步研究 DOT3 Lighting 之后,我不确定 ognian 给出的答案是否正确。此页面http://www.3dkingdoms.com/tutorial.htm 给出了它的用法示例,如果您查看代码的“渲染和最终结果”部分,则没有正常数组 ClientState for Normal Arrays is never enabled。
我还在这里找到了这篇文章,What is DOT3 lighting?,它很好地解释了它......但让我想到了另一个问题。在 cmets 中,声明不是平移法线,而是平移光的方向。我对此感到困惑,就好像我有一个带有固定墙的游戏......为什么我要为一个模型移动灯光?希望有人能对这一切给出一个很好的解释......
【问题讨论】:
标签: android opengl-es android-ndk