Do skora je ovde stajalo moje pitanje " DirectX Tacka oko koje se vrsi rotacija objekta". Ako neko ima isti problem, evo odgovora ( samo treba ostaviti problem sa strane nekoliko dana i kada se ponovo na njega vratite on je vec resen 60%, verujte mi ).
Dakle, transformacije se vrse u WORLD space-u pomocu matrica. Svaki vertex u meshu ima svoju poziciju:
Na primer, evo jednog trougla ( dobro, neceg sto podseca...):
A (0,0,10)
/\
/ \
B (-10,0,-10) C(10, 0, -10)
Centar trougla je sada ( neko D ) D (0, 0, 0) ( proverite ako hocete ).
Sada, kada se vrsi rotacija pomocu matrice trougao se obrce oko ovog centra.
Pomeranje centra:
Centar pomeramo tako sto offsetujemo svaki vertex nekom vrednoscu:
A (0,0,5)
/\
/ \
B (-10,0,-5) C(10, 0, -5)
U ovom slucaju je centar pomeren za 5 ( necega ) po Z osi.
Ali, nije pomeren centar. Pomereni su vertexi. Centar ostaje gde je ( zao mi je zbog lose interpretacije ) tako da trougao "klizi" na gore ali je u odnosu na trougao pomeren, za 5 jedinica. Tako, sada kada rotiramo trougao pomocu matrice on ce se rotirati oko nove tacke koja je u odnosu na trougao pomerna za 5 jedinica.
Isprobajte, ukapiracete fazon.
Mozda ovo mnogi ljudi vec znaju, ali je meni ovo stvarno bilo problem duze vreme, i odgonetnulo je mnoge misterije u odnosu WORLD - OBJECT space-u.