Programujeme GPU / 22. časť

opengl_logo.jpg V tom­to člán­ku sa za­me­ria­me na opis im­ple­men­tá­cie tzv. High Dy­na­mic Ran­ge ren­de­rin­gu. Vo vzťa­hu k OpenGL mô­že­me po­ve­dať, že prin­cí­pom HDR je zreál­ne­nie vzhľa­du ren­de­ro­va­ných scén po­mo­cou zvý­še­nia ja­su tých bo­dov, v blíz­kos­ti kto­rých sa na­chá­dza­jú sve­tel­né zdro­je.

Teória tý­ka­jú­ca sa HDR ren­de­rin­gu a s ním sú­vi­sia­cich pos­tu­pov po­nú­ka množ­stvo in­for­má­cií oh­ľa­dom vní­ma­nia svet­la ľud­ským okom v kon­tras­te s je­ho po­čí­ta­čo­vou ap­roximá­ciou.

GPU-obr1.jpg

Obr. 1  Príl­oha se­riá­lu – glsl v2.4 – Im­ple­men­tá­cia „ones­ko­re­né­ho“ ren­de­rin­gu – De­ferred sha­ding

HDR prak­tic­ky

Fak­tom je, že jas (lu­mi­nan­ce) pri­ra­de­ný kon­krét­ne­mu bo­du ob­ra­zov­ky ne­do­ká­že­me zvý­šiť nad maximál­nu hod­no­tu, kto­rá je v rám­ci OpenGL vy­jad­re­ná reál­nym čís­lom 1.0, resp. ce­lým čís­lom 255. Bo­dy po­čí­ta­čo­vé­ho dis­ple­ja jed­no­du­cho nie sme schop­ní ni­ja­kým spô­so­bom roz­žia­riť viac, ako nám to do­vo­lí har­dvér.

Na­mies­to to­ho se­lek­tív­ne zvý­ši­me jas bo­dov, kto­ré sa na­chá­dza­jú v blíz­kos­ti bo­du s maximál­nym ja­som:

  1. Vy­kres­lí­me kom­plet­nú scé­nu so všet­ký­mi jej ob­jek­tmi a sve­tel­ný­mi zdroj­mi do 1. FBO textú­ry. Ap­li­ká­cia glsl v2.1 ok­rem ob­jek­tov, kto­ré sme vy­kres­ľo­va­li v pre­doš­lých ver­ziách, vy­kres­ľu­je aj po­za­die rep­re­zen­to­va­né vnú­tor­ný­mi ste­na­mi koc­ky pok­ry­tý­mi šies­ti­mi textú­ra­mi. Tých­to šesť textúr spo­loč­ne tvo­rí textú­ru Cu­be­Map, kto­rou nes­kôr pok­ry­je­me os­tat­né ob­jek­ty scé­ny za pou­ži­tia chro­ma­tic sha­de­ra. Ten­to sha­der sí­ce ne­má pria­my sú­vis s HDR ren­de­rin­gom, 1. FBO textú­ru však napĺňa 16-bi­to­vý­mi reál­ny­mi čís­la­mi, kto­ré neo­re­zá­va (no clip), to zna­čí, že hod­no­ty RGB mô­žu le­žať v inter­va­le <0.0;ne­ko­neč­no).
  2. Po­mo­cou bloom (pres­vet­le­nie) sha­de­ra vy­be­rie­me tie čas­ti 1. FBO textú­ry, kto­rých jas (in­ten­zi­ta fa­rieb) je väč­ší ako na­mi sta­no­ve­ná hod­no­ta, pri­čom vý­sled­ky ulo­ží­me do 2. FBO textú­ry. Mô­že­me si všim­núť, že vy­be­rá­me tie frag­men­ty, kto­rých hod­no­ty RGB sú rov­na­ké, resp. väč­šie ako maximál­na mož­ná hod­no­ta ve­c3(1.0,1.0,1.0).
  3. Vy­uži­tím blur (roz­ma­za­nie) sha­de­ra v spo­lup­rá­ci s downsam­plin­gom (zmen­še­nie roz­lí­še­nia) nie­koľ­kok­rát „roz­ma­že­me" 2. FBO textú­ru.
  4. Obe FBO textú­ry vzá­jom­ne skom­bi­nu­je­me a vý­sle­dok ren­de­ru­je­me do fra­me­buf­fe­ra alo­ko­va­né­ho ap­li­ká­ciou.

To­ne-Map­ping

Uve­de­ný pro­ces­ný pos­tup úpl­ne sta­čí na to, aby sme na­še scé­ny se­lek­tív­ne „pres­vet­li­li". Ke­by sme však ma­li byť dôs­led­ní, do pro­ce­su mu­sí­me za­hr­núť aj tzv. to­ne-map­ping. V spo­je­ní s HDR ide o tran­sfor­má­ciu fa­rieb HDR na tzv. far­by Low Dy­na­mic Ran­ge, kto­ré mô­žu byť zob­ra­ze­né dis­ple­jom po­čí­ta­ča.

Zjed­no­du­še­ne po­ve­da­né, ide o pre­vod hod­nôt HDR, kto­ré mô­žu teo­re­tic­ky le­žať v inter­va­le <0.0;ne­ko­neč­no), na hod­no­ty LDR, kto­ré mu­sia le­žať v inter­va­le <0.0;1.0>. To reali­zu­je­me po­mo­cou tzv. to­ne-map­ping ope­rá­to­ra, kto­rý mô­že mať mno­ho po­dôb. V na­šom prí­pa­de sme pou­ži­li vzo­rec:

Y = expo­su­re * ( ( expo­su­re / brig­htness + 1.0 ) / ( expo­su­re + 1.0 ) )

Ope­rá­tor vy­ze­rá po­mer­ne zlo­ži­to, ale v ko­neč­nom dôs­led­ku vy­ko­ná­va nas­le­du­jú­ci pre­vod:

Hod­no­ty RGB, kto­ré vznik­nú súč­tom fa­rieb bo­dov ulo­že­ných v 1. a 2. FBO textú­re a kto­ré le­žia v inter­va­le ve­c3(0-ne­ko­neč­no,0-ne­ko­neč­no,0-ne­ko­neč­no), tran­sfor­mu­je na hod­no­ty RGB, kto­ré je schop­ný zob­ra­ziť dis­plej po­čí­ta­ča, te­da do inter­va­lu ve­c3(0-1,0-1,0-1).

Zdroj: IW 5/2013



Ohodnoťte článok:
   
 

24 hodín

týždeň

mesiac

Najnovšie články

Zá­lo­huj­te dá­ta efek­tív­ne
S nárastom objemu dát sa čoraz väčší dôraz kladie na ich bezpečné a efektívne zálohovanie. Tradičné spôsoby už pomaly začínajú narážať na svoje limity, a tak sa výrobcovia zálohovacích riešení snažia nájsť ďalšie alternatívy. čítať »
 
Ako bu­dú fun­go­vať glo­bál­ne te­le­ko­my v ro­ku 2020?
V roku 2020 si zákazník nebude kupovať prístup, ale služby ekosystému telekomunikačných spoločností. Komunikácia bude prebiehať na platforme sociálnych médií. čítať »
 
SXSW je aj nie je o IT
Festival South by Southwest, skrátene SXSW, ktorý sa už 20 rokov odohráva každoročne v americkom Austine, je známy najmä svojou myšlienkou prepájania technológií a kreatívnych riešení na lepšiu budúcnosť. čítať »
 
Zdie­ľa­nie zdro­jov me­dzi OS Win­dows a OS Li­nux / 11.
V tomto článku ukončíme tému, v ktorej sme sa venovali špecifickému spôsobu pripojenia smartfónu k PC pomocou ad hoc siete Wi-Fi. Opíšeme úpravy konfiguračného súboru wpa_supplicant.conf. Nakoniec vytvoríme funkčné spojenie medzi smartfónom a PC. čítať »
 
Ap­li­kač­ná lišta
Aplikačná lišta nahradzuje v nových aplikáciách Modern UI pre Windows 8 ponuky funkcionality, ktoré v rôznych formách (menu, lišty tlačidiel...) poznáte z klasických aplikácií. Počas behu aplikácie je lišta skrytá, aby aplikácia mohla využívať celú plochu obrazovky. čítať »
 
Prog­ra­mu­je­me GPU / 22. časť
V tomto článku sa zameriame na opis implementácie tzv. High Dynamic Range renderingu. Vo vzťahu k OpenGL môžeme povedať, že princípom HDR je zreálnenie vzhľadu renderovaných scén pomocou zvýšenia jasu tých bodov, v blízkosti ktorých sa nachádzajú svetelné zdroje. čítať »
 
DNS – kon­fi­gu­rač­ný sú­bor na­med.conf
V predchádzajúcej časti sme ukázali tvorbu najdôležitejších záznamov RR v zmysle nášho imaginárneho príkladu siete. Zároveň sme naznačili tvorbu záznamu PTR (Pointer), ktorý hovorí o spätnom preklade. Tentoraz sa budeme venovať konfigurácii celého systému DNS. čítať »
 
No­vé server­y SPARC s naj­rý­chlej­ší­mi mik­rop­ro­ce­sor­mi na sve­te
Akvizíciou Sun Microsystems spoločnosť Oracle, dovtedy výhradne softvérová firma, získala nielen portfólio serverov, ale aj kvalitný tím špecialistov na vývoj procesorov. Preto popri nových serveroch Oracle s predponou Exa ďalším „esom v rukáve". čítať »
 
 
 
  Zdieľaj cez Facebook Zdieľaj cez Google+ Zdieľaj cez Twitter Zdieľaj cez LinkedIn Správy z RSS Správy na smartfóne Správy cez newsletter