原文鏈接:https://docs.unity3d.com/Manual/HDR.html
? ? ? ? 在標準渲染中,一個像素的紅、綠纲岭、藍值被表現(xiàn)為0-1范圍中的一個分數(shù)抹竹,0和1分別表示要顯示在設(shè)備上的強度為0或是最大強度。然而這是簡單的使用止潮,它不能精確的反應(yīng)光線在真實的生活場景中的運作方式窃判。人眼趨向于去適應(yīng)周圍光線環(huán)境,所以在一個朦朧光線的房間中看起來是白色的對象喇闸,也許事實上比在一個完全日光下看起來是灰色的對象更暗袄琳。另外,眼睛對范圍低端的亮度差異比對高端的亮度差異更敏感仅偎。
? ? ? ? 如果渲染使用的像素值的范圍可以更精確的反映在真實場景中要呈現(xiàn)的光照水平跨蟹,就可以獲得更令人信服的視覺效果。雖然這些值會最終需要被映射回顯示設(shè)備支持的范圍橘沥,所有中間的計算(比如Unity的圖片效果)將會得出更真實的效果窗轩。允許圖形內(nèi)部使用0-1范圍之外的指來呈現(xiàn)是高動態(tài)范圍渲染(HDR)的本質(zhì)。
使用HDR工作
? ? ? ? HDR可以在每個攝像機的Camera組件上使用設(shè)置來單獨啟用座咆。
(圖片見原網(wǎng)頁)
? ? ? ? 當HDR是激活的時候痢艺,場景被渲染到一個可以適應(yīng)像素值超過0-1范圍的HDR圖像緩沖上。這個緩沖接下來會被諸如Bloom等等后處理效果在后處理棧中使用介陶。然后HDR圖像被轉(zhuǎn)換到標準低動態(tài)渲染(LDR)圖像堤舒,發(fā)送去顯示。這通常是通過Tonemapping色調(diào)映射來完成的哺呜,是Color Grading(顏色分級)流水線的一部分舌缤。這個到LDR的轉(zhuǎn)換必須被應(yīng)用在后處理流水線的某些點上,但是如果轉(zhuǎn)換之后是單純的LDR效果則不必是最后一步被應(yīng)用某残。為了方便国撵,一些后處理效果可以在應(yīng)用HDR效果后自動轉(zhuǎn)換到LDR(看下面的腳本)。
Tonemapping(色調(diào)映射)
? ? ? ? Tonemapping是將HDR值映射回LDR范圍的一個過程玻墅。有許多不同的技術(shù)介牙,適用于一個項目但是也許對另一個項目來說不是最好的選擇。各種各樣的tonemapping技術(shù)包含在后處理棧中澳厢。您可以從Asset Store上下載后處理棧來使用它們环础。在Color Grading(顏色分級,鏈接見原網(wǎng)頁)文檔中您可以找到關(guān)于Tonemapping類型的詳細敘述剩拢。
(圖片見原網(wǎng)頁)
使用HDR來渲染一個異常明亮的場景线得。沒有使用Tonemapping,大多數(shù)像素似乎都超出了范圍裸扶。
(圖片見原網(wǎng)頁)
和上面一樣的場景框都。但是這次Tonemapping將最亮的部分轉(zhuǎn)換成了一個大概可信的范圍內(nèi)。請注意adaptive tonemapping甚至可以將第一張圖與第二張圖來融合呵晨,這樣來模擬被媒體(比如攝像機魏保,眼睛)捕捉到的自然的疊加效果。
HDR的優(yōu)勢
? ? ? ? ·在高亮度的區(qū)域顏色不會失真
? ? ? ? ·更好的支持bloom和glow效果
? ? ? ? ·在低頻率光照區(qū)域減少條帶
HDR的劣勢
? ? ? ? ·使用浮點渲染紋理(渲染更慢而且需要更多VRAM(顯存))
? ? ? ? ·沒有硬件抗失真支持(但是您可以使用一個抗失真后處理效果來使邊緣平滑)
? ? ? ? ·并不是在所有硬件上都支持
使用注意
正向渲染
? ? ? ? 在正向渲染模式下只有您目前有后處理效果時才支持HDR摸屠。這是由于性能的考慮谓罗。如果您目前沒有后處理效果,那么tonemapping就不會存在季二,并且將發(fā)生亮度截斷檩咱。這種情況下場景將會被直接渲染進不支持HDR的backbuffer中。
延遲渲染
? ? ? ? 在HDR模式下光照buffer也會被分配為一個浮點buffer胯舷。這減少了光照buffer中的條帶刻蚯。即使目前沒有后處理效果延遲渲染也支持后處理效果。
腳本撰寫
? ? ? ? ImageEffectTransformsToLDR特性可以被添加到后處理效果腳本中桑嘶,這樣來表明目標buffer應(yīng)該使用LDR來代替HDR炊汹。更本質(zhì)上來說,這意味著一個腳本可以在應(yīng)用其HDR后處理效果后自動的轉(zhuǎn)換到LDR逃顶。查看編寫后處理效果(鏈接見原網(wǎng)頁)一文獲取更多信息讨便。
也可以看看
? ? ? ? HDR顏色拾取器