Aby wygodnie tworzy� bry造 3D trzeba skorzysta� z tr鎩wymiarowego
uk豉du wsp馧rz璠nych x, y i z. Jest tylko jeden problem: aby wy鈍ietli�
obraz na ekranie potrzeba jedynie dw鏂h wsp馧rz璠nych x i y. Istniej�
jednak wzory, kt鏎e pozwalaj� przekszta販i� wsp馧rz璠ne 3d na 2d tworz帷
perspektywiczny efekt 3d na dwuwymiarowym ekranie.
x2d = 256 * x3d / (z3d + dist) + 160
y2d = 256 * y3d / (z3d + dist) + 100
gdzie:
x2d,y2d - wsp馧rz璠ne dwuwymiarowe
x3d,y3d,z3d - wp馧rz璠ne tr鎩wymiarowe
dist - odleg這嗆 od obserwatora
przydadz� si� tak瞠 wzory na obr鏒:
wok馧 osi OX:
Yn = y*cos(k徠) - z*sin(k徠)
Zn = y*sin(k徠) + z*cos(k徠)
wok馧 osi OY:
Xn = x*cos(k徠) - z*sin(k徠)
Zn = x*sin(k徠) + z*cos(k徠)
Wok馧 osi OZ:
Xn = x*cos(k徠) - y*sin(k徠)
Yn = x*sin(k徠) + y*cos(k徠)
Gdzie:
Xn,Yn,Zn - nowe wsp馧rz璠ne
x,y,z - stare wsp馧rz璠ne
Tworz帷 animacje warto jeszcze zwr鏂i� uwag� na jeden fakt. Rysuj帷
kolejne klatki musisz usuwa� poprzedni obraz. "Zmazywanie"
poprzedniej klatki jest r闚nie czasoch這nne jak rysowanie nast瘼nej.
Jak si� z tym upora�? Ot騜 ja stosuj� prost� metod�. Zamiast wpisywa�
dane obrazu do pami璚i karty graficznej zapisuje je gdzie� do pami璚i
RAM. Kiedy ju� ca造 obraz jest w pami璚i RAM, kopiuj� go do pami璚i
karty, a nast瘼nie czyszcz� ten fragment pami璚i RAM. W ten spos鏏
nast瘼n� klatk� rysuj� jakgdyby na pustym ekranie. Poni窺zy schemat
powinien rozwia� wszelkie w徠pliwo軼i.
p皻la:
zmie� dane obrazu -> (to ma by� animacja)
zapisz dane o kolorach poszczegolnych pixeli w pami璚i RAM
kopiuj zawarto嗆 RAM do pami璚i karty
wyczy嗆 zawarto嗆 RAM
powr鵵 do pocz徠ku (i tak w k馧ko).