A technical question:
SIMD paradigm imposes us to have SIMD-friendly data structures.
In Sigma, you define a Vertex as (x,y,z), then create a Vector<Vertex> to store the vertices. The data layout is in memory: x, y, z, x, y ,z, etc.
A SIMD-friendly structure would be to create 3 Vector<float> named x, y and z, and define the vertices as the elements of each vector x, y, z. The data layout is: x, x, x, etc.
y, y, y, etc.
z, z, z, etc.
This layout allows to vectorize the operations on the Vertices.
Am I right when I think that making the vertices data structure "SIMD-friendly" will improve performance ?