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

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.

**Permalink:**
3D-Math-Primer-for-Graphics-and-Game_Development-notes

**Tags:**