2012/10/13

基於點雲的算圖技術point-based rendering



作者: Nils O Sandys
翻譯: Hammer Chen

基於點雲的算圖技術
 過去幾年, 新的電腦繪圖技術已經對未來的電影製作有極大的影響, 這個技術稱為----基於點雲的算圖(point-based rendering). 這個技術很強大, 它讓全局照明(GI)對電影產業來說變得實用且有效率, 事實上, 今年的美國影藝學院把奧斯卡科學與工程獎獎項頒發給 Per Christensen, Michael Bunnell 與 Christophe Hery以表揚他們對這個創新技術的貢獻.

經典的問題
在本文中, 我們會深入探討這項新科技的發展, 基於點雲的算圖(point-based rendering) 是怎樣運作的, 以及這項科技對未來電影製作代表的意義. 讓我們先談談色溢(color bleeding)吧, 這是在圖學裡面常見的問題.
有些人可能還不知道色溢是什麼, 當模擬漫射光反彈的時候,例如紅色的牆面,光線自紅色牆面反彈到白色牆面, 而把白色牆面染成紅色. 事實上, 色溢是電腦動畫的聖杯, 因為這個東西可以讓算圖的畫面變得非常寫實.


雖然這幾年下來, 有很多方法可以達到色溢的效果, 但是沒有適合用在電影製作上面的解決方案.

以往, 有三大技術可以產生色溢. 第一種最簡單----造假. 在場景中放盞燈用來模擬燈光在物體間反彈的效果, 美術人員手動地產生這種效果. 這種方法非常不精確, 需要很多時間來設定. 所以對於複雜的, 多物件的場景沒有實用性. 但是 對於簡單的場景, 色溢可以輕易地造假出來.

另外兩種技術是光線追蹤(光線追蹤)與熱輻射(radiosity) 這兩種技術都需要投射大量的光束(rays) 或是計算成千上萬的元件(熱輻射), 用來計算場景中的光線傳遞.

這兩種方法都很容易設定, 可以產生物理精確的結果, 但是這兩種技術之前都沒有用在知名的電影製作上. 儘管光線追蹤與熱輻射可以產生驚人的結果, 但是實際在製作的時候需要的記憶體與電腦都非常的高, 對於電影製作等級的資料, 這種方法本質上就無法執行.

新的解決方案
2004年,從看似不相關的領域---即時算圖(real-time rendering), 提供了全新的概念:   由NVIDIA公司的Michael Bunnell, 他在GPU Gems 2書中發表了一章關於即時產生AO,不是用光線追蹤技術,而是用點雲的技術來算AO.

這是一個創新的觀念! 很快地,皮克斯公司的Per Christensen,他是資深的RenderMan開發者,就開始把這個概念應用到皮克斯的 RenderMan上面. 藉由建立點雲流程,計算次表面散射效果(subsurface scattering). 在開發早期, Christensen與Sony的Rene Limberger合作, 他把點雲的算圖技術用在衝浪季節的前製測試上面. Christensen又與ILM的Christophe Hery合作把這技術優化, 然後應用在神鬼奇航2:加勒比海盜. 很快地, 這個技術說明了它在大型的電影算圖上面的可行性.  Bunnell當初寫的那個章節, 現在掀起了電影產業的小革命----基於點雲的算圖(point-based rendering)!


神鬼奇航2那部電影, Hery很成功地使用基於點雲的算圖的技術. 在初期測試基於點雲的算圖渲染AO效果, 只花了兩小時;用傳統方法算AO卻要十小時. 更誇張的是, 計算色溢幾乎不會花費時間, 因為可以把照明直接烘培到點雲上面, 這是一大突破. 在以前, 根本可能要求的分鏡裡面完成色溢的效果, 只用了幾套客製化的工具, ILM公司的shaing與照明團隊很快地改用新方法來渲染AO, 色溢與IBL.這些新的shading與照明技術讓深海閻王(Davy Jones)逼真寫實地呈現在大螢幕上.


Per Christensen對Hery的努力印象深刻. “真可怕! Christophe怎麼會這麼快就把這個新概念整合到流程裡面??”  很快地, Christensen把原型DSO的程式碼導入到皮克斯的RenderMan裡面, 改善效能, 精確度, 根據ILM的需求與其他工作室的需求擴充功能.

到這裡, 皮克斯還沒把基於點雲的色溢用在製作案上面, 但是即將要改變Pete Doctor的動畫片天外奇蹟. 後來發現要把點雲為基礎的色溢整合到皮克斯複雜的流程相當容易, 事實上, 超過90%的分鏡都是用這個新技術. 有了這個技術, 天外奇蹟完稿的質感整個提升了.

基於點雲的算圖技術很重要, 因為這個技術提供了超高的效率, 跟光線追蹤與熱輻射產生色溢的方式相比較, 這個新技術很有效率地處理電腦動畫的經典問題 很讚, 但到底是怎樣運作的呢?

運作機制是什麼
首先, 讓我們談一下點雲. 基本上, 望文生義, 點雲就是在3D空間中的大量的點所構成的東西(多的向雲一般) .包含了一個或是多個通道的資料 (照明, occlusion ).


除了基於點雲的算圖以外, 點雲還有很多重要用途,因為這對快取3D 紋理提供很重要的結構 .皮克斯的RenderMan能夠很有效率的產生點雲因為有REYES處理幾何體的演算法.

RenderMan可以很輕易地寫出點雲, 其中包含了點在空間中的位置, 法線與用戶所指定的資料, 上圖顯示常見的點雲.

進入基於點雲的算圖世界
我們之前有提到, Michael Bunnell的主要觀念是要避掉光線追蹤與熱輻射而採用點雲的格式. 因此我們要怎樣從點雲得到AO與色溢呢? 首先, 在預先計算(pre-pass)裡面會產生場景幾何體與照明的點雲, 這些點雲稱為烘培過的點雲, 每個點都包含了物件表面的微多邊形(micropolygon)與表面法線, 一但這個資料產生了後, 可以快取並重複使用.

有了點雲為基礎的算圖都優點是: 色溢的計算幾乎跟計算AO一樣快, 因為只有當顏色烘培到點雲上才需要跑shader. 這跟光線追蹤相比, 可以節省很多時間.  演算法唯一要做的是, 讓點烘培的pass要包含每個點的radiance (表面顏色與發光). 請注意, 點是用來逼近場景中的幾何體, 跟光線追蹤相比, 光線追蹤需要用場景中真正的幾何體, 第二階段是在算圖的時候, 烘培的點雲交給在場景幾何體上的shader, 計算點雲的效果. 接著, 每個點用空間中具方向性的小圓盤(oriented disk)來逼近計算.

跟光線追蹤相比, 計算圓盤的顏色與AO十分簡單. 為了效率, 比較疏遠的圓盤 對於整體的結果貢獻度比較微弱, 所以把它們群組成一個物件.圓盤之間的AO計算也會處理非排除的法線(non-occluded normal), 這會用在計算IBL(image based lighting)的環境查詢(environment lookup)上面.

這跟光跡追蹤算AO的功能很類似, 而基於點雲的算圖是說它的色溢績算幾乎跟AO計算的一樣快,於只有當顏色烘培到點上面, 你才需要執行shader



效能
下圖比較了ray traced的AO與點雲為基礎計算出來的AO之間的差別. 視覺上看起來差不多, 但是在點雲為計算的那張裡面似乎有點過黑. 但是就相同的視覺品質來說, 基於點雲的算圖幾乎有八倍快, 且只用到很少的記憶體.


優點與缺點
基於點雲的GI逼近計算的優勢有:
1. 不會有雜訊: 不會有像光線追蹤的算法常常會產生雜點
2. 對大場景說, 跟光線追蹤相比, 快速的計算時間可達4X到10X的速度. 色溢 與 image-based lighting (包含對 HDRI的支援) 幾乎跟計算AO一樣快速.
3. 低的記憶體需求.
4. 對於有套用displacements的模型來說,不會因為displacements而大幅增加算圖時間
5. 燈光與物件可以很輕易的含入或是排除計算

缺點
這個技術往往會產生過多的AO或是過多的色溢, 因為點只是原始場景的逼近值而已, 這會導致AO顏色過深, 或是從隱藏的面計算出來的色溢.

基於點雲的算圖技術在皮克斯未來的發展
基於點雲的算圖技術對整個shaing與 lighting來說是利多.由於天外奇蹟的成功,  目前在皮克斯所有的專案都有用到該技術

基於點雲的算圖技術很適合用在複雜的場景, 場景中有大量物體, 有displacement. 請記住基於點雲的算圖並不是萬靈丹, 只是TD錦囊中的一個工具而已.

在皮克斯, 燈光的TD們會決定怎樣的分鏡要採用怎樣的算圖技術, 可能的話還是會用造假的方式產生色溢. 以AO為例, 皮克斯有用到基於點雲的算圖與光線追蹤, 這全跟分鏡的細節需求來決定.

基於點雲的算圖帶來的好處是能夠渲染場景的全局照明, 用其他技術根本達不到. 某些複雜的分鏡, 皮克斯花了20小時, 產生超過300Gb 的點雲. 沒有基於點雲的算圖技術的話, 根本無法達到這樣的效果.

基於點雲的算圖大量應用在天外奇蹟與玩具總動員3


可以導演的
基於點雲的算圖技術的其中一個優點是可以導演的, 因為點雲並不受限於物理光源的行為. 光線追蹤與熱輻射都有這樣的問題. 在皮克斯, 點雲用選定的燈光與特定的幾何體產生, 讓記憶體能夠有效地應用, 達到最好的效果.

除此之外, 你可以很精確地控制效果的位置. 例如, 某些分鏡, 只有在攝影機前面的東西需要計算色溢, 離攝影機更遠的物件, 效果看不出來. 因此, 我們只需要計算接近於攝影機的點雲就好了, 忽略場景中其他的幾何體. 有些非常複雜的分鏡點雲還是會超過300Gb,  儘管如此, 因為記憶體成本的關係, 同樣的東西用光線追蹤與熱輻射根本就無法達成.

容易打燈
在皮克斯, 基於點雲的色溢常常會用光線來烘培出來, 或是讀取 ,調整光線的強度, 讓我們很容易地控制整體的照明亮度. 因為這些只是一般的燈光, 半影, gobo與 燈光的等等屬性. 因此, 把基於點雲的算圖導入到皮克斯的流程裡面相對容易, 因為整個流程十分相似. 對TD來說, 它就像一般的燈光一樣.

基於點雲的色溢技術現在已經用在超過三十部電影, 色溢終於進入到標準的製程裡面了, 在大部分的大型工作室, 這表示電影業可以達到更高的寫實度.

結論
點雲為基礎的算圖, 變成了電影產業裡面, 產生色溢與AO的重要技術. 他避開了光線追蹤與熱輻射本身的侷限. 有些場景非常非常複雜, 很難ray-trac,e 對於這麼複雜的場景, 基於點雲的算圖變成了唯一的選擇. 有了皮克斯把這個技術直接導入到RenderMan裡面, 讓導演可以創造前所未有的寫實度與複雜度.

以後你一定會常常聽到這個技術

[相關資訊]


No comments: