# Is it possible to precompute the projection-view matrix?

The standard way to calculate mvp matrix is:

[b]PVM * v1 = v2

[/b]In rendering my entity list, I would like to do something like the following:
(for those not involved in games, an “entity” is a “unit” in the game world, such as an enemy or ally, the mapping typically being one entity to one (animated) mesh)

``````
update()

create camera matrix
create view matrix as inverse of camera matrix
precalculate combined pv matrix

for each entity
m * pv //as opposed to m * p * v if no precalc of pv
make draw call

``````

…Since this would result in one less matrix mul() per-entity, per-update – leading to a fair saving when there are hundreds of entities active. Just not sure this is possible (mathematically) since then the matrix multiplication order p * v * m is duffed. Is there a way to do this, mathematically?

If you mean (p * v) * m then you can of course precompute p * v = PV and calculate PV * m. m * PV is just plain wrong as matrix multiplication isn’t commutative.

To add to what thokra said, matrix multiplication is associative. That means (AB)C = A(BC). As long as you preserve the left/right relationship, you can do it in any order.

Thank you both. This

(AB)C = A(BC)

is what I needed to clarify.