Skocz do zawartości

Rekomendowane odpowiedzi

Opublikowano

Ogarniam sobie silnik Ultimate3D i napotkałem na pewien problem.

 

Otóż obrót trójwymiarowego obiektu w tym silniku polega na zmianie wartości zmiennych rotx, roty, rotz obiektu. Ja potrzebuje obracać jeden obiekt względem osi x i z.

Z tym, że jeżeli obiekt już obrócę względem x to oś z zmieni orientację i ten obrót będzie nie według tej początkowej osi z tylko tej już obróconej względem x.

Przykładowo:

Jeśli najpierw obrócę obiekt względem x o 180 stopni, obiekt będzie jakby do góry nogami i orientacja osi z będzie odwrotna. No i wtedy jeśli będę obracał według z to obiekt zamiast normalnie isę kręcić będzie sie obracał w przeciwną stronę.

 

No, więc jak można prosto wyliczyć wartości rotx i roty, aby się obrócił o zadaną wartość wzlędem tych początkowych osi?

 

W GMowym 3D był pewna przydatna funkcja która obracała obiekt według jakiejś tam własnej osi i kąt wystarczyło wyliczyć z pitagorasa, ale Ultimate chyba tkiej funkcji nie ma.

 

Ogólnie wiec trzeba jakoś chyba tak wyliczyć te wartości rotx, rotz żeby to się obróciło o sqrt(sqr(rotx)+sqr(rotz)) według takiej jakby osi będącej "uśrednieniem" osi x i z.

Opublikowano

U3d ma coś takiego jak matryce transformacji. Nie jestem pewien, ale prawdopodobnie będziesz musiał ich użyć w tym wypadku. Tytam McAngus robi rpg na u3d, może ci pomoże.

Jeśli chcesz dodać odpowiedź, zaloguj się lub zarejestruj nowe konto

Jedynie zarejestrowani użytkownicy mogą komentować zawartość tej strony.

Zarejestruj nowe konto

Załóż nowe konto. To bardzo proste!

Zarejestruj się

Zaloguj się

Posiadasz już konto? Zaloguj się poniżej.

Zaloguj się
  • Ostatnio przeglądający   0 użytkowników

    • Brak zarejestrowanych użytkowników przeglądających tę stronę.
×
×
  • Dodaj nową pozycję...