Hlavní stránka Hardware Grafické karty Polopatě - rendering 3D scény (a jak to přibližně funguje)
Polopatě - rendering 3D scény (a jak to přibližně funguje)
autor: Kwolek Jirka , publikováno 30.4.2007
Polopatě - rendering 3D scény (a jak to přibližně funguje)

Pokud Vám z Geometry, Pixel, Vertex shaderů, textur a jednotek ROP jde hlava kolem, nezoufejte, v následujícím bloku se pokusím (s pomocí jednoho automobilového příkladu) přiblížit, jak funguje moderní grafická karta (navíc DirectX 10).


Abychom vysvětlili absolutní základy principy a postupy prostorové (tedy 3D) počítačové grafiky, pomůžeme si berličkou, která do naši problematiky přinese trochu více "hmotné reprezentace". Postup vytvoření 3D zobrazení totiž částečně přirovnáme ke stavbě karosérie automobilu (a odborníci mi jistě prominou nutná zjednodušení, které toto přirovnání položí na oltář srozumitelnosti celé látky). Vzhledem k tom, že poslední verze DirectX 10 (a Direct3D 10) přináší do 3D zobrazení konečně více logiky a srozumitelnosti - budeme se držet terminologie spojené s tímto rozhraním.

Polopatě - rendering 3D scény (a jak to přibližně funguje)

Motto: dříve byl výpočet komplexní scény otázkou minut - dnes se požaduje, aby grafická karta vychrlila takových obrázků (v pokud možno podobné kvalitě) za vteřinu nejméně 60 až 70...

Fáze nula aneb Na začátku je vždy model

Na začátku celého procesu jsou v obou případech model - v počítačové mluvě se jedná o "vstupní data". V případě automobilu se jedná o jeho "stavební plány", u her se můžeme setkat s matematickými (avšak ve své podstatě velmi podobnými) modely - jen se v 3D herním prostředí modeluje každý prvek, který se v obraze vyskytuje (včetně tak zdánlivě nehmotných věcí jakými jsou mlhy, páry a kouře). V obou případech vstupní data reprezentují zpracovávaný model.

Polopatě - rendering 3D scény (a jak to přibližně funguje)

Zatímco v konstrukcí skutečného auta se jedná o komplexní model funkčního stroje, u her je jedná jen o ty viditelné části modelu (Michal: ale konstruktéři automobilů zase nemusí modelovat silnici, okolní stromy, diváky, nebo prohnutý blatník).

Začínáme stavět 3D svět...

Polopatě - rendering 3D scény (a jak to přibližně funguje)
Model automobilu Porsche 356 (www.suurland.com) není

Karoserie automobilu je prvkem, na kterém lze nejlépe ilustrovat skutečný postup 3D renderingu. Předpokládejme, že plány auta máme hotové a že k nám na dílnu putují údaje pomocí telefonu přímo z konstrukční kanceláře. S konstruktérem (zde 3D aplikace) jsme se dohodli, že nám bude postupně posílat souřadnice bodů ze kterých budeme skládat postupně celou konstrukci kousek po kousku.

(IA) Input-Assembler Stage

Jelikož komunikace míníme co nejvíce zjednodušit, budeme dílně přijímat jen základní prvky (anglicky - primitives): zejména body a jejich souřadnice, případně linie nebo trojúhelníky (trojúhelník umístěný v prostoru je základním stavebním prvkem každého 3D modelu). Na vstupu tyto prvky pečlivě očíslujeme (připojíme jim pomyslné visačky) a podle potřeby z nich složíme kompatibilní (a třeba i poněkud složitější) základní typy - jakými jsou například Triangle List a Triangle Strip...

Polopatě - rendering 3D scény (a jak to přibližně funguje)
(Základní typy DX3D 10) - tento obrázek není pro začátečníky podstatný.

Fáze "Input-Assebler Stage" je z "výrobního hlediska" jen přípravná a je podobná přípravné fázi před zahájením výroby, kdy se shromažďují data potřebná k vytvoření 3D modelu. Za přípravnou pak začíná první "výrobní" fáze: "Vertex Shader Stage"...

Co je důležité vědět: přípravnou fázi si nemusíte nutně pamatovat, jen si pamatujte, že každý kompletně popsaný bod v 3D prostoru je dále nazýván vertex (vrchol). Každý vertex má celou řadu parametrů (umístění v prostoru, barvu, měřítko a umístění textury, vazbu na další vertexy).



 
Komentáře naleznete na konci poslední kapitoly.
797 čtenářů navrhlo autorovi prémii: 391.3Kč Prémie tohoto článku jsou již uzavřené, děkujeme za váš zájem.
Tento web používá k poskytování služeb soubory cookie.