I ended up wasting the time on debugging the code which was semantically ok, but I was using wrong methods for the second time in two weeks. Shame on me, I should have learned the first time. The problem is that I was trying to multiply two float4x4 instances with lh * rh
instead of math.mul(lh, rh)
I have noticed that types used by math library i.e. float4, float3, float4x4
have both, operator overrides and statics methods for arithmetical operations. Aside from the fact that operator override does not produce valid value in this example, what is the reason for having both of them and which one should do what?