Skocz do zawartości

Rekomendowane odpowiedzi

Witajcie, postanowiłem dać Wam znów kawałek xenona, tym razem jest to mała biblioteczka (ze względu na wagę) o dużych możliwościach jakie dają macierze. Czym są macierze? Do lektury odsyłam TUTAJ :) A po co Nam te macierze? A no tutaj nie będę tak leniwy i powiem. Otóż wszelkie operacje transformacji (czy to 3D czy 2D) odbywają się na macierzach (przynajmniej powinny), które są czymś co ułatwia Nam całkowicie sprawę i nie potrzebujemy już milionów lengthdirów aby obrócić ramię naszego szkieletu, wystarczy "obrócić macierz" i przemnożyć przez nią wektor jakim jest punkt (2D/3D) i jako wynik dostaniemy przetransformowany punkt. Ale po co Nam to skoro do obrotu wystarczy nam lengthdir i odpowiednia kolejność? a no dla tego że macierz ma taką dobrą właściwość jak składanie transformacji i może przechować wszystkie dokonane operacje transformacji w jednej takiej samej (czyli tablicy 4x4 elementów) bez konieczności martwienia się o lengthdiry i multum obliczeń. Dla większości osób piszących grę 3D w GM ma problem z kamerą, że nie zawsze ustawia się jak należy, przez co obraz może się zniekształcać. Tym bardziej osoby chcące obracać kamerę w osi X (kąt gamma) też nie potrafią tego zrobić, i dla tego z pomocą przychodzi macierz, którą "obracamy", transponujemy (aby odzwierciedlić ją na GMową orientację w przestrzeni) i mnożymy przez nią wektor patrzenia oraz wektor góry kamery. Jak to się czyta to wydaje się dzikie i niezrozumiałe, ale w przykładzie jest to o wiele łatwiejsze ;P dla tego polecam spawdzić jak to działa, bo jest to bardzo przydatne dla odciążenia kochanego procka :) możecie też dać swoje propozycje jakie przykłady z transformacjami dodać :)

 

Download

 

Wersja ta zawiera:

* prostą kamerę symulatora lotu (obracanie kamerą za pomocą W,S,A,D,Q,E)

* zaawansowaną kamerę symulatora lotu (obracanie samolotem za pomocą strzałek)

 

W Game Info jest lista do zrobienia, chętnie też dodam Wasze pomysly ;)

 

Screeny:

screeng.png

 

screeno.png

Odnośnik do komentarza
Udostępnij na innych stronach

w podprzestrzenie prymarne muszę się zagłębić, bo to dla mnie nowe zagadnienie, a co do klatek Jordana to wiedz że ta macierz jest stworzona pod kątem grafiki, czyli jest to macierz kwadratowa 4x4, a więc jej wielkość jest ograniczeniem dla klatek Jordana :P ale nie omieszkam postarać się dodać to :)

Odnośnik do komentarza
Udostępnij na innych stronach

A to się nadaje nie tylko do 3D, dodam też do tego przykład animacji szkieletowej, bazującej na macierzach, nie zaś na lengthdirach jak to się zwykle robi ;P

 

UPDATE:

 

Nowa wersja z zaawansowaną kamerą symulatora lotu dodana!

 

Download: TUTAJ oraz w pierwszym poście :)

 

screeng.png

Odnośnik do komentarza
Udostępnij na innych stronach

@Kofel: Gwoli ścisłości: ten temat jest o bibliotece do obsługi macierzy, co nie ogranicza się tylko do kamery. Kamera poszła na pierwszy ogień bo to jedno z bardziej przydatnych elementów używających macierze ;)

 

@Egzekutor: opadanie występuje wtedy gdy prędkość samolotu jest mniejsza niż minimalna prędkość wznoszenia.

 

@Roki: Niestety ten przykład ma głównie pokazywać zastosowanie macierzy, mniej tam chciałem umieszczać bajerów, nie mniej jednak gdy skończę resztę przykładów do tej biblioteki to dodam i te bajerki :)

 

Tak czy inaczej dziękuję wszystkim za pozytywne oceny :) kolejnym przykładem będzie animacja szkieletowa :) jeśli macie jakieś pomysły na przykład gdzie potrzeba transformacji to napiszcie, a chętnie taki przykład dodam ;)

Odnośnik do komentarza
Udostępnij na innych stronach

Gnysku, bardzo dobry pomysł, jak skończę przykład animacji szkieletowej do tego to napiszę i wrzucę też art o macierzach do zasobów GMClanu :)

 

 

UPDATE!!!

DODANO: Animacja szkieletowa humanoida (w przełożeniu na polski: postaci człeko-podobnej)

 

Download: TUTAJ oraz w pierwszym poście :)

 

Screen:

screeno.png

Odnośnik do komentarza
Udostępnij na innych stronach

I tak nikt z tego nie skorzysta ^_^

 

Zrób lepiej przykład obrazujący, dlaczego zastosowanie macierzy do tego typu problemów jest wydajniejsze, bo sam osobiście wątpię w sens tego rozwiązania... ;/

Już wolę te kilka nanosekund (ekhm, albo i mniej... ;/) poświęcić, ale za to nie używać niepotrzebnie dlla (mówię odnośnie przykładu animacji szieletowej).

 

Ed: Albo raczej nie "dlaczego", a "jak bardzo" :P

Odnośnik do komentarza
Udostępnij na innych stronach

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ę...