正如同Gamma校正一樣,只要是跟電腦圖像相關的,一定會聽過HDR這個詞,今天跟昨天(Day27)一樣,「簡單的」了解一下甚麼是HDR,主要是解答我在Unity上的疑惑。
HDR全名High Dynamic Range,有高就有低,另外一個則是LDR,Low Dynamic Range,所以當前的重點在於,甚麼是Dynamic Range,中文譯作「動態範圍」。
動態範圍簡單一句話就是「最高與最低亮度的比值」,可以想到套用到HDR的話是指,讓「亮的地方更亮,暗的地方更暗」
既然如此,要怎麼讓這個亮度的範圍加大呢?目前知道的是,所有亮度再亮都會被截止到1;再暗也截止到0。
我們知道顏色的RGB,三個頻道的範圍是0到255,也就是2的8次方,精度則有8個位元,所以實際上我們要做的是把精度調高,就可以達到HDR的更大的亮度範圍,但還沒有結束,依舊我們的螢幕能顯示也就0到255,也就是LDR,所以我們需要做所謂的「Tone Mapping」。
這裡不展開繼續講Tone Mapping
Q1: 在Unity中怎麼使用HDR?
A1: 在相機底下的HDR屬性,將它開啟,請注意,如果想要使用硬體的反鋸齒,與HDR是不相容的。
Q2: 關於unity shader的HDR屬性是甚麼(
[HDR]
)
A2: 只能顏色變數使用,加上[HDR]也就表示需要的亮度是高於1的
Q3: 他可以能來做甚麼?
A3: 加強視覺效果,常見的螢幕後製效果,「Bloom」。