Orientację wyznaczają trzy wektory, które wskazują w górę obiektu, w jego bok i naprzód (z reguł jednostkowe i wzajemnie prostopadłe). W tych wektorów i pozycji budujemy dwie macierze świat-obiekt i obiekt-świat, jedna jest odwrotnością drugiej.
Mnożąc punkt świata przez macierz świat-obiekt sprowadzamy go układu współrzędnych obiektu. Z reguły w takim układzie środek układu współrzędnych to środek obiektu.
Tworzenie macierzy transformacji:
private void UpdateTransformationMatrices() { m_local_to_world = Matrix4.CreateTranslation(Pos) * new Matrix4(Right, Up, Forward); m_world_to_local = m_local_to_world.Inverted; }Zwróćmy uwagę, że przy transformacji świat-obiekt najpierw przesuwamy punkt, a następnie go obracamy. Przy transformacji odwrotnej obiekt-świat jest odwrotnie.
Często jest tak, że nasz obiekt zawiera w sobie inne, a one znowu inne, a każdy ma swoje macierze transformacji. Ostateczna macierz transformacji powstaje przez wymnożenie wszystkich składowych macierzy.
Brak komentarzy:
Prześlij komentarz