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.