我使用 OpenGL4.X。最近我阅读了这个Apple OpenGLES2 文档,其中指出使用交错属性数组可以提高 IOS 移动设备的性能,并且是推荐的方式(而不是使用属性块)。
对于那些不明白我的意思的人,这里有一个例子:
单个属性数组中的属性块:
float vertices[]{
//Triangle vertices:
v0x , v0y , v0z ,
v1x , v1y , v1z ,
v2x , v2y , v2z ,
//Triangle UVs:
uv0s , uv0t ,
uv1s , uv1t ,
uv2s , uv2t ,
//Triangle Normals:
n0x , n0y , n0z ,
n1x , n1y , n1z ,
n2x , n2y , n2z
}
交错属性数组:
float vertices[]{
v0x , v0y , v0z ,
uv0s , uv0t , ////vertex 1 attributes
n0x , n0y , n0z ,
v1x , v1y , v1z ,
uv1s , uv1t , ///vertex 2 attributes
n1x , n1y , n1z ,
v2x , v2y , v2z ,
uv2s , uv2t , ///vertex 3 attributes
n2x , n2y , n2z
}
所以我的问题是:在桌面 GPU 上运行的 OpenGL 也是如此吗?如果是,那么理论上性能增益可以有多大?