私は OpenGL4.X を使用しています。最近、このApple OpenGLES2 doc を読みました。ここでは、インターリーブされた属性配列を使用すると、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にも当てはまりますか? はいの場合、パフォーマンスの向上は理論的にどのくらい大きくなりますか?