我正在使用 OpenGL ES 2.0 编写我自己的 Android 图形引擎“为了好玩”。
在管理具有多个对象网格的整个场景之后,我正在尝试实现阴影体积。
逻辑是(简化的):首先,我从二进制文件创建一个对象(带有顶点、面、边和所有数据)。之后,我创建一个顶点缓冲区并绘制元素。
到目前为止,我在模型矩阵(glRotate 等)上使用了带有 OpenGL 函数的变换(缩放、平移、旋转)。
但是为了使用Shadow Volume,我必须在每次变换物体或灯光时计算出哪些面在灯光和轮廓前面。所以我在我的顶点数组上使用了一个循环。
我的问题是:在哪里进行转换?我是否必须在每次更改时转换顶点数组并将其重新加载到顶点缓冲区中?
据此,这是一件坏事:Android opengl modify vertex array after draw call
那么,最佳实践是什么?
对不起我的英语不好,提前谢谢你;)