Legend:
ax = axis X
ay = axis Y
az = axis Z
t = translation
[ax.x ay.x az.x 0.0] [ax.y ay.y az.y 0.0] [ax.z ay.z az.z 0.0] [t.x t.y t.z 1.0f]
am I crazy for wanting to store it in memory like this?
[ax.x ax.y ax.z t.x] [ay.x ay.y ay.z t.y] [az.x az.y az.z t.z] [0.0 0.0 0.0 1.0f]
Can someone explain this to me? Seems to me like the second one is a better memory representation for doing SIMD optimizations because if you know the matrix is world space you just leave out the last vector4 and off you go. I wrote a shader for matrix skinning like 3 years ago when I loaded the registers I did so like this and off I went with dp4s. Maybe I'm missing something here and I just don't know enough about the lower level SIMD optimization stuff.
Thanks in advance!











