複製鏈接
請複製以下鏈接發送給好友

Renderman

鎖定
RenderMan是一個計算機圖像渲染體系,準確地説是一套基於著名的REYES渲染引擎開發的計算機圖像渲染規範,所有符合這個規範的渲染器都稱為RenderMan兼容渲染器。這其中最著名有3Delight 和Pixar公司的PhotorealisticRenderMan,其中3Delight 是一個專有的,符合 RenderMan 規範的逼真圖像渲染器,同時在業界還有一些其它的免費版開源的RenderMan兼容渲染器。
中文名
Renderman
鑑    析
高端運動圖像的生產製作
電    影
榮譽之刃
地    址
3delight技術支持網

Renderman鑑析

RenderMan兼容渲染器其高超的渲染質量和及其快速的渲染能力而被廣泛應用在高端運動圖像的生產製作過程中,在當今的動畫電影和影視特效等高端領域,RenderMan兼容渲染器是必不可少的一個渲染解決方案(另一個高端解決方案是著名的MentalRay渲染器),世界上許多著名製作公司像ILM和Sony等都使用它作為作為渲染的最終解決方案之一。
目前最普及的RenderMan是3Delight因為3Delight的開放性和用户口羣的龐大,3Delight已經成為RenderMan電影級別渲染器的主流。 [1] 

Renderman支持系統

3delight支持Maya、Houdini、XSI、Massive、Naiad、Nuke,不久3Delight將會支持MAX,這樣符合renderman規範的3delight渲染器將會支持全系列3維軟件。 [1] 

RendermanRenderMan規範

RenderMan規範,簡稱RISpec,是一個開放的應用程序接口(API),由皮克斯開發,用於描述三維模型並把它轉換成逼真的數字圖像。RenderMan規範作為建模程序和渲染程序之間的通信協議(或稱為接口),用於生成逼真的數字圖像。規範類似於PostScript,不過是用來描述三維場景而非二維頁面佈局。因此,理解RenderMan接口的建模軟件,可以輸出場景數據到符合規範的渲染器(以下簡稱RenderMan渲染器),而無需關心後者使用什麼算法渲染出圖像。
RenderMan規範最初發佈於1988年,版本號為3.0,3.1版發佈於1989年,並在1995年進行了修訂,2000年7月,規範發佈3.2版。規範的當前版本是3.2.1版,發佈於2005年11月。後來的事實證明了規範的前瞻性,規範在多年之後也無需過多改動就能引入新技術。
RenderMan規範和當時的其他標準的不同之處在於它允許使用高級的幾何圖元,比如二次曲面雙三次曲面來表示圖形,而非依賴於建模程序事先生成多邊形逼近模型,規範的另一個創新之處是引入着色語言。
RenderMan和OpenGL有很多相同之處,雖然兩個API是針對不同的用户(OpenGL用於實時硬件輔助渲染,而RenderMan規範則用於逼真圖像的離線渲染),兩個API都是基於棧的狀態機機制直接渲染出幾何圖形。 [2] 

RendermanRenderMan接口規範內容

RenderMan渲染接口,主要包括兩大部分,第一部分是RenderMan Interface,定義了着色計算所必須的一些基本數據類型,和RenderMan接口字節流協議(RenderMan Interface Bytestream Protocol),簡寫為RIB,rib也是RenderMan場景描述文件的擴展名;規範的第二部分,是RenderMan着色語言,RenderMan Shading Language,簡稱RSL,使用RenderMan着色語言編寫的源程序,其源代碼文件擴展名通常是sl [2] 

RendermanRenderMan接口

RenderMan接口,定義了一些基本的數據類型,以規範的C語言實現為例,規範把C語言的short、int、float、char數據類型,分別映射至其RtBoolean、RtInt、RtFloat和*RtToken類型,另外,規範還定義了RtColor、RtPoint、RtVector、RtMatrix等特定於圖形學着色計算必要的數據類型。
規範的圖形狀態(graphics state),包括了渲染一個模型所需的全部信息,RenderMan接口的命令,要麼改變圖形狀態,要麼渲染一個模型。圖形狀態又分為兩部分,其一是全局狀態,在渲染一幅圖像或序列中的一幀時,保持不變;其二是當前狀態,針對不同待渲染的模型,可以發生改變。全局狀態中的參數,稱為選項(Options);當前狀態中的參數,稱為屬性(Attributes)。選項包括相機和顯示(指輸出像素的)參數,還有其他影響渲染質量的參數;屬性包括控制模型外觀和材質的參數(比如顏色、透明度、着色模型等),還有模型的位置、朝向和細分程度等參數。
RenderMan規範支持多邊形曲面片細分曲面二次曲面和曲線、元球、程序圖元等多樣的幾何模型。 [2] 

RendermanRenderMan着色語言(RSL)

RenderMan規範引入了RenderMan着色語言,使三維場景的外觀不只用很少的參數來描述,而是允許使用類似C語言的程序來編寫任意複雜的着色函數,通常稱之為程序紋理和着色器(shader)。光照以及表面置換也是可編程的,能用着色語言編程來修改。RSL允許每個語句以單指令流多數據流的方式執行,但不強制使用此方式。另一個使RenderMan渲染器區別於許多其他渲染器的功能是它允許輸出着色函數里的任意信息,不管是表面法線、單獨的燈光通道還是什麼別的信息,都可以使用RenderMan渲染器輸出到單獨的通道里。
一個RSL編寫的着色器,可以用於任何符合RenderMan渲染規範的RenderMan渲染器,比如皮克斯的PRMan、DNA Research的3Delight,以及開源的Pixie和Aqsis。
RSL可以編寫獨立的函數和RenderMan渲染規範定義的五種類型的着色器:surface,light,volume,imager和displacement着色器。 [2] 
參考資料
  • 1.    Apodaca, Anthony A.; Larry Gritz, Ronen Barzel. Advanced RenderMan: Creating CGI for Motion Pictures. San Francisco: Morgan Kaufmann Publishers. 1999. ISBN 1-55860-618-1. OCLC 42621055.
  • 2.    Ebert, David S.; F. Kenton Musgrave, Darwyn Peachey, Ken Perlin, Steven Worley. Texturing and modeling: a procedural approach, 3rd ed.. Burlington, MA: Morgan Kaufmann Publishers. 2003. ISBN 1-55860-848-6. OCLC 52689816.