Trojrozmerná projekcia - Biblioteka.sk

Upozornenie: Prezeranie týchto stránok je určené len pre návštevníkov nad 18 rokov!
Zásady ochrany osobných údajov.
Používaním tohto webu súhlasíte s uchovávaním cookies, ktoré slúžia na poskytovanie služieb, nastavenie reklám a analýzu návštevnosti. OK, súhlasím


Panta Rhei Doprava Zadarmo
...
...


A | B | C | D | E | F | G | H | CH | I | J | K | L | M | N | O | P | Q | R | S | T | U | V | W | X | Y | Z | 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9

Trojrozmerná projekcia

Trojrozmerná projekcia alebo 3D projekcia je matematická transformácia požívaná na zobrazenie trojdimenzionálneho sveta na dvojdimenzionálnu plochu, napríklad obrazovku. Tento proces sa v počítačovej terminológií nazýva aj renderovanie.

Nasledujúci algoritmus bol používaný už na skorších počítačoch na simulovanie alebo renderovanie videohier. Avšak tento algoritmus je používaný s malými zmenami dodnes.

Dáta nevyhnutné pre projekciu

Dáta o objektoch na vyrenderovanie sú väčšinou uložené ako zoznam bodov, poprepájané do trojuholníkov, alebo polygónov. Každý bod je reprezentovaný troma súradnicami : X,Y,Z ktoré majú počiatok v základnom bode objektu ktorému patria. Každý objekt má viacero trojuholníkov. Objekt má tiež svoje súradnice X,Y,Z a slúžia na uľahčený pohyb všetkých trojuholníkov ktoré obsahuje. Okrem toho môže obsahovať aj rotáciu, napríklad alfa, beta a gama. Tieto údaje slúžia na určenie lokácie a rotácie vo svete.

Nakoniec je tu kamera (pozorovateľ), ktorá je niekde umiestnená vo svete a zobrazuje svet z tohto bodu. Jeden svet môže obsahovať aj viac kamier a prepínať medzi nimi.

Všetky tieto dáta sú uložené v desatinných číslach a potom prevádzané na celé, aby ich bolo možné vykresliť na obrazovku, Treba poznamenať, že programy, ktoré pracujú len s celými číslami sú rýchlejšie.

Krok 1: Transformácia sveta

Prvým krokom je presúvanie (po anglicky: Translation) bodov vo svete. Všetky body sa uložia v tvare: — Bod Tá jednotka na konci je dôležitá. Potom sa na ňu aplikujú matice rotácií (po anglicky: Rotation) po všetkých osiach: — Presúvanie bodu

— Rotácia po x-ovej osi
— Rotácia po y-ovej osi
— Rotácia po z-ovej osi

Tieto štyri matice sú dokopy vynásobené a vzniká tak matica transformácie sveta. Touto maticou je potom vynásobený bod a vzniká jeho nová pozícia.

Násobenie matíc nepracuje na rovnakom princípe ako normálne násobenie, záleží tu na poradí a to zľava doprava. Takže si treba premyslieť toto poradie. Treba to najskôr zrotovať a až potom objekt presunúť. Keby sa to urobilo opačne, tak by sme objekt neotočili okolo svojho stredu, ale okolo bodu, ktorý bol stredom pred jeho posunutím. To spôsobí rotáciu podobnú obežnej dráhy a nie rotáciu okolo svojej osi.

Transformácia sveta = Presun × Rotácia

Aby bola transformácia kompletná, je potrebné mať možnosť zväčšovania a zmenšovania, po anglicky: Scale. Táto matica sa pridá k predošlým štyrom.

— kde sx, sy, and sz sú činitele naťahovania.

Keďže je väčšinou výhodnejšie najskôr objekt scalenúť (pretože pôvodné súradnice sú krajšie ako tie zrotované) Tak sa táto matica uprednostňuje.

Transfomácia sveta = Presun × Rotácia × Scaleovanie

— Konečný výsledok: × x × y × z × Scaleovanie.

Krok 2: Transformácia kamery

Tento krok je podobný prvému, len na miesto sveta hýbeme kamerou a používame súradnice kamery. Keďže hýbeme kamerou a treba to aplikovať na svet, tak pohneme svetom v opačnom smere a v opačnom poradí. (Treba poznamenať : (A×B)-1=B-1×A-1.) Výsledná matica transformuje koordináty sveta tak, aby to vyzeralo, že sa kamera pohla.

Kamera sa zvyčajne na začiatku pozerá do z-ovej osi, x-ová os je do ľava a y-ová smerom hore.

— (inverzný presun je presun v opačnom smere).
— inverzná rotácia po x-ovej osi (Inverzná rotácia je rovnako veľká rotácia do opačnej strany. Netreba zabudnúť že : sin(−x) = −sin(x), a cos(−x) = cos(x)).