23. 6. 2011

Slnko - 3.826 x 10 na 26 Watt žiarivého výkonu

Nočnou normou grafikov, už od čias prvých 3D hier, je zobrazenie objektu, ktorý vyžaruje alebo odráža svetlo skutočne jasne. Problém je to o to pikantnejši, že minulá a ani sučasná špičková TV technolológia nemá technické parametre, aby takúto intenzitu svetla vôbec fyzikálne korektne zobrazila. HDR - high dynamic range rendering je v podstate spôsob/norma ako z tej kaše na LDR /low dynamic range/ telkách vycúvať. Rozhodne nejde o šprint smerom dopredu. Na 8 bitovom spektre ste mali 2 odtiene žltej farby pomocou, ktorých ste museli nakresliť všetko - od pečúceho slnka, po ligot zlatých dublónov. Situácia dnes o 30 rokov neskôr nie je o nič ľahšia. Celý HDR rozsah sa vám musí vojsť do 8 bitového integer rozsahu, čo je prašivých 256 hodnôt.

Cieľom je, že ako v tých najjasnejších, tak najtmavších častiach obrazu sa detaily nesmú zlievať do jednoliatej bielej, alebo čiernej. Pre porovnanie rozsah "kontrastu" matky prírody je de fakto nekonečné čislo, ľudské oko 10 000:1 /statický kontrast, rozdiel medzi najsvetlejším a najtmavším bodom v stojacom-nemennom obraze/ až 10 000 000:1 /dynamický rozsah, to iste ako statické, len je možné prispôsobenie optického systému po nejakej uplynutej dobe, teda nie okamžitá reakcia/, full HD telka ho má v jednom aj druhom bode o jeden rád horší, je to teda úplne iná liga.

Ako vlastne nejakým podfuckom vyriešiť to, že v hre čumím na rozpálený biely kameň, alebo rovno do slnka ? Vidiac všetky doterajšie HDR riešenia, chytám sa samozrejme stále za brucho /HL2 HDR Coast demo je klasika/. Každopádne - lens flare, bloom, tone mapping sú všetko hlavné pomôcky, ako si pomôcť so zobrazením pekelne jasného svetelného zdroja pri zachovaní integrity zobrazenia celej scény. Lens flare je patologicky známy efekt prítomný snáď vo všetkých 3D hrách od uvedenia prvého GPU Voodoo 1 na scénu, efekt tak častý a bohapusto zneužívaný až pôsobil ako paródia seba samého.


lens flare

Na javoch vyvolaných refrakciou prudkého svetla na čočke /či už kamere, alebo nášho oka/ sa vývoj nezastavil a novým módnym hitom sa stal bloom. Ak bolo lens flare všadeprítomné, bloom niekedy priam ohavným spôsobom na dlhé roky doslova "definoval" modernú hernú grafiku. V tomto prípade sa využíva vlastnosť svetelného zdroja svojim jasom prekryť menej kontrastné objekty v popredí, tzv. bleeding. Povedzme - farebný presah. Aura. Vhodné aj pre simulácia odrazeného svetla od lesklého/odrazivého objektu - brnenie, biela skala, vodná hladina. Pochopiteľne implementácia závisí aj od estetického cítenia a miery sebakontroly nad tvorivým procesom. Dole máte jeden zlý /radioaktívne svetielkujúci Fable/ a jeden fantastický /ICO/ vydarený príklad bloom efektu.

bloom

Ultramodernou verziou týchto prefláklych efektov sú god rays - v hernom ponímani našich grafikov ide vlastne o bloom s pridaným "objemom". Volumetrická vizualizácia fotónov rozptylených vo všadeprítomnom prachu, alebo vodných časticiach /heh/. V Crysis toho máte na mraky, ale tiež v Witcher 2, Infamous 2, alebo Uncharted 3. God rays sú ďalší dnešný hit. Kto ich nemá, nič neznamená. A vyzerá to tak sexi - viď Unreal demo pre SONY handheld PSV v 1:38 minúte. Lens flare si tiež dožičilo veľký comeback v podobe anamorphic lens flare efektu. V Mass defekte sa na vás ksichtí z každého frejmu, je to lens flare dohnané do extrému, keď je refrakcia silného svetelného zdroja rozpatlaná po CELEJ obrazovke. Od ucha ku uchu, proste sila.



god rays a anamorphic lens flare

Tone mapping - teda veľmi komplikované prepočty /nespočetné variácie/ prevodu HDR obrazu z GPU do LDR TV zobrazovadla tu nebudem rozoberať. Bola by to pre vás španielska dedina. Ako som už povedal - cieľom je mať v tmavých častiach a svetlých obrazu zachovené všetky detaily bez zlievania farieb a to najmä v prítomnosti veľmi silného svetelného zdroja, typicky slnko, alebo 100w baterka v čierno-čiernom tunely. Musíte brať ohľad na postupnosť krokov svojho render enginu, obmedzenia HW /dodrbaná gamma korekcia xcrapu/ a ako sa hovorí - mať to v oku !!