讓你徹底弄明白Gamma 2.2的線性工作流
本教程是基于VR3.0寫的,不過設(shè)置都是一樣的。是基于最初的gamma 2.2教程寫成的,之前那個(gè)原始的太老了已經(jīng),不過一些基本的東西還是沒變。
讓我們回到2004年,一些牛逼的高手在VR論壇里開了一個(gè)帖子叫“線性工作流程”, 當(dāng)時(shí)非?;鸨?,很多人都試圖來模仿這種工作模式但這套流程非常復(fù)雜,不過出來的效果也是非常震撼的。
其實(shí)問題很簡單,VR和3ds Max的計(jì)算方式,VR的相機(jī)對(duì)于光的反應(yīng)都是線性的, 這就是說它們都是在gamma 1.0空間里運(yùn)作,這當(dāng)然沒問題,但是3dsMax和Vray的設(shè)置是gamma 1.0,那么你看圖的設(shè)備也要具備相同的設(shè)置才可以,遺憾的是,計(jì)算機(jī)不是線性的gamma 1.0,因?yàn)閺臎]人告訴過3dsMax和Vray這個(gè)問題,所以咱們的圖總是看起來有點(diǎn)灰,有點(diǎn)暗!
這里有個(gè)簡單的例子:一個(gè)一面開放的室內(nèi)空間,開放的一端可以引入很多室外的光線。左側(cè)是1.0的結(jié)果,右側(cè)是2.2的結(jié)果,可以看出,1.0的結(jié)果很暗,如果你嘗試提燈光的強(qiáng)度度來增加室內(nèi)的亮度的話,那個(gè)開放端的墻面肯定就曝光了。
而右側(cè)的那個(gè)2.2的結(jié)果就比較明亮了,而且窗口處也沒曝光,這是很多人所需要的一種效果。
還有一個(gè)基本的問題是HDRI 燈光與反射,這里也有個(gè)例子:
左側(cè)是1.0的結(jié)果,可以看出在反射部分的對(duì)比度非常強(qiáng)烈,和提供光源的那張HDRI貼圖(中間那個(gè)球)里的感覺不符合。
右側(cè)是是2.2的結(jié)果,可以感覺出這個(gè)反射部分的光感和那個(gè)HDRI貼圖里呈現(xiàn)的環(huán)境很匹配,而且光效也更自然。
用2.2來工作的第一個(gè)問題來了:很多場景設(shè)置成2.2后,顏色和貼圖會(huì)突然變得很灰,沒有足夠的對(duì)比度,造成這個(gè)問題的原因是,你只是把場景設(shè)置成了2.2,但沒有把貼圖和顏色設(shè)置在2.2的環(huán)境里。貼圖其實(shí)都是基于2.2的,假如你只是簡單的將MAX系統(tǒng)設(shè)置為2.2的話,那等于那些貼圖被你疊加了兩次2.2,這就會(huì)使得貼圖看起來很灰很亮!這就需要我們將MAX和貼圖加載模式都設(shè)置為正確的數(shù)值,這樣你的最后出來的顏色和貼圖就能和原始貼圖吻合了。下面是兩種設(shè)置的對(duì)比,右側(cè)的是2.2的設(shè)置,你需要改的地方有:
- Enable gamma/LUT correction: 這個(gè)是開啟2.2模式
- Gamma: 除非特殊需求 ,一般就設(shè)置為2.2
- Materials and colors: 這里你可以選擇材質(zhì)編輯器和顏色選擇器是否也以2.2的模式來顯示,這個(gè)非常關(guān)鍵,你一定要選擇來將這兩個(gè)與2.2匹配起來!
- Bitmap files input gamma: 這里你可以指定所有加載的貼圖都是2.2的,以免出現(xiàn)前面提到的重復(fù)疊加問題而導(dǎo)致貼圖太灰沒對(duì)比
- Bitmap files output gamma: 這里控制保存圖片的數(shù)值,這個(gè)之后講
看一看你的材質(zhì)編輯器和顏色選擇器,可以看到他們變亮了,所以假如你想在2.2模式下得到一個(gè)同樣深紅色茶壺,你就需要在新模式下的顏色選擇器里重新選擇那個(gè)深紅色。
上面的設(shè)置是為了你能選擇到正確的顏色和加載出正確的貼圖,在VR的virtual frame buffer里,有個(gè)小小的按鈕:sRGB,這個(gè)按鈕可以給這個(gè)VFB渲染結(jié)果里添加一個(gè)gamma 2.2曲線,讓你的渲染結(jié)果以正確的gamma 2.2來顯示,下面是這個(gè)按鈕開或關(guān)的對(duì)比,不勾選這個(gè)按鈕時(shí)候,畫面的顏色顯示會(huì)比選中時(shí)候暗。
要如何以正確的方式來保存這個(gè)渲染結(jié)果呢?讓我們先回到3dsMax里的preferences菜單里,還記得那個(gè)output gamma的設(shè)置嗎? 那個(gè)設(shè)置成了2.2,這個(gè)非常關(guān)鍵!
由于sRGB這個(gè)按鈕也只是一個(gè)預(yù)覽工具,我們需要確保在保存渲染結(jié)果時(shí)候也用2.2的模式來保存,要不然的話你保存的圖片還是會(huì)很暗(因?yàn)?.2的模式?jīng)]有被設(shè)置進(jìn)輸出里)
但這只是問題的開始... 這個(gè)sRGB按鈕給渲染結(jié)果賦予了一個(gè)2.2的曲線,但我們是不是也能把這個(gè)曲線一起帶進(jìn)我們所保存的圖片里呢?答案不不能!,下面是一個(gè)在output = 2.2設(shè)置下保存的圖片和直接截屏出來的圖片的對(duì)比,還是有點(diǎn)點(diǎn)的差別的!保存出來的圖片會(huì)稍微亮點(diǎn)點(diǎn),證明了sRGB所賦予的那個(gè)曲線和3dsMax系統(tǒng)里的gamma 2.2曲線還是不一樣的
在線性工作流里,你還能將結(jié)果保存為full float 32比特的圖片,比如EXR. 真正的線性工作流里你是靠系統(tǒng)本身來還原這些圖片的顏色,也就意味著你不靠gamma或sRGB曲線。當(dāng)你保存EXR時(shí),那個(gè)output gamma也是不起作用的,下面也是截屏和保存出來的EXR對(duì)比結(jié)果,可以看到兩者完全一致!
線性工作流對(duì)于要在后期里做處理很有用,那假如不以這種full float格式來保存圖片會(huì)如何?在剛才那種保存方式里,我們可以得到一個(gè)完全和渲染結(jié)果一樣的圖片,要做到這一點(diǎn),我們要確保在color mapping卷展欄里,在 'expert' 模式下看所有的參數(shù),保證這里的gamma是2.2。
那么假如這個(gè)設(shè)置不是這樣的話會(huì)如何呢?把它設(shè)置回默認(rèn)值 'color mapping only'. 這意味著在渲染結(jié)果里沒有那個(gè)gamma曲線了,像素值也不會(huì)因此而改變,在之前的例子里,我們已經(jīng)看到可以通過最后的一個(gè)sRGB 按鈕來獲得正確的結(jié)果。
但假如我們不用2.2這個(gè)設(shè)置呢?我們?cè)侔涯J角袚Q成'none'來看看,你可能最后得到的圖片在明度上差不多,不過會(huì)有些躁點(diǎn),全局光的效果也會(huì)差些。這其中的原因是當(dāng)VR全局光在計(jì)算比較暗的區(qū)域時(shí)候,他會(huì)提前結(jié)束計(jì)算,這樣本來需要去除躁波的地方就沒被計(jì)算出來,所以畫面會(huì)比較暗,雜點(diǎn)也較多,它能顯示為正常的亮度純碎是因?yàn)槟莻€(gè)sRGB按鈕,所以當(dāng)你選擇 'none' 這個(gè)模式的時(shí)候,VR只在非常暗的區(qū)域采樣,而你選擇'color mapping only'模式的時(shí)候,VR在亮的區(qū)域采樣,但只是采樣,gamma并沒有實(shí)際作用到那些像素上。
所以只剩下'color mapping and gamma' 這個(gè)模式同時(shí)會(huì)兼顧明暗這兩種區(qū)域,既能在亮的區(qū)域進(jìn)行采樣,同時(shí)也將gamma曲線作用到畫面上,但之前我們提過,因?yàn)間amma作用到畫面上了,你需要關(guān)閉sRGB這個(gè)按鈕來避免疊加2.2效果。
但因?yàn)楝F(xiàn)在gamma曲線已經(jīng)作用到畫面上了,我們就得回到輸出設(shè)置里把 gamma 設(shè)置回1.0, 否則gamma曲線在你保存圖片時(shí)候又會(huì)疊加一次了。
這里是假如你要想gamma作用到渲染畫面上時(shí)候的設(shè)置:
這里還有一組對(duì)比,可以感覺到作用了gamma的圖還是稍微亮了一點(diǎn)的。
如今線性gamma2.2工作流已經(jīng)是大家的默認(rèn)工作方式了,幾乎所有的好作品都是這個(gè)模式下完成的,假如你剛使用VR,你可能不會(huì)察覺到里面的區(qū)別。
比較專業(yè)的做法是保存EXR格式的圖片,這樣你對(duì)顏色的控制是最最完全的
另一種做法就是將gamma 2.2作用到顏色和貼圖上,而關(guān)閉sRGB按鈕,這樣保存出的圖片不會(huì)出現(xiàn)gamma疊加的錯(cuò)誤。
在我看來,沒有對(duì)錯(cuò),只是看你喜歡哪一種。
下面是兩種方式的各自設(shè)置:
有個(gè)問題我們沒涉及到,那就是假如你需要用一個(gè)LOGO里的指定顏色的話怎么辦。比如說你的茶壺顏色和法拉利紅要一致,你肯定會(huì)從PS里吸取這個(gè)顏色的RGB: 229,28,36. 然后回到MAX里把這個(gè)茶壺的顏色改為這個(gè)值,但你會(huì)發(fā)現(xiàn),顏色根本不對(duì),max里出現(xiàn)的那個(gè)紅色成了粉紅色!
這個(gè)是因?yàn)镸AX里選的這個(gè)顏色只有在配合了gamma 2.2的曲線渲染后才會(huì)正確的顯示出來,所以你不能只是簡單把PSli那個(gè)數(shù)值復(fù)制到MAX里去。
有個(gè)做法:取LOGO的一部分作為一個(gè)純色的紋理貼圖而不是直接輸入RGB,這樣你就可以得到正確的顏色渲染了:
或者呢,把那個(gè)貼圖放到一個(gè)空的材質(zhì)球框里,雙擊這個(gè)貼圖,然后吸取里面的顏色值,再作用到茶壺的顏色值上,對(duì)比一下前后兩個(gè)RGB數(shù)值,是不一樣的!















評(píng)論(21)