百人計(jì)劃圖形2.6——伽馬矯正
常見顏色空間標(biāo)準(zhǔn)

傳遞函數(shù)

Gamma矯正
Gamma可以簡單定義為:
Vout = Vin gamma
Gamma是指對線性三色值和非線性視頻信號之間進(jìn)行編碼和解碼的操作。

Gamma校正
圖像經(jīng)過gamma編碼存儲在硬盤中,將獲取到的物理數(shù)據(jù)做一次gamma值約為0.45的映射,這樣的過程叫做gamma編碼。由曲線可知,此時(shí)圖像的像素比實(shí)際物理像素要更亮
在顯示圖像時(shí),需要將每個(gè)像素做一次gamma值約為2.2的矯正,使最終的結(jié)果為正確的物理數(shù)據(jù)。
經(jīng)過顯示的gamma校正之后,之前偏亮的圖像亮度降低

非線性轉(zhuǎn)換的目的主要是為了優(yōu)化存儲空間和帶寬,傳遞函數(shù)能夠更好地幫我們利用編碼空間。
由于我們用于顯示圖像數(shù)據(jù)都是8bit,且人眼對暗部變化更敏感,如果要充分利用帶寬,那么就需要使用更多位置去存儲暗部值。也就是說暗部使用更高精度保存,而亮部使用更低精度保存。

·韋伯定律:即感覺的差別閾限隨原來刺激量的變化而變化,而且表現(xiàn)為一定的規(guī)律性,用公式來表示,就是△O/=c,其中為原刺激量,△為此時(shí)的差別閾限,C為常數(shù),又稱為韋柏率。
·簡單來說就是,當(dāng)所受刺激越大時(shí),需要增加的刺激也要足夠大才會(huì)讓人感覺到明顯變化,但是只適用于中等強(qiáng)度的刺激
小結(jié)
1.人眼對暗部變化比亮部更加敏感
2.我們目前所使用的真彩格式RGBA32,每個(gè)顏色通道只有8位用于記錄信息,為了合理使用帶寬和存儲空間,需要進(jìn)行非線性轉(zhuǎn)換。
3.目前我們所普遍使用的sRGB顏色空間標(biāo)準(zhǔn),他的傳遞函數(shù)gamma值為2.2(2.4)







硬件支持
線性空間需要圖形APl的硬件支持,目前支持的平臺
1. Windows,Mac oS x和Linux(Standalone)
2. Xbox One
3. PS 4
4. Android (OpenGL ES 3.0)5. iOS(Metal)
6. WebGL
硬件特性支持
主要由兩個(gè)硬件特性來支持:. sRGB Frame Buffer
將Shader的計(jì)算結(jié)果輸出到顯示器前做Gamma校正
作為紋理被讀取時(shí)會(huì)自動(dòng)把存儲的顏色從sRGB空間轉(zhuǎn)換到線性空間
調(diào)用ReadPixels()、ReadBacklmage()時(shí),會(huì)直接返回sRGB空間下的顏色sRGB Frame Buffer只支持每通道為8bit的格式,不支持浮點(diǎn)格式
HDR開啟后會(huì)先把渲染結(jié)果繪制到浮點(diǎn)格式的FB中,最后繪制到sRGB FB上輸出。
sRGB Sampler
將sRGB的貼圖進(jìn)行線性采樣的轉(zhuǎn)換。
使用硬件特性完成sRGB貼圖的線性采樣和shader計(jì)算結(jié)果的gamma校正,比起在shader里對貼圖采樣和計(jì)算結(jié)果的校正要快
資源導(dǎo)出問題


Document Color Profile
PhotoShop對顏色管理特別精確,Unity里看到的顏色要經(jīng)過顯示器的伽瑪變換,而PhotoShop不會(huì),PhotoShop會(huì)讀取顯示器的Color Profile,反向補(bǔ)償回去
PhotoShop有第二個(gè)Color Profile,叫做Document Color
Profile。通常它的默認(rèn)值就是sRGB Color Profile,和顯示器的Coor Profile—致,顏色是被這個(gè)Color Profile壓暗了,所以PhotoShop中看到的結(jié)果才和Unity中一樣。

unity中g(shù)amma設(shè)置
