# Why do we call it TRS and MVP, instead of SRT and MVP or TRS and PVM?

Here's something that's been bothering me while learning graphics. We have two core concatenated matrix sets: "TRS" for transforms, and "MVP" for moving everything into the canonical view volume.

TRS is applied in this manner: T(R(S(p))), i.e. the scale is applied first, then the rotation, then the translation.

MVP is applied in this manner: P(V(M(p))), i.e. we apply the model matrix first, then the view matrix, and finally the projection matrix.

Why is the order in which we name these sets not consistent? I feel like I am getting something very obvious wrong, but I can't help but be confused by this.

• MVP is actually not even consistent with itself - it encodes the transformation from model -> world -> view -> clip(projection) space. So to be consistent, it would be better to name it World-View-Projection.
– russ
Oct 15 '19 at 9:54

Because whether you use $$MVP$$ or $$PVM$$ actually depends on how you perform the multiplication: $$vMVP$$ versus $$PVMv$$, note that you have: $$(PVMv)^T = v^TM^TV^TP^T=vM^TV^TP^T$$, where the last identity does not hold in math, but holds in glsl since vectors can be reinterpreted as either row or column vectors for convenience.
The same holds for $$TRS$$ and $$SRT$$. In general CG code and applications have an issue with sticking to standard established conventions, so you get all kinds of funny conventions.
• @Thomas I don't understand the issue? In the link you provided they are doing $TRSv$ which is $TRS$. Column and row-major conventions are unrelated: en.wikipedia.org/wiki/Row-_and_column-major_order Their $MVP$ naming scheme seems to also be consistent with the description they have of it: "Current model * view * projection matrix." Oct 14 '19 at 19:37