Gamma Correction 這個東西,是個麻煩,容易讓人誤解,讓數位影像工作者踫釘子,害我 K 了好多天的文件還是一知半解…在與同事討論 Gamma 這玩意兒時,Dan 提到「我不喜歡人家說它是 Gamma Correction,因為這樣好像代表有什麼東西是錯的,要被訂正。但其實沒有東西是錯的,所以應該用 Gamma Encoding 和 Gamma Decoding,同時這樣也比較不容易讓人覺得很混淆。」
為此,我相當同意他的看法。但這一篇並不是想聊 Gamma,因為我自己覺得還似懂非懂,我想聊的是「名詞」這個玩意兒。
Gamma(這裏就不再叫它 Gamma Correction 了,因為真的沒有誰對誰錯 ^>^)這個名詞,會因為出現的點不同,意義不同,而有不同的名稱。舉個有趣的一點,當你在使用一個軟體,它有提供一個選項,讓你可以調整 Gamma 時,你可能會因為某些原因而設它為 2.2, 0.45, 1.8, … 等,然後預期顏色亮度(Brightness)的變化,會像你想像中的那樣。但很不幸的,有時是剛好顛倒。
你拿到一張 linear light/intensity 的圖,然後你坐在一台 PC(暗指你不是用 Mac 或 Silicon Graphics 的機器)前,於是你知道,要把 Gamma 設為 2.2 的倒數,就是 1/2.2 = 0.4545,然後相信它就會變亮了。結果,它變得更暗@@ 於是你只好改設為 2.2,即使你覺得怪怪的(為什麼會是反過來的呢?)。(這個例子,你剛好可以在 Shake 這個合成軟體裏頭看到,它剛好就是這裏所說的「顛倒」)
又有一次,一樣是和 Dan 在聊天,不過這次是換他跑來問了我一個問題「Galaxy 在中文裏頭,是叫銀河,銀河系,還是什麼呢? 怎麼翻譯?」我愣了一下,然後發覺我也搞不清楚,好像是銀河系,但查了一下,又發覺可以翻成銀河,但是銀河與銀河系好像是不同的東西…然後就一陣錯亂,亂回答。
其實,Galaxy 是指銀河系。我們所居住的地球身在太陽系,而太陽系則是身在一個銀河系(或叫本星系),然後當一些銀河系湊在一起,就叫它們是星系團(Galaxy Cluster)。然後呢,當人們在說「銀河」時,其實指的是我們所屬的這個「本星系」,這說法就像英文的 Galaxy 其實可以暗指 Our Galaxy。於是,我被台大天文學社上了一門「認識星空名詞課」。
工作上的關係,太極影音的 RD 部門同仁,幾乎每個人都有參與過「拆 pass」這麼一回事,為的是減輕 lighter 的負擔,好讓他們可以專注在燈光上頭,為我們帶來美侖美幻的視覺呈現。(當然啦,如果他們實在因為人手與時間不足,無法盡全功時,我們還有最後一關:合成部門。)早期(其實也沒多久之前,就我進太極以來的頭兩年),我們一律是以「分 pass」來描述所有的事情。於是乎會聽到如下的一段話:
這個 scene,我要讓前景的三隻角色(嬰兒枕、僻邪、玉鴨)都個別分出 pass 來,然後背景部分,就分為地板、玻璃和其它。角色部分,請分出 beauty, specular, reflection,同時眼球還有多一組 rgb,而背景的話,就分出 beauty 和 specular 就行了,其中玻璃比較特別,請拆出前後,然後它還得要有 reflection pass…
很混亂吧,後來,我提議直接採用由 Jeremy Birn 出的那本 Digial Lighting & Rendering 裏提的名詞。當提到的東西是一個整體時(ex, 嬰兒枕,地版…),使用 Layer 來稱呼,而當提的東西是 shading pass 時(ex, diffuse, specular, reflection, sss, …),就使用 Pass 來稱呼,至此,我們有了共通的語言,在需要精確描述或定義時,不會再有模擬兩可的問題。至少,不用解說很久,只要使用了精準的 term,就知道在表達什麼。同時,還可以精確的說出,這個 scene 需要多少 layer,各個 layer 又是多少 pass,因為 layer 耗的是人工,而 pass 耗的是機器,所以還可以比較精確一點地估出要花多少 man-hour。
習慣在重要的場合,使用比較精確的文字與語言來表達一件事,成了我每天必須學習與面臨的課題之一~