尚冰
【摘要】隨著技術(shù)的發(fā)展,3D游戲畫面越來越趨于真實(shí)化,游戲用戶不但要求游戲中的每一種物體具有真實(shí)的外觀以及物理特性,同時(shí)還要有真實(shí)的光影效果。HDR高動(dòng)態(tài)實(shí)時(shí)光照渲染目前是一種在3D游戲中流行特效技術(shù),它能實(shí)時(shí)模擬真實(shí)的光照環(huán)境,通過光線實(shí)時(shí)計(jì)算及渲染體現(xiàn)物體質(zhì)感與細(xì)節(jié),以實(shí)現(xiàn)對游戲畫面真實(shí)性的要求。本文主要探討了HDR特效的技術(shù)原理、HDR與Bloom的區(qū)別以及游戲中HDR特效實(shí)現(xiàn)方法等。
【關(guān)鍵詞】3D游戲;HDR特效;Bloom特效;實(shí)時(shí)渲染
1.概述
3D游戲制作中,照明計(jì)算量龐大,早期游戲制作人員通常借助圖像像素的R、G、B值計(jì)算該點(diǎn)的灰度值,由灰度值計(jì)算場景的亮度, 但是現(xiàn)實(shí)中的照明信息僅用一個(gè)8bit的RGB圖像描述,當(dāng)場景亮度、對比度大到一定程度時(shí),就不再能真實(shí)地記錄場景亮度信息,導(dǎo)致部分亮度信息丟失,這也將使場景中的真實(shí)的光影效果等無法體現(xiàn)。HDR特效技術(shù)解決了這一問題。在游戲領(lǐng)域,HDR特效指的就是HDR實(shí)時(shí)渲染,它通過HDR高動(dòng)態(tài)范圍光照非線性的調(diào)和映射到顯示器能夠顯示的LDR低動(dòng)態(tài)光照范圍,最大程度保存了明暗對比細(xì)節(jié),這使為3D 游戲場景提供高度仿真的光照效果成為可能。HDR特效最早是在nVIDIA的顯卡實(shí)現(xiàn)的,ATI的SMARTSHADER技術(shù)也包含這種HDR技術(shù)。如今能否實(shí)現(xiàn)HDR特效已經(jīng)成為游戲用戶判斷一款3D游戲是否優(yōu)秀的標(biāo)準(zhǔn)之一。
2.HDR特效的技術(shù)原理
HDR特效包括曝光控制和光暈效果兩個(gè)環(huán)節(jié)。曝光控制是其核心環(huán)節(jié),主要是計(jì)算當(dāng)前要渲染的高動(dòng)態(tài)范圍圖像的平均亮度,然后根據(jù)平均亮度確定一個(gè)曝光參數(shù),通過這個(gè)曝光參數(shù)將圖像正確地映射到屏幕能顯示的顏色區(qū)域內(nèi);即將高動(dòng)態(tài)范圍的圖像映射到電腦屏幕能夠顯示的的范圍內(nèi),這一過程在HDR渲染中被稱之為Tone Mapping(調(diào)和映射)。調(diào)和映射有不同的算法,但都是從高動(dòng)態(tài)范圍到低動(dòng)態(tài)范圍的一個(gè)映射,統(tǒng)稱為 Tone Mapping Operator(TMO),TMO的質(zhì)量的高低直接決定了圖像的最終質(zhì)量。所謂光暈效果,就是抽出場景中色彩比較亮的部分,然后加以模糊,使這些較亮的像素?cái)U(kuò)散到周圍的像素中,再把模糊后的圖像疊加在Tone Mapping之后的圖像上;光暈效果對表現(xiàn)高亮的像素起著非常重要的作用。
需要說明的是,在曝光控制與光暈效果在開始之前,需獲得一個(gè)高動(dòng)態(tài)范圍的圖像(HDRI)。高動(dòng)態(tài)范圍圖像的每個(gè)像素都由浮點(diǎn)型的R,G,B分量表示,每個(gè)R,G,B分量值可以任意大。對渲染器而言,每個(gè)像素就是一個(gè)浮點(diǎn)紋理。要將3D場景渲染到一個(gè)高動(dòng)態(tài)范圍的浮點(diǎn)紋理中。首先為3D場景中的每個(gè)表面創(chuàng)建一張浮點(diǎn)格式的光照貼圖,光照貼圖的每個(gè)像素代表了表面上相應(yīng)位置的光強(qiáng)。然后使用OpenGL的FBO(幀緩沖對象)將綁定了浮點(diǎn)光照貼圖的場景渲染到一個(gè)同屏幕大小一致的浮點(diǎn)紋理中。
3.3D游戲中的HDR特效
3.1 HDR+AA/AF
在3D游戲中,HDR實(shí)時(shí)渲染可使游戲畫面中亮的部分更加明亮,暗的地方更加黑暗,整個(gè)畫面的細(xì)節(jié)豐富而清晰,以實(shí)現(xiàn)真實(shí)的光影效果。但AA(全屏抗鋸齒)和AF(各向異性過濾)也對畫面的質(zhì)量起至關(guān)重要的作用。全屏抗鋸齒技術(shù)能夠消除畫面中圖形邊緣的鋸齒,使畫面看起來更為平滑。各向異性過濾則是一種特殊的過濾技術(shù),可對部分相對不重要的視覺部分減少精度,從而提高顯示速度。HDR與AA/AF在技術(shù)上沒有直接的關(guān)系,但3D游戲開啟HDR后如AA缺失畫面將出現(xiàn)明顯的鋸齒,只有HDR+AA/AF才可以實(shí)現(xiàn)完美的高精度的圖像,實(shí)現(xiàn)AA/AF在提高畫面質(zhì)量的同時(shí)也成為衡量顯卡性能的重要標(biāo)準(zhǔn)。但是在早期,顯卡技術(shù)不成熟,這導(dǎo)致在多數(shù)3D游戲無法實(shí)現(xiàn)在HDR渲染的情況下再開啟AA。
3.2 HDR類型
HDR動(dòng)態(tài)3D渲染是對3D游戲場景的光線進(jìn)行實(shí)時(shí)計(jì)算,生成動(dòng)態(tài)、實(shí)時(shí)的3D高動(dòng)態(tài)范圍光照。HDR動(dòng)態(tài)3D渲染有4種:FP16 HDR、FP24 HDR、FP32 HDR.、INT HDR。FP16 HDR即16位半精度浮點(diǎn)HDR,每通道16bit,速度快,但效果較差,早期支持HDR的游戲大都是FP16HDR。.FP24 HDR 即24位浮點(diǎn)HDR,每通道采用24bit。速度較快,效果也較好。FP32 HDR即32位單精度浮點(diǎn)HDR,每通道32bit,速度較慢,效果比FP16和24 HDR好,對顯卡運(yùn)算性能要求很高,被目前大多數(shù)新游戲采用。.INT HDR即整數(shù)HDR,計(jì)算過程采用32位單精度浮點(diǎn),儲存采用整數(shù)。效果優(yōu)于FP16 HDR和FP24HDR,但遜于FP32 HDR,由于速度慢、編程困難,現(xiàn)已被淘汰。
3.3 3D游戲中的HDR特效與Bloom特效區(qū)別
Bloom“全屏泛光”,是虛幻3游戲引擎中最為通用的特效技術(shù),其實(shí)現(xiàn)主要依賴于PostProcess框架,即實(shí)時(shí)繪制當(dāng)前場景到一后臺渲染表面,而后針對其對應(yīng)貼圖進(jìn)行像素級渲染。Bloom和HDR不同之處主要表現(xiàn)在幾個(gè)方面:
第一,HDR效果是超亮的光照與超暗的黑暗的某種結(jié)合,這個(gè)效果是光照產(chǎn)生的。強(qiáng)度、顏色等通過游戲程序可以動(dòng)態(tài)控制;bloom特效則是物體本身發(fā)出的光,僅僅是將光照范圍調(diào)高到過飽和,這是游戲程序無法動(dòng)態(tài)控制的。bloom效果實(shí)現(xiàn)的光照強(qiáng)度可能不會(huì)很真實(shí),同時(shí)也是不可變的。
第二,實(shí)現(xiàn)BLOOM特果無需HDR,它只支持8位RGBA,而HDR最高支持到32位RGBA。其實(shí)現(xiàn)效果受到限制
第三,實(shí)現(xiàn)BLOOM特效較為簡單,Bloom效果不受顯卡的性能的限制,TNT顯卡上也可實(shí)現(xiàn)bloom效果。而HDR特效,必須是nVIDIA6XXX以上的顯卡才能夠?qū)崿F(xiàn),nVIDIA和ATI的顯卡所實(shí)現(xiàn)的HDR是有區(qū)別的,從畫面效果來看,nVIDIA的顯卡實(shí)現(xiàn)的HDR好些。從技術(shù)角度而言,ATI的HDR是另一種途徑實(shí)現(xiàn)的盡可能接近的HDR,不能算“真”HDR,即使ATI的R520也只能實(shí)現(xiàn)FP16 HDR的效果。
圖1 Bloom特效開啟
實(shí)際上,游戲開發(fā)商常常將兩種特效一起使用以達(dá)到一個(gè)最終的效果。你在游戲中,從黑暗的房間中走到太陽地中,你眼前的景物會(huì)很刺眼,隨后亮度會(huì)降低,完全就同現(xiàn)實(shí)中的情況一致。這就是HDR特效的威力。而bloom效果實(shí)現(xiàn)的光照強(qiáng)度可能不會(huì)很真實(shí),同時(shí)也是不可變的。下圖是Bloom特效的演示,如圖1所示。
4.3D游戲中HDR特效的實(shí)現(xiàn)
在3D游戲中,HDR特效并不是標(biāo)準(zhǔn)的光線模式,它只是—個(gè)虛擬的渲染算法。通過提高圖片的亮度來為將要渲染的場景指定環(huán)境光源。HDR在3D游戲中可以模擬肉眼適應(yīng)光線的變化,讓場景更加逼真,提升游戲的真實(shí)感,同時(shí)也讓景色更加鮮明,陰暗和明亮部份的細(xì)節(jié)也能更清楚地呈現(xiàn)。以下面的游戲片段為例,當(dāng)手槍打破建筑物的玻璃后,強(qiáng)烈的光線讓玩家的瞳孔收縮,四周原本的影像也暗了下來。一但視角轉(zhuǎn)回陰暗的室內(nèi),過了一兩秒,眼睛適應(yīng)了黑暗,瞳孔慢慢放大,眼前昏暗的視線就逐漸亮了起來。
4.1 不斷變換的光強(qiáng)
這兩張圖片表現(xiàn)了游戲的曝光控制功能,它能夠模擬人眼自動(dòng)適應(yīng)光線變化的能力,如果你盯著一個(gè)面向陽光直射的物體,物體表面則有強(qiáng)烈的光反射(見圖2);如果盯著不放,物體表面的泛光會(huì)漸漸淡出,還原出更多的細(xì)節(jié)(見圖3)。HDR特效是變化的,因此稱做高動(dòng)態(tài)光照。
圖2 不斷變換的光強(qiáng) ? ? ? ? ? ?圖3 不斷變換的光強(qiáng)
(光強(qiáng)度較高) ? ? ? ? ? ? (光強(qiáng)度隨視線減弱)
4.2 HDR的立方體映射
在HDR的立方體映射圖4中,槍閃亮的金屬表面很實(shí)際的反映出周圍事物留下的倒影,藍(lán)天映襯在擊錘左側(cè),而褐色的建筑出現(xiàn)在右側(cè),該場景中地面和前方的場景是比較暗的,以前的光渲染方式肯定會(huì)將手槍表面和周圍場景一致化,做出來的效果就是一團(tuán)黑或者手槍表面是永遠(yuǎn)單調(diào)的反光。
圖4 HDR的立方體映射
4.3 HDR開/關(guān)畫質(zhì)對比
HDR特效是實(shí)時(shí)產(chǎn)生的,關(guān)掉并不影響游戲運(yùn)行,但它和其它特效一起,共同產(chǎn)生了逼真的畫面(如圖6)。關(guān)掉HDR對比下面的畫面,圖5是是關(guān)掉HDR之后的效果,以旁人眼光來看也還不錯(cuò),體驗(yàn)過HDR效果的游戲用戶,就無法再面對那些平淡無奇的畫面了。
圖5 HDR未開 ? ? ? ? ? ? ? ? ? ?圖6 HDR打開
5.結(jié)語
HDR特效改善了游戲中混亂的,缺乏層次的,銜接生硬的光照效果,得到的是逼真的,更具層次感的,淡入淡出柔和的光感,在最大化保留細(xì)節(jié)的同時(shí)使得亮的地方更亮,暗的地方更暗,這一切使3D游戲畫面更加的符合人類的視覺特征。動(dòng)態(tài)、趨近真實(shí)的物理環(huán)境是HDR的特效表現(xiàn)原則,但HDR特效只是電腦3D游戲眾多畫面特效中的一種,將來電腦游戲特效會(huì)發(fā)展到什么層度,現(xiàn)在無法下結(jié)論,但是有一點(diǎn)可以肯定,那就是3D游戲畫面和物理效果都將越來越真實(shí)。
參考文獻(xiàn)
[1]彭韜.高動(dòng)態(tài)圖像視覺保真實(shí)時(shí)顯示變換技術(shù)[D].電子科技大學(xué),2005.
[2]陸春光.擴(kuò)展數(shù)字成像動(dòng)態(tài)范圍的方法研究[D].浙江大學(xué),2006.
[3]朱秀明.高動(dòng)態(tài)范圍圖像的合成及可視化研究[D].浙江大學(xué),2008.