Ganho de desempenho usando matrizes de atributos intercalados no OpenGL4.0
Eu trabalho com OpenGL4.X. Recentemente eu liisto Apple OpenGLES2 doc onde se afirma que o uso de matrizes de atributos intercalados melhora o desempenho em dispositivos móveis IOS e é o caminho recomendado (em vez de usar blocos de atributos).
Para aqueles que não entenderam o que quero dizer, aqui está um exemplo:
Bloco de atributos em uma única matriz de atributos:
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
}
Matriz de Atributos Intercalados:
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
}
Então, minha pergunta é: Isso também é verdade para o OpenGL executado em GPUs de desktop? Se sim, então quão grande o ganho de desempenho pode teoricamente ser?