【发布时间】:2012-11-16 15:03:28
【问题描述】:
我正在使用存储在名为 CMesh 的类的对象中的 OpenGL 渲染几个网格。一个 CMesh 包含很多由 CVertex 对象和三角形表示的顶点。每个 CVertex 都包含一个 Vector 及其位置。
由于顶点位置在渲染过程中不断变化,因此每次渲染网格时我都必须重写我的 VBO 数据数组。尽管与其他大型游戏相比,我没有那么多顶点,但这会极大地减慢整个程序。
有没有更好的方法来做到这一点?
【问题讨论】:
-
为什么你不断地改变顶点位置而不是使用平移?
-
它们是动画的。平移、旋转……是通过给着色器一个额外的矩阵来完成的。
-
@Florian:如果您在着色器中通过矩阵进行转换...为什么必须重写缓冲区对象数据?
-
@NicolBolas 着色器中的转换是针对整个对象的,而重写是因为每个顶点的动画
标签: c++ arrays opengl vbo vertex