O společnostiProduktyObchodPodpora
Moravské přístroje
Hlavní stránka
O společnosti
Stažení software
Stažení dokumentů
Produkty
Control Web
Strojové vidění VisionLab
Kamery DataCam a osvětlovače DataLight
Průmyslový počítačový systém DataLab
Vědecké kamery
Speciální technika
Ceník
Aktivace produktů
Služby
Školení
Zakázková řešení
Podpora
Volba kamery a objektivu pro Strojové vidění
Control Web - Ukázkové aplikace

Hlavní stránkaProduktyProgramový systém Control Web3D grafika a GPU computing

Střípky z vývojové dílny – co bude nového ve 3D vizualizaci
 Připravovaná šestá verze systému Control Web přinese několik zlepšení kvality vizualizace. Většina novinek využívá nových možností současných grafických karet, především programovatelnosti grafických procesorů. Kromě několika drobností jsou zde dva působivé shadery a ti autoři aplikací, kteří stojí před problémem vykreslování 3D scény pro internetového klienta budou určitě potěšeni novou možností, jak toto zadání vyřešit.

Kvalitnější vykreslování odlesků texturovaných povrchů

V rámci klasického vykreslovacího řetězce je v případě texturovaných povrchů nejdříve vypočítána barva fragmentů včetně své odleskové složky (specularity = zrcadlivost) a poté je tato barva patřičným způsobem zkombinována s barvou získanou pro tento fragment mapováním textury. Tato technika vede k značnému potlačení odlesků od texturovaných povrchů, vlastní textura tak někdy příliš dominuje. Světlé části pak vypadají leskleji než tmavé. Řešením je oddělení informace odleskové složky barvy materiálu a její použití až nakonec po vyřešení barvy fragmentu včetně textury. V systému Control Web lze toto nastavit parametr světla:

Separátní řešení odleskové složky povrchů se nastavuje u světelných zdrojů ve scéně

Separátní řešení odleskové složky povrchů se nastavuje u světelných zdrojů ve scéně

Je-li třeba odlesk vytvořit na tmavém místě textury, je přínos výše popsané techniky pro kvalitu obrazu značný:

Barva osvětleného povrchu bez textury

Barva osvětleného povrchu bez textury

Klasicky vykreslený osvětlený texturovaný povrch

Klasicky vykreslený osvětlený texturovaný povrch

Texturovaný povrch se separátně řešenou odleskovou složkou

Texturovaný povrch se separátně řešenou odleskovou složkou

Poznámka:

Tento parametr ovlivňuje jen fragmenty, vykreslované klasickým vykreslovacím řetězcem, shadery si většinou řeší výpočet odleskové složky barvy fragmentů samy.

Vodní hladina s odrazem i lomem světla a animací vlnění

V systému Control Web již je jeden virtuální přístroj pro zobrazování vodní hladiny. Základním požadavkem pro tento přístroj byla schopnost provozu i na starých a málo výkonných grafických kartách. Proto animuje vodní hladinu jako čtvercovou síť vertexů, jejichž pozice počítá prostřednictvím CPU (byť v rámci prováděcího toku vykreslovacího serveru) a odlesky vytváří jen pomocí sféricky mapované fixní textury.

Pro kvalitnější simulaci vodní hladiny se již neobejdeme bez programovatelného grafického procesoru. V našem případě chceme simulovat několik optických jevů:

  • zrcadlení okolí na vlnící se vodní hladině

  • lom světla při zobrazování povrchů pod vodní hladinou

  • barvu vody, která respektuje její hloubku v daném místě (včetně pohledu zešikma)

  • animaci vlnění na hladině

  • odlesk světla na vlnící se hladině

  • ... a to vše s přesností na úrovni fragmentů obrazu

Vstupními daty pro náš fragmentový shader je kromě řady číselných parametrů šest textur, z nichž čtyři jsou dynamicky generovány s plným rozlišení viewportu daného vykreslovacího kontextu. Výsledkem je docela působivý a především velice snadno použitelný efekt.

Po vytažení přístroje z palety okamžitě vidíme výsledek

Po vytažení přístroje z palety okamžitě vidíme výsledek

Vlastnosti vody si můžeme prostřednictvím několika parametrů široce přizpůsobit své představě. Můžeme zvolit barvu vody, základní poměr mezi intenzitou reflexivního a refraktivního obrazu a míru intenzity odleskové složky barvy povrchu.

Kombinace refrakce obrazu kamenitého dna, reflexe obrazu okolí a odlesků světla

Kombinace refrakce obrazu kamenitého dna, reflexe obrazu okolí a odlesků světla

Jsou viditelné i ponořené části předmětů

Jsou viditelné i ponořené části předmětů

Reflexivní i refraktivní obraz je svou kvalitou zcela ekvivalentní kompletnímu vykreslení scény včetně veškerých víceprůchodových efektů. Tyto pomocné obrazy se dočasně uchovávají do textur s plným rozlišením scény a mohou v nich být např. i prostorové stíny, jsou zde vizualizovány zdroje světla, běží zde veškeré shadery, funguje zde occlusion query atd.

Barva vody ovlivňuje refraktivní obraz s rostoucí hloubkou

Barva vody ovlivňuje refraktivní obraz s rostoucí hloubkou

Shader má pro každý fragment informaci o vzdálenosti bodu na vodní hladině od bodu na příslušném povrchu pod hladinou. Proto může zvětšovat sytost barvy vody s rostoucí hloubkou.

Poznámka:

Zde je namístě otázka, jak takto složitý efekt zatěžuje systém. Vlastní vykreslení vodní hladiny běží téměř kompletně v GPU a pro CPU představuje pouhé poslání čtyř vertexů (v případě obdélníkové hladiny). Moderní grafické procesory překvapivě dobře zvládají i takto komplexní fragmentové výpočty, znatelnější zátěž pro celý vykreslovací systém představuje přípravná fáze, která vyžaduje několik vykreslovacích průchodů pro přípravu dat dynamických textur. A tyto průchody mohou být opět víceprůchodové a velmi složité s vysokým skrytým datovým tokem, obsahují-li např. prostorové stíny.

Zrcadlo s povrchovými nerovnostmi

Tento efekt je o hodně jednodušší než vodní hladina, ale i tak je velice působivý. Pracuje pouze s jedním reflexním obrazem a veškerou informaci o zvlnění povrchu zrcadla čerpá z jediné normálové mapy.

Zrcadlo se zvlněným povrchem v editoru scény

Zrcadlo se zvlněným povrchem v editoru scény

Tuto normálovou mapu si můžeme zadat podle své volby a tak vytvoříme zrcadla s různou strukturou povrchu.

I nerovné zrcadlo lze používat ve scéně s prostorovými stíny

I nerovné zrcadlo lze používat ve scéně s prostorovými stíny

Shader pro zrcadlovou plochu dokáže mapovat i odleskovou složku barvy povrchu

Shader pro zrcadlovou plochu dokáže mapovat i odleskovou složku barvy povrchu

Paralelní rendering pro tisk a WWW server přes pixel buffery

Na první pohled zcela samozřejmý požadavek viditelnosti 3D scény v internetovém klientu ve stejné kvalitě jako na obrazovce s kvalitním 3D akcelerátorem přináší několik nečekaných úskalí. Nejlépe použitelnou metodou systému Control Web verze 5 bylo kopírování obrazu z bufferů existujícího obrazovkového kontextu, ale i ta občas přinášela několik obtíží. Ta největší spočívala v tom, že vinou podivné "optimalizace" řady grafických ovladačů nebyly buffery v částech odpovídajících oblastem na obrazovce překrytým jinými okny správně inicializovány. Vykreslování sice i v těchto částech probíhalo normálně, ale výsledný obraz zde byl samozřejmě zmatený. Další problém spočívá v nutnosti vykreslit obraz na základě požadavku např. HTTP serveru. Vykreslování pak probíhalo mimo prováděcí tok renderovacího serveru a to se neobešlo bez synchronizací značně narušujících plynulost animací.

Obraz vytvořený pro webového klienta má plnou kvalitu akcelerovaného obrazu v obrazovkovém kontextu

Obraz vytvořený pro webového klienta má plnou kvalitu akcelerovaného obrazu v obrazovkovém kontextu

V některých případech tak může být velmi přínosné použít spolu se základním obrazovkovým kontextem paralelní tzv. pixel buffer, který slouží pouze k vykreslování pro potřeby tisky nebo HTTP serveru. Tento buffer se nachází v rychlé paměti grafické karty (zde pochopitelně zabírá místo, kterého nikdy není dost) a GPU s ním dokáže pracovat stejně akcelerovaně jako s obrazovkovým kontextem (včetně veškerých shaderů atd.). Vykreslování do tohoto bufferu pak probíhá v jiném prováděcím toku paralelně s vykreslováním na obrazovku a ušetří se ztráty času při synchronizacích.

Pro současné grafické karty je schopnost vytvářet pixel buffery s plně akcelerovaným vykreslováním samozřejmostí.

To je několik nových možností vizualizace pro připravovanou verzi systému. Nové vlastnosti sledují současné technologie počítačové grafiky. V systému Control Web získáváte vždy "plně vybavené" prostředí pro realizaci svých představ.

rc@mii.cz

 
 | O společnosti | Produkty | Podpora | Stažení software | Stažení dokumentů | 
Moravské přístroje, a.s., Masarykova 1148, Zlín-Malenovice, 76302