iT邦幫忙

第 12 屆 iT 邦幫忙鐵人賽

DAY 28
0
自我挑戰組

初見Unity Shader系列 第 28

粗略的HDR理解

正如同Gamma校正一樣,只要是跟電腦圖像相關的,一定會聽過HDR這個詞,今天跟昨天(Day27)一樣,「簡單的」了解一下甚麼是HDR,主要是解答我在Unity上的疑惑。

目標

  • 了解HDR
  • Unity中出現的HDR

HDR

HDR全名High Dynamic Range,有高就有低,另外一個則是LDR,Low Dynamic Range,所以當前的重點在於,甚麼是Dynamic Range,中文譯作「動態範圍」。

動態範圍簡單一句話就是「最高與最低亮度的比值」,可以想到套用到HDR的話是指,讓「亮的地方更亮,暗的地方更暗」

from [PBR Series - 4] High Dynamic Range Imaging and PBR

既然如此,要怎麼讓這個亮度的範圍加大呢?目前知道的是,所有亮度再亮都會被截止到1;再暗也截止到0。

我們知道顏色的RGB,三個頻道的範圍是0到255,也就是2的8次方,精度則有8個位元,所以實際上我們要做的是把精度調高,就可以達到HDR的更大的亮度範圍,但還沒有結束,依舊我們的螢幕能顯示也就0到255,也就是LDR,所以我們需要做所謂的「Tone Mapping」。

這裡不展開繼續講Tone Mapping

在Unity中...

Q1: 在Unity中怎麼使用HDR?
A1: 在相機底下的HDR屬性,將它開啟,請注意,如果想要使用硬體的反鋸齒,與HDR是不相容的。

Q2: 關於unity shader的HDR屬性是甚麼([HDR])
A2: 只能顏色變數使用,加上[HDR]也就表示需要的亮度是高於1的

Q3: 他可以能來做甚麼?
A3: 加強視覺效果,常見的螢幕後製效果,「Bloom」。

Reference


上一篇
Gamma校正
下一篇
Bloom效果,又或是高光效果
系列文
初見Unity Shader30

尚未有邦友留言

立即登入留言