Reyes渲染架構

Reyes 渲染架構,是三維計算機圖形學的一個軟體架構,用於渲染照片一樣真實的圖像。

基本信息

該架構是80年代中期由盧卡斯影業的計算機圖形研究小組成員艾德文·卡特姆、洛倫·卡彭特和羅伯特·庫克所開發的,那個研究小組最後發展成了今天的皮克斯。該架構最早使用於1982年的科幻片《星際迷航2:可汗之怒》中的創世片段。皮克斯的PRMan是Reyes算法的一個實現。

根據最初描述該算法的論文,Reyes渲染系統是一個用於複雜圖像的快速高質量渲染的“架構”,論文中指出Reyes包括一系列算法和數據處理系統,不過本詞條中的“算法”和“架構”是同義的。

Reyes是 Renders Everything You Ever Saw(渲染你曾見到的任何物體)的首字母縮寫,這個名字也是盧卡斯影業以前所在地——加州Reyes海角的名字,因此Reyes是雙關語,它還暗指和光學影像系統有關的過程。根據羅伯特·庫克的說法,Reyes的正確寫法是首字母大寫,其餘小寫,和1987年庫克/卡彭特/卡特姆的SIGGRAPH論文中一樣。

Reyes架構的設計目標

Reyes架構的設計遵從以下目標:

•模型複雜性和多樣性:為了產生複雜和樣式豐富的圖像,渲染系統的用戶必須能通過分形或粒子系統等,經由編寫程式生成大量複雜的幾何結構。

•複雜著色:場景的複雜度通常由光線和物體表面的相互作用產生。通常,在計算機圖形學裡,這是通過使用紋理來表現的,紋理可以是一組像素,用於描述表面位移(置換)、透明度或反射率等。Reyes允許用戶用電腦程式來描述表面結構和光學互作用,而不是簡單的數據查詢表,並和可程式著色器結合。算法的一個重要目標是減少處理器從存儲器中讀取紋理的時間。

•避免光線追蹤:Reyes架構提出的時候,計算機的處理能力和存儲量都很有限,意味著使用光線追蹤需要耗費幾萬小時才能渲染完一個圖像,Reyes算法避免使用光線追蹤,因此渲染快的多,並且圖像也非常逼真。

•速度:(單個計算機)一年能渲染完成一部每秒24幀的兩小時影片,即平均每幀只需要渲染3分鐘。

•圖像質量:任何圖像,若帶有無用的、因算法導致的缺陷,都是不可接受的。

•靈活性:該架構必須足夠靈活,在引入新技術時,不需把算法完全重寫。

Reyes算法能很高效的渲染一些電影畫面要求的必不可少的效果:光滑的曲面、表面紋理、運動模糊和景深。

Reyes渲染流程

Reyes渲染流程

Reyes算法通過把參數曲面分割成微多邊形(micropolygon)——小於一個像素的四邊形,來渲染光滑曲面。雖然要精確逼近曲面需要很多微多邊形,不過他們可以簡單並行的進行處理。Reyes渲染器對高級的幾何圖形進行細分時,會根據需要來進行,它只需要剛好細分到使圖形在最終圖像中看起來光滑的程度。

然後,一個著色系統給微多邊形的每個頂點賦予一個顏色和透明度,許多Reyes渲染器允許用戶使用著色語言編寫任意的燈光和紋理函式。微多邊形可以在一個大的格線里進行處理,因此可以進行並行向量處理。

經過著色的微多邊形在螢幕空間進行採樣,以生成輸出圖像。Reyes引入了一個開創性的隱面判別算法或者叫 hider,算法對運動模糊和景深進行必要的整合,而無需比未加模糊的渲染使用更高的模型和著色採樣數。 hider通過一種稱為隨機採樣的蒙特卡洛方法收集一定時間和鏡頭位置內每個像素里微多邊形的顏色。

基本Reyes渲染管線工序

Bound,計算幾何圖形的邊界。

Split,把大的圖形分割為更小的圖形。

Dice,把圖形轉換成微多邊形格線,每個大概一個像素大小。

Shade,計算每個微多邊形格線頂點的燈光和顏色。

Bust,把格線炸開成單個的微多邊形,對每個計算邊界並判斷是否可見。

Hide,對微多邊形進行採樣,並生成最後的平面圖像。

1.

Bound,計算幾何圖形的邊界。

2.

Split,把大的圖形分割為更小的圖形。

3.

Dice,把圖形轉換成微多邊形格線,每個大概一個像素大小。

4.

Shade,計算每個微多邊形格線頂點的燈光和顏色。

5.

Bust,把格線炸開成單個的微多邊形,對每個計算邊界並判斷是否可見。

6.

Hide,對微多邊形進行採樣,並生成最後的平面圖像。

在這個設計中,渲染器必須把整個圖像快取在記憶體中,因為必須把所有的圖形都處理完成以後才能輸出最終圖像。一般在 dice步驟之前會進行一步叫 bucketing的常見記憶體最佳化,這一步中,輸出圖像被分割成若干指定大小的小塊,通常每一塊是16x16像素大小,之後,場景中的物體沿著每小塊的大致邊緣按照位置分割到不同的塊里,然後每個小塊分別進行處理,處理下一小塊之前會先丟棄上一個小塊的數據。如此只有當前的小塊區域裡的圖形被載入到記憶體里,通常的情況下,這種處理能比未修改的Reyes算法顯著的減少記憶體的使用。

Reyes渲染器

以下渲染器使用了Reyes算法,或者用戶可以根據需要選擇使用Reyes算法:

•3Delight

•Aqsis

•jrMan

•皮克斯的PhotoRealistic RenderMan 渲染器

•Pixels 3d渲染器

•Pixie

•DotC Software 的RenderDotC

•Side Effects Software 的Mantra

•Poser 的FireFly

•Guerilla Render

•Bakery Relight

相關詞條

相關搜尋

熱門詞條

聯絡我們