一個喜歡 分享、學習、創作 的 動畫社群!

燈光與算圖

為何你做的動畫看起來很假

walle.jpg

原文出處 / 作者 Andrew Price

算圖等了老半天,最後出來的畫面,最重要的元素是什麼? 美感嗎? 還是物理正確性? 不管你在做桌上的方塊,還是火山裡的鳳凰,「可信度」才是動畫中最重要的元素。東西一假,觀眾就很容易出戲。

那,什麼是假? 不管你的模型、材質、燈光做的多好,但算圖一按下去,出來的畫面一定會看起來很假。原因很簡單,因為你還沒加上「攝影造成的不完美」。攝影是動畫中非常重要的一門課,但許多人都會忽略它。你知道快門按下去時,隨之而來的不完美有哪些嗎?

  • Chromatic Abberation 色差
  • Vignetting 暗角 / 暈影
  • Soft Glare 
  • Light rays 光線
  • Reflecting glare 反射光暈
  • Bloom
  • Lens Flare 鏡頭產生的光暈
  • Glare burnout
  • Ghost glare 重象
  • Depth of Field 景深
  • Motion Blur 動態模糊
  • Lens Distortion 鏡頭產生的變形
  • Lens dust, scratches, sweat, fingerprints 鏡頭上的灰塵、刮痕、汗漬、手印、水滴
  • Film developing artifacts 雜質
  • Color grading 調色

這些都是「算圖」無法複製的「攝影缺陷」。要讓畫面更上一層樓,就必須在算圖之後補足這些不完美。

底下選出幾部有大量動畫的電影,上述這些不完美,都有出現在它們的畫面中:

《白鯨傳奇:怒海之心》

heart2.png

heart3.png

heart4.png

heart6.png

《蝙蝠俠對超人:正義曙光》 

imper1.png

imper2.png

imper3.png

《魔獸: 崛起》 

warimper4.png

warimper3.png

warimper2.png


為何《瓦力》,一部動畫片可以看起來那麼真實? 皮克斯在進入「正式製作期」前,作了好幾個月的功課,他們把真實世界的攝影邏輯導入 3D 軟體中,還請了鼎鼎大名的攝影師 Roger Deakins 來告訴員工實拍時燈光和攝影機的運作方式。皮克斯也拍了真實素材,讓員工在動畫世界中模仿真實鏡頭會產生的各種變形、光暈。 

wall9.png

walle4.jpg

walle5.jpg

wall6.png

wall7.png

wall8.png

walle3.jpg

《瓦力》的導演 Andrew Stanton 說: 生命是不完美的,但電腦是完美的,我們花了非常多的時間,把這些不完美的效果做回畫面中,為的就是要讓畫面感覺更熟悉。


大家最常問的問題是,為何要把不完美做回畫面中,這些不是「不完美」嗎? 

當你眼睛已經習慣汽車烤漆、路燈產生的不完美光暈,或是離你眼睛越近的東西越模糊時,這些東西在動畫中沒有出現就會感覺怪怪的。當然材質本身的寫實度、打光的技巧都很重要,但除非你開始認真觀察大自然,並且了解攝影會造成的各種不完美,你做的動畫就一定會看起來很假! (跟自己說)

大公司小心得之(二)

cover2.png

KATANA

KATANA是一個整合了燈光Lighting、著色shading、貼圖Texture、算圖Render的節點式框架軟體(framework),同時也包含了3D場景的管理與流程工具的再研發,最早是由Sony Imageworks給內部做Lighting的工具,後來CG軟體大廠The Foundry開發為套裝軟體對外公開販售。

Katana 用到現在,我發現我 (公司的 Look Dev. TD) 很少用到 Node Graph(節點區),大部份的設定在 Template (頁面)都設定好了,除了最終端 Output (輸出)需要手工設定外,剩下的只需要好好在 Shading (材質)這塊努力就好了。不過,還是趁著空閒之餘去把整個系統的架構了解一下,基本上就是 Input (輸入)一堆該有的元件:模型、攝影機、材質系統,然後調材質、打燈,最後 Output (輸出)。

big1.jpg

不同物件 Assign 同一材質

MAYA 中 assign (指定) 一個材質球到物件上,最簡單的方法就是用滑鼠中鍵拖過去,然後,要看物件的 Shading Group,就把它放到 Hypershade 中。但是,如果今天要在不同物件上 assign 同一材質,物件可以一個一個選取,也可以建立一個方便選取的 Object Set。在 KATANA 中,要把材質球 assign 到物件上必須要有兩個元素:物件與材質。要在不同物件上 assign 同一材質,跟 MAYA 一樣,就是選取與置放,而 KATANA 有個比較特別的做法叫 Collection。我們可以透過手動的選取或者經由物件 ID Tokens 加上一條簡單的 Expression (連我都會就知道多簡單了),就可以輕鬆地把要選取的物件蒐集起來,然後 assign 材質上去 ,因此我們只要把材質的路徑填上去,再把 Collection 的路徑也放上去,這樣就完成 assign 材質的動作了。

那,什麼是 ID Tokens?

ID Tokens 是一種標記,是物件命名的記號,例如: IDMetal、IDWood、或是 IDCloth 之類的,大公司會把物件的材質屬性作一個粗分,這樣就可以在 Collection 上面做到最基礎的選取條件,剩下的再藉由物件各自的名稱來做其它的 Collection 條件設定。這種做法的好處,就是無論這物件的層級跑到哪裡去 (別跑到 Root 最上層那邊就好) 或者物件改了名字,只要 ID 還在,基本上都還會在 Collection 中,這對於 Pipeline 也是相對的彈性。

一個物件有兩種 Look

針對一個物件,卻要有兩種質感的 Look (樣貌),大公司提供了一個非常原始的做法,但也是滿有效的啦,只是我認為很沒效率。那就是運用 Mix Node 加上無止境的 ISO 來做二分法的區別。ISO 在大公司裡面是 Isolate (隔離) 的簡寫,其實就是 Mask (遮罩) 的意思。假如我今天要在一棵石頭上做出乾溼兩種不同的 Look,最基本的 Specular (高光) 與 Reflection (反射) 就會有所差別。以前我的做法就是用 Layered Shader 分別做出兩種不同屬性的材質球,再用 Mask 來定義兩區的範圍。但 KATANA 目前沒有這東西 (聽說是換了 RIS 後暫時沒有 Layered Shader,所以每個 Channel 就要用無止境的 ISO 來分離兩種屬性該有的顏色與各項資訊。材質球裡的數字,最常見的就是浮點數 (Float Value) 與顏色 (R、G、B)。Specular Intensity 就是浮點,除了數字外也可以用 Texture Map 來表現區域的變化值,而 Specular Color 很明顯的就是顏色 (但也可能只有黑白),因此針對不同浮點的大小就會用 Remap 來做些小小修正,做出不同數字的範圍。但也因為要用一大堆的 Remap、一大堆的 Mix、跟一大堆的 ISO,所以 KATANA 裡的 Shading Network 常常都比東京地鐵還要複雜。基本上在 Texture Map 上動手腳不外乎就是加減乘除,分離要用的區塊,最後,就會得到想要的數字與顏色了。

Reference Photo (參考圖)

現在電影裡面有數不清的 VFX,相對的,就會有數不清的 Digital Double (動畫假人 / 數位替身)。要拍 Digital Double 的 Reference Photo 時,大公司通常都會在攝影棚內,單獨拍攝這些物件的細節。角色物件的部分,會特別處理,棚拍的光源會接近 Look Dev 裡 Template Texture Shot 的 HDRI 設定,這樣就可以用很類似、且統一的光源環境來調整質感。而拍攝這種照片通常會有兩種模式: Polarized (偏振) 跟 Un-Polarized (非偏振),一張是用 PL 把反光濾掉,呈現接近 Diffuse (漫射) 的狀態,另一個就是完全保留物件上的 Highlight (高光)。接著,回到公司後把兩張照片用 Difference (一種混色模式) 疊在一起,就會看到很像 Spec Pass (高光圖層) 的圖像了。這種作法可以比較清楚的觀察到物體針對反光與亮度的表現和分佈。雖然 Specular 是不存在於光學當中的,但在 CG 裡面我們必須要去定義這個高光的範圍、受光狀況、反光...等等的表現。以前在畫貼圖時,絕大多數都是用經驗去指定亮度跟質感,但要接近實際物體真實的狀況反而要多多參考實體的一些質感反應。這種做法我也只在學校看人用過,真正工作後,這還是第一次看到有人這麼做!!

big3.jpg

PBR Physically Based Render

這個概念其實滿早以前就有聽說了,但也還沒真的看人用過,大公司自己的 Library 感覺起來,有在建立這類模型的資料庫。PBR (物理基礎算圖) 的材質球屬性分為 AMR 三類 : A = Albedo 就是 Diffuse (sRGB), M = Microsurface 也可以叫 Roughness (Linear) ,R = Reflectivity 其實就是 Specular (sRGB) 啦! 現在已經有越來越多物件的 AMR 被定義出來,這樣在畫貼圖、或者調材質時,就可以當作參考的依據,至於詳細的部分可以參考這個網址 。這個規則在以前不是那麼好實現,現在因為 3D Texture Paint 軟體越來越多了,我們就可以針對不同 Channel 的 Color Space 來各自設定。

其實在這裏有很多步驟跟觀念都是跟著許多理論在走,雖然有時候很囉唆,不過,要做出真實質感的物件,就要盡量照著理論來走,只是真的照著物理特性下去做會很醜,所以也要稍微斟酌一下,還是以好看為主啦。這部分我也還再持續的研究跟挖資料當中,之後有甚麼新的發現,再慢慢更新啦! 如果我這裡有甚麼寫的不對的地方,也請多多批評指教吧!! 其實最近的心得應該是.....第一次準時下班的感覺好怪 XD

編輯 by Joe Chiang

大公司小心得之(一)

12232667_1050164821681999_2519649265164963360_o.jpg

Look Dev.

Look Dev. 因為 KATANA 的關係,所以在 Lighting 下面。而整個流程果然跟之前猜得差不多,公司會內建幾種環境光的 HDRi (studio, sunny, cloudy, night) 當作測試環境,但根據不同的 show 會有來自片場的 HDRi 來做測試,所以說大公司對於 Look Dev. 的認知就是要讓 material 是萬能的 (實際上這根本很難,所以到最後也是弄了一大堆 mask 出去給 comp)。

檢查流程就是物件在每個環境中轉一次 turntable,接著物件不動,HDRi 轉一圈來看對不同角度的光源有怎樣的反應。但問題是統一光源不見得對每個物件都是適合的,所以 preComp 的時候通常都會動點手腳 (不然改下去會到天荒地老)。

KATANA

KATANA 的 Node Graph 分成兩個介面: Script Template 跟 Shading Network。前者就像 NUKE 一樣把 node 串一串,不同的 show 也會有稍微不同的 Template。Pipeline 也是會在這部分介入,哪裡要放燈,哪裡要放物件,哪裡要做輸出,Pipeline TD 都會先做好預設,所以 Artist 只在某一個小區塊工作,那就是 shading 的 Node Graph 啦!!大公司有自己的 node 跟介面,但基本就是 PRMANSlim (但很像 mantra,其實 mantra 跟 PRMAN 也是有點淵源),目前還在理解裡面的 node 功能。許多的動作跟指令也是用 expression 來做會比較聰明跟快速 (我完全是白癡)。

目前大公司正在開始從 REYES 轉換到 RIS,所以有一拖拉庫的 node 要改。不過我也有瞄到他們正在做 Arnold 的測試 (拜託!快轉過去) 只是 PRMAN 對於毛髮的算圖還是很厲害。有趣的是這裡很多事都是硬幹的,例如物件紋理的部分就是 displacement map forever,而且是 8K 的 UDIM,不過 PRMAN 的 displacement 本來就很厲害,KATANA 也是把記憶體當飯吃的,所以目前效能跑起來感覺好厲害啊!!!

LUT

LUT 以前一直超困擾的,而大公司的作法也很妙。每個 show 都會有各自的 color space 跟 LUT,所以當我們開啟這個 show 的任何軟體時 Teminal 都會開啟 LUT 的管理工具,這會直接去改變電腦螢幕的顏色,這很好用也很統一,但好笑的是誰知道每個人的電腦螢幕的顏色是不是真的都一樣.........

總之現在還是小菜菜.................. 而且發現,在這裡先學好法文可能比會 KATANA 跟 PRMAN 還要好用...........囧

基礎角色打光設計 -以Maya為例

Preview.jpg

原文出處

在創作一個好的3D作品打光是其中一個最重要的面向,也是對專家來說最複雜最具挑戰性的一個部分。打光打得好可以成就一件巨作,但打不好時甚至可以毀了一件最好的作品。

在今日的簡短但有益的教學中,作者Pratik Gulati將會介紹Autodesk Maya的基礎角色打光。此教學適合初學者亦適合更加進階的使用者學習,這些通用的技術也可被應用在其他任意的3D軟體,所以即便不是Maya的使用者亦可學習。

第一步 Step 1

先打開Maya然後輸入我們的角色,如同你所見的場景裡的是一個簡單的3D人體模型。從這個特寫鏡頭可以看到相機的放置位置。

1.jpg

第二步 Step 2

我們在Maya中使用Spot Lights來當作各種燈,但也可以用其他種燈像Volume lights, Directional lights等來達到一樣的效果。在Maya中建立Spot Light,點選Create> Lights>Spot Light。

2.jpg

第三步 Step 3

我們也經常使用" Look Through Selected Camera"這個功能,運用這個功能可以切換至選擇的燈光的視角還可以決定它的覆蓋範圍。在Maya中使用Look Through Selected Camera,先選擇想要的燈光再到Panels >Look Through Selected。

3.jpg

第四步 Step4

我們將在所有的燈光上使用Raytraced shadows,為了讓光影更加準確要將Mental Ray renderer中的RayTracing功能打開。這些燈光的設定如下:

  • Light Radius:光源半徑。半徑越大,光影將會越柔和。
  • Shadow Rays:增加這個值將會提升光影的品質但也會增加Render的時間。
  • Ray Depth Limit:限制燈光從一個表面反射到另一個平面的次數。

    4.jpg

第五步 Step 5

Key Light是場景中最主要的燈光定義了光的狀態。
藉者Key Light的幫助我們定義了場景中光的方向和光影。不應該在你的角色上使用sharp key light,應該要使用good filter size來讓你的光影看起來柔和且吸引人。
在下面的例子中,我們可以看出來最主要的光源就是來自右上角的太陽光。

5.jpg

第六步 Step 6

如下圖所見,我們建了一盞Spot Light大約在角色的45度位置處。注意燈光的Raytrace設定。

6.jpg

第七步 Step 7

"Rim Light"創造了物體邊緣的亮線,幫助視覺上分開物體和背景。Rim Light應該要被放在key light的反方向。

7.jpg

第八步 Step 8

在這可以看到Rim Light的位置。

8.jpg

第九步 Step 9

"Kicker Light"用來增強Key Light的效果。Kicker Light與key Light放置同方向,但覆蓋範圍減少至50%或60%。

9.jpg

第十步 Step 10

"Fill Light"用來降低場景的對比並提供在陰影區域的影像一些照度,一般來說會放在key Light的相反處。

10.jpg

第十一步 Step 11

Fill Light的放置以及設定。

11.jpg

第十二步 Step 12

"Bounce Light"用來模擬Key light從地面或是其他角色附近的表面的反射。這個光應該要非常柔和伴隨者柔和的影子。我們放置一個Volume Light在角色的腳前面來得到一個柔和減弱的光。

12.jpg

第十三步 Step 13

我們現在將renders輸入合成軟體(在這裡面使用Photoshop)。先放入unshadowed Diffuse接著"Multiply"角色的"Occlusion"放在上面。
接者"Screen"所有其他的燈光層(light layer),我們可以在燈光層上加顏色來增強燈光的感覺。

13.jpg

怪獸大學 - 「燈光」新方向

怪獸大學

皮克斯有很長的「邊拍片、邊研發」歷史。像拍《勇敢傳說》時,「頭髮」技術就有大躍進,這次《怪獸大學》也不例外,攝影總監 Jean-Claude Kalache 希望能改變「打光」的方式。

G.I

以前在皮克斯「打光」是非常耗時的,不管是: 反射、影子、溢色...等等,這些光的自然反應,都要用「手動」製作。一卡動輒上百盞燈。為什麼不能一盞燈打下去,光就自然產生那些反應哪? Kalache 問。我希望在燈光設計上,讓大家少當工程師,多當藝術家。於是,從這個點開始,「燈光」就走向一個新的方向,這個新方向是 Global Illumination,簡稱 G.I.。G.I 的好處是,製作上能大幅減少燈光的數量,也能讓使用者在更早期,就能看到完成時的雛形。皮克斯技術總監 Chris Horne 說: 聽 kalache 的形容,這像是個無傷大雅的改變,但是,這其實是非常巨大的改變。

這改變來自 ray-tracing - 把場景中所有光束: 反彈的、產生影子的、製造反射的,都做 mapping 的技術。這比較像光在真實世界中的反應,一個單一光源會反射到房間的各個腳落。這種製作方式,在變形金剛、鋼鐵人,實拍合成電影中,已經很常見了。ILM 製作機器人鐵片上的反射就是用這種方式製作。但是,皮克斯一直都不想擁抱這種製作方式,他們寧願用手動的,但,當角色數量開始增加,場景變更複雜後,「手動」就開始變的不切實際了。

G.I. 能解決這些問題,再複雜的場景,燈打下去,影子、反射、溢色,都能「自動」產生。如果牆壁是藍的,它反射的光就會藍藍的。但是,Kalache 說: 皮克斯仍是一家做「卡通」的公司。在這個系統中,使用者仍有空間做「超乎常理」的燈光設定,但一切還是在「物理正確」的基礎下運作的。燈光師不用再手動擺影子、反射、溢色了,這一切都交給硬體去計算。

記憶體

Render farm 的工作變的更吃重。Christopher Hery 皮克斯 G.I. 系統總工程師說: 「記憶體」變的很重要。因為光有跟所有物件同時起作用的天性,所以,每個反應都須同時計算,RAM 的需求變大了。一個《怪獸大學》的卡 - 建築物、樹、草、怪物、群眾、毛髮都會存在記憶體中。最困難的是,每個 frame 用的記憶體不得超過 20GB,因為皮克斯的 render farm 每一台有 96GB 的 RAM,但是,作業是一次算 4 個  frame,所以,ㄧ個 frame 如果超過 20GB 就會很危險,20GB 可能聽起來很多,但它必須能乘載「鏡頭內」、「鏡頭外」的所有物件,連怪獸的寒毛有移動,跟光產生反應了,都會存在記憶體中去計算。

就算場景沒那麼複雜,G.I. 還是有用。G.I. 讓《怪獸大學》的光影變柔和了,少了以前作品中一些突兀的背景,比較像實拍電影中的攝影了,讓背景退到背景中。套一句 Kalache 說的話: 成功的燈光是無聲的燈光。

簡化流程

Christophe Hery 被皮可克斯顧用來「簡化流程」,以《玩具總動員3》的測試影片為例,有時一卡要匯入 10 種太陽,因為每個角色跟日光的反應都不一樣,所以,要走向更「物理正確」的作業模式,也代表「材質」對光的反應要「統一」,「著色器」(shader) 要能「匯入」 (import) 與「取樣」 (sample)。「反射」跟「高光」在自然界中是同一種東西的觀念也要帶入 (雖然在動畫製作上,這兩者一直都是分開調的) ,有許多元素須要整合。

重新訓練

整合後,新的工具就誕生了,接著,就要開始「重新訓練」員工了。新的語言比較像「實拍攝影」的語言,談的是 exposure (曝光)、high dynamic range (高動態範圍),燈光上的 intensity (強度) 不是 1 或是 2 ,而可能是 50'000,像「新單位」下的太陽光強度就是 64'000。新的工具,把以前比較「繪畫」(painting) 的作業方式,變成比較「攝影」(photographic) 的作業方式。

攝影思維

例如,有一場房間內的戲,只有微弱的日光從窗外進來,往鏡頭裡看,畫面一定是黑的,這時,實拍攝影師就會在天花板上,或攝影機後面「偷藏燈」,這些小撇步是我們需要「重新學習」的東西,去了解實拍攝影的思維,把它搬入動畫世界中。用這種方式製作,最終,畫面會更豐富,因為光從四面八方來,帶著牆壁、物件的顏色到處反彈。雖然光的行為更「複雜」了,但操作起來是更「簡單」的。用這種方式,有 9 成的卡,都能比以前更快完成。

新工具也堆出了新觀念 - 「柔軟度」(softness)。高光、影子的柔軟度,都可以由光的大小、強弱去控制,燈上也加了「四葉遮片」(barn doors)。這些工具都給燈光師更多可調性。

繪畫精神

做實拍電影的「特效」時,會先用一顆反光球,收集 360 度的 HDRI (高動態範圍) 燈光資訊,好讓我們知道光從哪裡來。新的方向中,皮克斯也開始用這種方式製作,但他們加了些自製的配方,其中一種作法是,他們會在 HDRI 環境球上「畫畫」,去研究角色的反應。雖然,新的方向是從「攝影」的角度著手,但製作上還是有包含「繪畫」的精神在裡面。

道理相同

問: 許多「特效公司」慢慢走向 photo-realism "擬真寫實風" 的路,這跟「動畫」的 "卡通風" 有什麼區別?

答: 老實說,一點區別都沒有。不管是實拍、特效、或動畫,燈光不是要去「複製真實世界」 (replicate reality),而是要讓觀眾「了解故事」。實拍的「打燈」,也是假的燈,「打燈」是為了讓演員、場景更好看,是為了要引導觀眾的眼睛。不管是「實拍」或是「動畫」,都是一樣的道理。

方向一致

有許多特效公司都開始拍動畫片了,Weta 拍了 Tintin《丁丁歷險記》,ILM 拍了 Rango 《飆風雷哥》,特效與動畫的製作方式越來越像了。當然,皮克斯跟這些公司不一樣的是,皮克斯有很長的「原創 / 說故事」背景,但在「燈光」的處理上,大家的方向是一致的。Christopher Hery 說: 我最希望看到的是,使用者能被「解放」,快速得到結果,專心做藝術家,而不是一直在 debug。

未來發展

Christopher Hery 說: 我認為「燈光」未來的發展會慢慢走向 real time (即時運算),讓使用者能更「所見即所得」。我希望「工具」是讓製作變更快,而不是更慢。

團結力量大

如果要討論怎樣可以讓畫面更好看,「燈光」有很多可以進步的空間,例如,寫更好的 light transport 方程式。但是,這其實不只是「燈光」的事情,「模型」、「貼圖」、「材質」-「所有元素」都要一起成長,畫面才會更好看,畫面好看,才能去支撐「故事」。提昇硬體,反而是讓畫面好看最簡單的方式,讓「所有元素」能「團結」(work well together),才是長遠的規劃重點。

怪獸大學

 

參考文章01: How Pixar changed the way light works for 'Monsters University

參考文章02: Christophe Hery Talks Global Illumination at Pixar

 Back to top