Premium

Získejte všechny články
jen za 89 Kč/měsíc

Jak vzniká 3D obraz (2. část)

  12:00aktualizováno  6. února 3:52
V prvním článku o principech generování 3D obrazu jsme si řekli něco o 3D potrubí, vytváření scény, modelování objektů pomocí polygonů a několika dalších souvisejících záležitostech. Tentokrát se podíváme na geometrické výpočty, které je třeba provést při renderování, na konverzi 3D souřadnic do 2D prostoru obrazovky a na vyřazování a ořezávání polygonů.

Zpracování geometrie
Každý model 3D objektu (například nějaké postavy nebo monstra) ve scéně má svou vlastní nezávislou soustavu souřadnic, které se říká prostor modelu (model space) nebo také lokální prostor (local space). Vlastní soustavu souřadnic má i samotná scéna – tato soustava je označována jako prostor scény (scene space) nebo prostor světa (world space). Jedním z kroků, které je třeba během tvorby výsledného obrazu učinit, je transformace všech nezávislých souřadných soustav, které se ve scéně vyskytují, na jedinou soustavu vztahující se k zornému bodu: na prostor pozorovatele (view space). Pro tuto transformaci se používají maticové operace (pokud si ještě ze střední školy vzpomenete, o co jde :-).

3D potrubí

Podobný proces transformace souřadných soustav vyžaduje i nasvícení (lighting) scény. Existuje mnoho typů zdrojů světla, od těch, co vyzařují do všech směrů až po zdroje osvětlující jen malé plochy (baterky atd.), a každý z nich vyžaduje jiný způsob matematického zpracování.

Prvním krokem renderování 3D obrazu je zpracování geometrie, jehož hlavní součástí jsou transformační a osvětlovací výpočty (T&L). Pokud nemáte ve svém počítači grafickou kartu s čipem, který umí tyto výpočty provádět (např. GeForce2 nebo Radeon), musí je vykonávat procesor (CPU). Mohou-li být tyto nezáživné kalkulace přenechány čipu grafické karty, má CPU „volné ruce“ a může se věnovat například výpočtům souvisejícím s modelováním fyzikálních vlastností objektů (pohyb, kolize, deformace atd.) a algoritmy umělé inteligence.

Konverze trojrozměrného obrazu na dvojrozměrný
Jakmile máme k dispozici výslednou množinu souřadnic vrcholů v 3D prostoru, můžeme přistoupit ke konverzi těchto souřadnic do prostoru obrazovky (screen space). Pro zobrazení na monitoru potřebujeme znát jednak souřadnice x a y těchto vrcholů v souřadné soustavě obrazovky a jednak hodnotu, která udává vzdálenost vrcholů od zorného bodu. Převod mezi souřadnicemi prostoru pozorovatele a prostoru obrazovky je poměrně jednoduchý a provádí ho všechny současné 3D karty bez účasti CPU.

Vyřazování a ořezávání polygonů
Během výše uvedených geometrických a konverzních výpočtů se mj. ukazuje, které polygony nebudou ve viditelném výřezu (viewport) vidět. Tyto polygony je samozřejmě vhodné co nejdříve vyloučit z dalších výpočtů, aby se neprováděla zbytečná práce. Tomuto procesu se říká vyřazování (culling). I samotná aplikace může o některých prvcích ze scénové databáze vědět, že nebudou z daného zorného bodu vidět, a vyřadit je sama – tomuto se pak říká databázové vyřazování. Nachází-li se například zorný bod v jedné uzavřené místnosti domu, je možné z výpočtů okamžitě vyloučit objekty nacházející se v jiných místnostech.

Všechny polygony, které se nacházejí částečně ve výřezu a částečně mimo něj, musejí být při konverzi příslušně oříznuty (clipping), aby se negenerovaly souřadnice mimo rozsah podporovaný zobrazovacím zařízením.

Hloubkové třídění
Vyřazováním a ořezáváním se však ještě se všemi neviditelnými polygony nevypořádáme – některé se totiž stanou neviditelnými proto, že je překryjí objekty nacházející se blíže k zornému bodu. Asi nejjednodušším způsobem, jak při vykreslování zohlednit hloubku, je vykreslovat všechny objekty postupně od nejvzdálenějšího až po nejbližší, takže bližší objekty překryjí ty vzdálenější. Tento algoritmus však vyžaduje, aby byly před renderováním všechny polygony hloubkově setříděny, což klade zvýšené nároky na výpočetní i paměťovou kapacitu; mimoto musí být vykresleny všechny polygony bez ohledu na to, zda budou v konečném důsledku viditelné. Další nevýhodou je, že takto nelze řešit případy polygonů, které se protínají – ani jeden z nich totiž není zcela před tím druhým (viz obrázek).

Protínající se polygony

Dnešní renderovací enginy obvykle použijí informaci o vzdálenosti, kterou jim předá konverzní engine, aby zjistily, zda se aktuální pixel na aktuálním polygonu nachází před nebo za posledním polygonem vykresleném na dané pozici. Pro každý pixel se ukládá jeho vzdálenost od posledního polygonu do zvláštního pole tzv. Z hodnot – toto pole se nazývá Z buffer nebo hloubkový buffer (depth buffer), je dvojrozměrné a jeho velikost odpovídá grafickému rozlišení obrazovky. Počet překrývajících se polygonů ve scéně se nazývá hloubková složitost (depth complexity).

Zdroj: MicroDesign Resources

 
Autor:
  • Nejčtenější

Odešla z Twitche, přesto je Amouranth stále nejsledovanější streamerkou světa

Kaitlyn Michelle Siragusa, vystupující na internetu pod přezdívkou Amouranth, se stále sluní na...

Nejlepší česká hra dekády se vrací. Kingdom Come 2 vyjde ještě letos

Dlouhých šest let museli fanoušci ohromného českého hitu Kingdom Come: Deliverance čekat na...

{NADPIS reklamního článku dlouhý přes dva řádky}

{POPISEK reklamního článku, také dlouhý přes dva a možná dokonce až tři řádky, končící na tři tečky...}

Populární stránka pro sdílení modifikací nevydržela nápor fanoušků Falloutu

Stránka Nexus Mods, která je hlavním uzlem pro sdílení modifikací počítačových her, zaznamenala...

KVÍZ: Jak dobře znáte českou historickou hru Kingdom Come: Deliverance?

Čerstvě oznámené pokračování české hry na hrdiny Kingdom Come: Deliverance bude přímo navazovat na...

{NADPIS reklamního článku dlouhý přes dva řádky}

{POPISEK reklamního článku, také dlouhý přes dva a možná dokonce až tři řádky, končící na tři tečky...}

Nezneužíváme děti, ale těm chudým dáváme možnost výdělku, tvrdí šéf Robloxu

Ředitel společnosti Roblox Stefano Corazza se v nedávném rozhovoru pro magazín Eurogamer pustil na...

Škoda představila závodní elektroauto, objeví se ve hře Gran Turismo

Poprvé ve víc než čtvrt století dlouhé historii závodní série Gran Turismo dostanou její hráči...

Autoři prvních The Elder Scrolls chystají novou hru. Má být zase obrovská

Dvojice herních vývojářů, která stála u zrodu dodnes oblíbené série The Elder Scrolls, představila...

85 %

RECENZE: Stellar Blade je poctivá řežba, která se nebojí násilí ani erotiky

Měla to být jen klasická výplňovka vydavatelského plánu ve slabším období roku, nakonec se však...

Fallout 76 přivítal během jediného dne milion hráčů, vděčí za to seriálu

O tom, jak velký vliv může mít úspěšný seriál na již vydané hry, se přesvědčilo studio Bethesda,...

Manželé Babišovi se rozcházejí, přejí si zachovat rodinnou harmonii

Podnikatel, předseda ANO a bývalý premiér Andrej Babiš (69) s manželkou Monikou (49) v pátek oznámili, že se...

Sexy Sandra Nováková pózovala pro Playboy. Focení schválil manžel

Herečka Sandra Nováková už několikrát při natáčení dokázala, že s odhalováním nemá problém. V minulosti přitom tvrdila,...

Herečka Hunter Schaferová potvrdila románek se španělskou zpěvačkou

Americká herečka Hunter Schaferová potvrdila domněnky mnoha jejích fanoušků. A to sice, že před pěti lety opravdu...

Největší mýty o zubní hygieně, kvůli kterým si můžete zničit chrup

Možná si myslíte, že se v péči o zuby orientujete dost dobře, přesto v této oblasti stále ještě existuje spousta...

Tenistka Markéta Vondroušová se po necelých dvou letech manželství rozvádí

Sedmá hráčka světa a aktuální vítězka nejprestižnějšího turnaje světa Wimbledonu, tenistka Markéta Vondroušová (24), se...