HDRI

數字化存儲圖像的格式

HDRI擁有比普通RGB格式圖像(僅8bit的亮度範圍)更大的亮度範圍。標準的RGB圖像最大亮度是值是255/255/255,如果用這樣的圖像結合光能傳遞照明一個場景的話,即使是最亮的白色也不足以提供足夠的照明來模擬真實世界中的情況,渲染結果看上去會平淡而缺乏對比,原因是這種圖像文件將現實中的大範圍的照明信息僅用一個8bit的RGB圖像描述。但是使用HDRI的話,相當於將太陽光的亮度值(比如6000%)加到光能傳遞計算以及反射的渲染中,得到的渲染結果也是非常真實和漂亮的。

相似區分


HDR

談論遊戲畫面時常說的HDR到底是什麼呢?HDR,本身是High-Dynamic Range(高動態範圍)的縮寫,這本來是一個CG概念。
HDRI效果圖
HDRI效果圖
計算機在表示圖像的時候是用8bit(256)級或16bit(65536)級來區分圖像的亮度的,但這區區幾百或幾萬無法再現真實自然的光照情況。HDR文件是一種特殊圖形文件格式,它的每一個像素除了普通的RGB信息,還有該點的實際亮度信息。普通的圖形文件每個象素只有0 - 255的灰度範圍,這實際上是不夠的。想象一下太陽的發光強度和一個純黑的物體之間的灰度範圍或者說亮度範圍的差別,遠遠超過了256個級別。因此,一張普通的白天風景圖片,看上去白雲和太陽可能都呈現是同樣的灰度/亮度,都是純白色,但實際上白雲和太陽之間實際的亮度不可能一樣,他們之間的亮度差別是巨大的。因此,普通的圖形文件格式是很不精確的,遠遠沒有紀錄到現實世界的實際狀況。所以,我們就要介紹一下高動態範圍圖像(簡稱HDR或者HDRI)。

HDRI

HDRI是High-Dynamic Range (HDR) image的縮寫,就是為了解決這個問題而發明出來的,簡單說,HDRI是一種亮度範圍非常廣的圖像,它比其它格式的圖像有著更大亮度的數據貯存,而且記錄亮度的方式與傳統的圖片不同,是用直接對應的方式而不是用非線性的方式將亮度信息壓縮到8bit或16bit的顏色空間內記錄亮度信息,記錄了圖片環境中的照明信息,因此我們可以使用這種圖像來“照亮”場景。有很多HDRI文件是以全景圖的形式提供的,也可以用它做環境背景來產生反射與折射。這裡強調一下HDRI與全景圖有本質的區別,全景圖指的是包含了360度範圍場景的普通圖象,可以是JPG格式,BMP格式,TGA格式等等,屬於Low-Dynamic Range Radiance Image,它並不帶有光照信息。

文件定義


HDRI文件是一種文件,擴展名是hdr或tif格式,有足夠的能力保存光照信息,但不一定是全景圖。Dynamic Range(動態範圍)是指一個場景的最亮和最暗部分之間的相對比值。一張HDR圖片,它記錄了遠遠超出256個級別的實際場景的亮度值,超出的部分在屏幕上是顯示不出來的。可以這樣想象:在photoshop里打開一張從室內往窗外外拍的圖片,窗外的部分處在強烈的陽光下,曝光過度,呈現的是一片白色,沒有多少細節。你將毫無辦法,調暗只會把變成灰色而已,並不會呈現更多的細節。但如果同一場景是由hdr紀錄的話,你減低曝光度,原來純白的部分將會呈現更多的細節。
HDRI文件的具體使用方法:
HDRI環境貼圖使用方法
首先,您需要有hdr軟體,把圖片轉化為hdr格式的圖片,這樣才能被hdr引用。你可以上網查一下,下載軟體。
HDRI貼圖可以模擬環境反射貼圖,但貼圖不會在場景背景中顯示,即圖片是被反射或折射來用的。
在材質面板上選擇一個材質球,最左邊有一個標識,即一個小黑箭頭,指向一個綠的小箭頭,點擊,在彈出來的材質/貼圖瀏覽器中選擇"VRayHDRI",雙擊之,在HDR map中選擇要的環境貼圖(事先用hdrshop軟體做好的hdr文件),這樣就做好了環境貼圖的材質。按F10,進入Render渲染器"V-Ray:Environment"卷展欄,把Refection/refraction environment override【反射/折射 環境覆蓋】"選項打開,把剛才的材質球拖入後邊按鈕上,進行實例複製,以便管理,這樣就做好了環境貼圖。
渲染圖片,你會發現,場景中空的地方原來應該是黑的,經過處理之後就成了圖貼的反射影子。當然,折射環境貼圖也可以這樣製作。
也可以在渲染器中的V-Ray:Environment環境中選中材質,把材質以實例方式拖入材質球進行操作。在Map type中,可選擇背景在渲染圖中是以什麼方式呈現的,Angular成角貼圖方式,Cubic是立方體環境方式,Spherical球面環境,Mirrored球狀鏡像,Explicit map外部貼圖通道。
如果直接在環境中貼jpg格式,效果好像不怎麼行!
註:有關渲染器中V-Ray:Environment【V-Ray:環境】和3dmax中渲染環境
渲染器中V-Ray:Environment中,如果打開可以發現有一個叫GI Environment(skylight) override【全局照明環境(天光)覆蓋】,這個渲染背景並不會進行反射,渲染也也不會出現在背景中(Reflecdtion/refraction enviewnment override)會進行反射。
在渲染-環境(快捷鍵8)中把VRayHDRI貼圖也可把入背景顏色,此時,渲染時背景也會變成當前顏色,物體反射也會有,但如果在渲染器中設置了Reflecdtion/refraction enviewnment override,就會替代渲染-環境(快捷鍵8)的反射設置

相關特效


將HDR和遊戲聯繫起來。HDR在遊戲中特指HDR特效。HDR特效是與Vertex Shader/ShaderModel/Soft shadows/Parallax Mapping等等並列的圖像渲染特效。想要實現HDR特效,首先,遊戲開發者要在遊戲開發過程中,利用開發工具(就是遊戲引擎)將實際場景用HDR記錄下來,當然開發技術強的開發組會直接用小開發工具(比如3D MAX的某些特效插件)創造HDRI圖像;其次,我們的顯卡必須支持顯示HDR特效,nVIDIA的顯卡必須是GeForce 6系列或更高,ATI顯卡至少是Radeon 9550或以上。HDR特效最早是在nVIDIA的顯卡實現的,但是ATI的SMARTSHADER技術也包含HDR技術。

特效實現


實現HDR效果並不複雜,但是如果想正常實現的話,你必須有GeForce 6系列或更高的nVIDIA顯卡,至少是Radeon 9550或以上的ATI顯卡。另外CPU和內存都要夠勁,CPU至少在奔騰42.8G以上。必須安裝DirectX 9.0c。盡量安裝最適合自己顯卡的驅動程序。
注意:根據2013年4月的資料,只有《孤島驚魂》和《手足兄弟連》的HDR特效是真正的,其他的遊戲的所謂HDR特效只是模擬的。
如題所述,本文將要討論的是在MAX中使用HDRI(High Dynamic Range Radiance Image)。
那麼這個HDRI是什麼東西呢?如上面所述,應該已經解決了我們對HDRI的概念了。一般的,計算機在表示圖像的時候是用8bit(256)級或16bit(65536)級來區分圖像的亮度的,但這區區幾百或幾萬無法再現真實自然的光照情況。
HDRI就是為解決這個問題而提出的。簡單的說HDRI是一種亮度範圍非常廣的圖像,而且它記錄亮度的方式與傳統的圖片不同,不是用非線性的方式將亮度信息壓縮到8bit或16bit的顏色空間內,而是用直接對應的方式記錄亮度信息,它可以說記錄了圖片環境中的照明信息,因此我們可以使用這種圖象來“照亮”場景。當然咯,有很多HDRI文件是以全景圖的形式提供的,我們也可以用它做環境背景來產生反射與折射。這裡強調一下HDRI與全景圖有本質的區別,全景圖指的是包含了360度範圍場景的普通圖像,可以是JPG格式,BMP格式,TGA格式等等Low Dynamic Range Radiance Image,它並不帶有光照信息;而HDRI文件指的是hdr或tif格式,有足夠的能力保存光照信息,但不一定非是全景圖。(有關HDRI的詳細解釋請參看SIGGRAGH的論文)