Performance OpenGL ES:禁用转换?

Performance OpenGL ES:禁用转换?,performance,opengl-es,matrix,Performance,Opengl Es,Matrix,(日期?)建议绕过OpenGL的矩阵堆栈作为性能提示。它还建议绕过OpenGL的照明,这意味着他们的意图是实际手动变换几何体。我碰巧是出于其他原因才这样做的 当然,除非有办法让OpenGL禁用它自己的转换,否则您实际上从中受益是毫无意义的。好了,没有明确的方法可以做到这一点,视频也没有给出任何提示 当然,从逻辑上讲,这可以通过将恒等式加载到gl的矩阵中来实现。如果矩阵是恒等式的,我是否应该期望一个合适的实现实际上完全跳过一个转换?它指的是您可以将矩阵推送到OpenGL堆栈上。避免做glTrans

(日期?)建议绕过OpenGL的矩阵堆栈作为性能提示。它还建议绕过OpenGL的照明,这意味着他们的意图是实际手动变换几何体。我碰巧是出于其他原因才这样做的

当然,除非有办法让OpenGL禁用它自己的转换,否则您实际上从中受益是毫无意义的。好了,没有明确的方法可以做到这一点,视频也没有给出任何提示


当然,从逻辑上讲,这可以通过将恒等式加载到gl的矩阵中来实现。如果矩阵是恒等式的,我是否应该期望一个合适的实现实际上完全跳过一个转换?

它指的是您可以将矩阵推送到OpenGL堆栈上。避免做glTranslate之类的事情。通过这种方式,您可以自己进行所有矩阵乘法等操作,而且肯定不会进行浮点仿真。然后直接设置矩阵

至于照明,您可以使用glDisable来实现。看起来他们纯粹是在使用纹理照明。基本上,将灯光绘制到环境贴图纹理上。这将提供平行光的效果,您可以添加任意数量的灯光,唯一增加的成本是创建环境贴图。虽然设置环境贴图非常复杂,但它确实可行,并提供了非常好的结果(您可以使用类似的技巧获得扩散点3凹凸贴图,最早可以追溯到DX6!)

他们可能会讨论在将顶点数据添加到引擎时自己对其进行照明。ie在使用GLCOLOR指针将法线和位置传递给GLE之前,运行法线和位置并使用固定点执行照明计算。这是一件非常简单的事情,而且定向顶点照明很容易(N.L,其中N是顶点法线,L是模型相对空间中的灯光方向)