questions about Matrix using glm

hi guys! :slight_smile: about matrix i have two question :dejection:
1- What is determent exactly

2- i know thi equation s if i have parent and child nodes

child’s new transform = parent’s transform * child’s transform

but what if i have Parent’s Transform and Child’s New transform
how to calculat child’s transform (old transform)

thank you :smiley:

[QUOTE=DragonForce99;1259973]hi guys! :slight_smile: about matrix i have two question :dejection:
1- What is determent exactly

2- i know thi equation s if i have parent and child nodes

child’s new transform = parent’s transform * child’s transform

but what if i have Parent’s Transform and Child’s New transform
how to calculat child’s transform (old transform)

thank you :D[/QUOTE]

this is basic linear algebra:
if
A = B*C

then you must isolate C by pre-multypling by inverse of B
B’ * A = B’BC
B’*A = C

to find inverse of B you must be sure that determinant is not 0. But if you know that B is a transform matrix (so Scale, Rotation and Translation only combined togheter) and you know that Scale component is different from 0 (all 3 values must be different from 0) you know determinant is different by 0 too and you can compute the inverse (many libraries that do matrix inversion)

Anyway, if you know in advance the 3 components of B

B = Translate*Rotate(Degrees,Axis)*Scale

You can easily compute the inverse without strange math

B’ = (1/Scale)Rotate(-Degrees,Axis)(-Translate)

and finally

C = B’*A

note that if some Scale Component is 0 somewhere you can’t find C because inverse of B does not exist, but that does not mean there not exist a matrix that satisfy the equation, just you can’t find it easily

(Proof: assume B has a scale by (1,1,0) to flatten a 3d object and you know C
A = B *C

then you forget about C but you have A, you know that C exist because you used it before, but since B has a scale component that is 0 then you can’t find C again)

what is determinat:
an “artifact”, you better check some math site to learn about it, the determinant is very usefull, if greater than 0 a matrix is right-handed, if lesser than 0 a matrix is left-handed, if = 0 a matrix is not invertible