刚开始使用OpenGL ES 2.0,并想知道构建顶点数组的最佳方法。现在,我有一个结构,我继续在其中添加新的顶点... ... 5000次(增量为1)。
对我来说,这似乎是一种生成顶点数组的缓慢方法。
也许所有的值都应该在创建时保存一次?然后将它们放在文件的开头,如...
顶点顶点[...] = { {{1,-1,0},{1,0,0,1}} {{1,1,0},{0,0,1,1}} ... };
这样更好吗?或者我们还有其他选择吗?
答案 0 :(得分:1)
如果顶点是常量且数量很大,我建议将其保存在二进制文件中,并在启动应用程序时加载到服务器端内存(using glBufferData)中。
如果您询问数据顺序,建议您按照vertexAttribPoint读取数据的顺序保存数据。例如,如果您有3个顶点坐标(X,Y,Z)和4个顶点颜色(R,G,B,A),如果您在glBuffer中按此顺序创建它,GPU将更快地读取您的数据:{X1, Y1,Z1,R1,G1,B1,A1,X2,Y2,Z2,R2,G2,B2,A2,......}。
通常情况下,问题不在于浪费时间来创建/加载应用程序中的顶点数据,而是浪费时间来渲染这些数据。
但一切都取决于你申请的建议。