OpenGL中如何按单个变换矩阵批量绘制多顶点?
OpenGL多网格绘制的变换矩阵优化问题
我手里有两个缓冲区:
- 顶点缓冲区:存储交错的位置、颜色这类顶点数据,每一组连续顶点构成一个独立网格;
- 变换缓冲区:存储4x4变换矩阵,每个矩阵对应一个网格。
之前我用glDrawArrays()一次性绘制所有内容,所有网格共用同一个着色器,但顶点着色器会为每个顶点都获取下一个变换矩阵,频率过高。我想要实现每处理完一个网格的x个顶点后,再推进变换缓冲区获取下一个矩阵,而非每个顶点都切换。
已采用的解决方案
我已经用glMultiDrawArraysIndirect()解决了这个问题。通过这种间接多绘制的方式,能为每个网格单独配置绘制参数,让同一个网格的所有顶点共用对应的变换矩阵,彻底避免了逐顶点切换矩阵的冗余操作。
内容的提问来源于stack exchange,提问作者Klayton
相关产品推荐
相关产品推荐

