國外CG界有關Gamma 2.2的運用已行之多年,在建築與室內設計的3D創作亦是如此,故在此要與各位介紹。

undefined

圖左:未經gamma校正的圖面,會發現整體偏暗,且與靠近窗戶旁明亮的牆壁相較,有較大的對比;圖右:經由gamma校正後的圖面,畫面整體的中間調提升,且較符合人類眼睛所看到的。

約在2004年,Gamma 2.2與線性工作流程引起許多探討。當時,大部分的3D創作者仍習慣用gamma 1.0的環境作業,然而,這樣的作業環境跑出來的圖面往往會過於晦暗,或是出現光現對比過強的問題,於是3D設計師們都會嘗試在燈具的光線強度以及貼圖顏色亮度上的修改來增加室內場景的明亮度,或是乾脆在後製的時候將整個圖面拉亮。如今,這些問題似乎可以在Gamma 2.2的設定後中一次解決,並且可以獲得更正確的光線,在談操作之前,我們有必須要先理解Gamma 2.2到底是怎麼回事?

undefined

圖左,相機拍攝後呈現的調性,未經gamma校正;而圖右在校正過後比較接近人類眼睛所看到的。圖左是RAW影像檔,一般來說RAW影像檔是未經過後續處理的檔案,但大部分的數位相機在拍攝完了之後,都會利用相機內的韌體自動修正如圖右之效果,以符合人類所看到的。

由於人類的眼睛非常不同於機械感應(打個比方,如數位相機與顯示器),在真實世界中我們看到的物件,乃至於空間都會適時地在較為明暗區域給與更多的光線補償,然而機械所捕捉與顯示到的光線往往與人的眼睛所看到的有所差距,故,為了要修正這個差距,於是就出現了Gamma校正,其中,又以Gamma 2.2最為接近我們眼睛所看到的。當然,在還未校正之前的圖檔,是為gamma 1.0。

那麼,所謂的線性工作流程(Linear Workflow),又是甚麼呢?我們先從下圖開始了解。

undefined

從上圖中我們可以很清楚在3D軟體操作的過程中,會有不同影像檔案格式被帶入場景中,其影像檔案皆有對應的gamma值,以及在跑圖、輸出、乃至於後製,共可分四個階段:
輸入(input)─在3D軟體中與輸入有關的主要分為三種類型,我們必須清楚告訴3d軟體哪些外來的影像檔案是gamma 2.2(大部分的圖檔都是gamma 2.2,或是說經sRGB校正過,另外,若你是用3ds Max 2015以後的版本,其色表也是gamma 2.2顯示的),又哪是gamma 1.0(HDRI、EXR檔案格式)。若是gamma 2.2的圖檔,進入到3D軟體時會自動反轉成gamma 1.0,當然,你在3D軟體中看到的仍然是2.2的效果。
算圖(calculations)─著色與打燈,就3ds Max而言,就是線性工作流程的階段。
輸出(output)─理論上必須儲存為floating point linear images影像格式,EXR檔就是此類格式。
看圖器(viewer)─指具有sRGB功能的影像軟體,sRGB校色幾乎等同於gamma 2.2。

undefined

所以,圖2很清楚地交代具有gamma 2.2之圖檔在進入了3D軟體後「還原」的過程,使其圖檔在之後的算圖是以gamma 1.0的狀況下進行計算,同樣地在輸出的部分仍舊保持gamma 1.0的狀態,直到影像編輯軟體才校正成gamma 2.2(一般來說就是指sRBG),這一系列的過程,這就是所謂的線性工作流程。

由於線性工作流程有著強大的靈活性(主要在於擁有32位元的色彩空間資訊),已經成為大多數工作室所採納之標準。它可以在PS的環境下更輕鬆地微調物件的反射,或者改變模型的基底顏色,這樣的作法可以取代反覆地在3D軟體不斷地調整參數與跑圖。

然而純然地在線性工作流程也並非沒有缺點,尤其是在後製的部分,並非所有的影像軟體都可以開啟與預覽32位元圖檔,況且這類的檔案會比其他格式類型還來的大上許多,除非你很對圖面顏色與明亮度要求很高,否則不太建議以這樣的方式進行後製。比較折衷的作法就是在算圖的時候以gamma 2.2的環境下完成,你可以將跑完的圖儲存為比較通用的JPG等16位元之圖檔,以方便後製。

接下來要與各位解說該如何設定來達成gamma 2.2之跑圖效果,以及儲存時要注意的事情。

回到3ds Max與VRay,較新版本的3D軟體為了要更接近人的眼睛所看到的(或更正確地說:在螢幕顯示出接近人類眼睛所該看到的),也開始有相關的設定,如筆者目前所用的3ds Max 2015版本,其設定就乾脆將Gamma 2.2變成3ds Max預設的數值。

undefined

在3ds Max偏好設定裡有關gamma校正之選單,筆者使用的是2015版本,所以預設的gamma值為2.2

另外,若你有在使用VRay,在Color mapping裡面也會出現Gamma的設定,而在VFB(VRay frame buffer)跑圖視窗底下有個小小的sRBG按鈕(模擬Gamma 2.2的效果)。依照3ds Max與VRay的預設來看,跑出來的圖比較適合EXR檔案格式,並沒有真正地將gamma 2.2計算在跑圖與儲存於一般常用的檔案格式(如jpg或png檔)之中。

undefined

VRay跑圖設定之Color mapping。如果未看到完整的參數,在開合板右上方有個Default,點兩下則會變成Expert,就會看到完整的參數,在Mode下拉式選中選取Color mapping and gamma,便可完成設定

正確的做法應該是:必須將Color mapping裡mode改為color mapping and Gamma模式,如此一來在算圖時Gamma 2.2校正就會帶進圖中;

undefined

sRGB按鈕記得要關閉,否則在跑圖的預覽畫面會呈現出兩次的色彩校正

在VRay跑圖視窗的sRGB按鈕必須關閉,因為我們已經不需要再透過它來模擬Gamma校正了;

undefined

跑完圖後,儲存檔案時須將gamma改為override並確定數值為1,否則仍然會做兩次gamma校正

而當跑完圖要存檔的時候,須將存檔視窗中將Gamma的Automatic(Recommended)選項改為Override,其後面的數值為1,以避免在輸出的時候產生兩次Gamma校正。這樣的設定才能真正地將Gamma 2.2帶入檔案之中。

undefined

筆者習慣用圖層底下的「建立新填色或調整圖層」按鈕中的曝光度工具來還原正確的gamma校正,只須在工具裡的gamma校正中的數值更改為0.45即可

但若用以上的方法儲存EXR檔案,然後再用Photoshop開啟EXR圖檔時會發現,其顯示會有重複gamma校正之窘狀。別擔心,此時可用Photoshop之曝光度工具,在gamma校正參數輸入0.45,便可以解決重複Gamma校正的問題。

也許有人會問:EXR檔案究竟與其他檔案格式有何不同?最大的不同在於,如同HDRI檔案它同樣也擁有更多色域,一般我們常用的JPG檔案之色彩為8至16位元,而EXR檔案則是32位元,有著較高的色彩真實度和動態範圍,對於後製時調曝光、中間調與色彩時會有如照相機般地,同樣精確且合理的模擬物理界應該要有的明暗強弱。這也是筆者目前使用的方法。
若你是3D新手,很好,就別去管Gamma 1.0是甚麼東西了;但若你是3ds Max的老鳥,相信要去習慣Gamma 2.2的作業環境是困難的,因為它挑戰了你原本熟悉的顏色與光線強度的認知。筆者也曾經花了一點時間重新適應,尤其是在貼圖與選取顏色時的材質設定,乃至於光線強度數值都須重新思考,否則容易出現過曝與顏色沖淡之問題。若拿過去在Gamma 1.0的環境下完成的專案直接改為Gamma 2.2就會發現許多問題:畫面一切都過曝。
網路上有許多關於Gamma校正與線性工作流程的探討,顯然地這兩者是現今與未來業界的趨勢。當我們的圖檔的色彩空間是32位元的,那麼我們就可以調整出與真實世界更為接近的3D作品不是嗎;)

若你想深入gamma校正與線性工作流程之相關原理,可詳閱Gamma 2.2 setup or linear workflowLinear Workflow(英文);V-Ray for 3dsMax 的Gamma 2.2 或線性工作流程(中文翻譯

arrow
arrow

    DDD3VIZ 發表在 痞客邦 留言(2) 人氣()