Jakmile musíme vytvořit vizualizaci exteriéru (např. okolí továren,
přehrady, jezy, rozvodny atd.) tak, aby vypadala přijatelně věrohodně,
bez zobrazování stromů, keřů a trávy se asi neobejdeme. U trávy
si ještě většinou lze vystačit s hezkou texturou, strom ale již
musí být opravdovým třírozměrným objektem.
Co však může být jednodušší než najít si na Internetu nějaké modely
stromů, stáhnout si je a umístit je do své scény. V čem by zde
mohl být nějaký problém? Záhy však pravděpodobně narazíme na několik
potíží. Prakticky veškeré takto získané modely nejsou koncipovány pro
vykreslování v reálném čase, to přináší několik souvislostí:
modely s akceptovatelným množstvím polygonů vypadají
velmi nehezky
hezké modely se skládají z naprosto neúnosného počtu
povrchů (často statisíce), takové modely nám značně limitují
rychlost překreslování
modely prakticky nikdy nejsou konstruovány jako těsně
uzavřené objemy (2-manifold), nemohou tedy vrhat prostorové
stíny
Ano, to jsou ty potíže se stromy zmíněné v titulku. Proto byl
do SP3 systému Control Web přidán nový virtuální přístroj
gl_tree jako rychlý a přitom vizuálně přijatelný
model stromu (jeden druh stromu - to není zrovna mnoho, nicméně
předpokládám, že další modely budou časem přibývat :-). Tento
vestavěný model obsahuje jen zcela minimální počet trojúhelníků a
přesto vypadá celkem použitelně. Především je instantně
k dispozici, pouze se vytáhne myší s palety a položit do
scény. Kmen stromu je tvořen 2-manifold uzavřeným objemem a pro
vykreslování koruny se využívá textura s průhledností klíčovanou
alpha kanálem. Díky tomu, že model je vestavěn do systému, který zná
jeho strukturu, je možno používat pro tvorbu objemu prostorového stínu
různé algoritmy pro různé skupiny. Je tedy generován korektní
prostorový stín. Stín samozřejmě nerespektuje alpha klíčování
průhlednosti textury koruny, ale je vytvářen podle vnějších okrajů
polygonů koruny (byť těleso koruny není uzavřeným objemem).
Service Pack 5 přináší pro model stromu ještě další
vylepšení - pomocí GLSL vertex shaderu se může strom kymácet ve větru.
Na moderních grafických kartách můžeme těmito animacemi zlepšit
působivost scény prakticky bez pozorovatelného zvýšení zátěže CPU
(případný prostorový stín se musí kymácet současně se stromem - proto
také objem stínu je počítán a vykreslován pomocí GPU vlastní
shaderem).
RC mailto:rc@mii.cz
|