# My notes for: "3D Math Primer for Graphics and Game Development"

Alex Egg,

Triangle has 3 vectors

[x y z w][x y z w][x y z w]

now when you multiply each vector by a transform/translation matrix you get a new coords for the vector, e.g.:

[x y z w] * [x y z w, x y z w, x y z w, 0 0 0 1] = [x' y' z' 1].

Now imagine you do that for each vertex in the triangle – and you have a rotated/scaled or translated triangle. Now imagine that on a larger scale – a whole 3D model. Pretty powerful math.

This is exactly what the vertex shaders in opengl 2.0 do:

void main()
{
gl_Position = modelViewProjectionMatrix * vertexPosition;
....
}


In the above shader program snippet, the modelViewProjectionMatrix is all of my transformations multiplied by each other into 1 handy matrix. I then simply multiply it by vertexPosition which is a vertex in my model. Supposedly this is run for every vertex.