轉:渲染的概念

2008/01/31 15:32
資料來自網路
渲染的概念
渲染,英文為Render,也有的把它稱為著色,但我更習慣把Shade稱為著色,把Render稱為渲染。因為Render和Shade值兩個詞在三維軟體中是截然不同的兩個概念,雖然它們的功能很相似,但卻有不同。Shade是一種顯示方案,一般出現在三維軟體的主要視窗中,和三維模型的線框圖一樣起到輔助觀察模型的作用。很明顯,著色模式比線框模式更容易讓我們理解模型結構,但它只是簡單的顯示而已,數字圖像中把它稱為明暗著色法。在像maya這樣的高級三維軟體中,還可以用Shade顯示出簡單的燈光效果、陰影效果和表面紋理效果,當然,高質量的著色效果是需要專業三維圖形顯示卡來支持的,它可以加速和優化三維圖形的顯示。但無論怎樣優化,它都無法把顯示出來的三維圖形變成高質量的圖像,這時因為Shade採用的是一種實時顯示技術,硬體的速度限制它無法實時地回饋出場景中的反射、折射等光線追蹤效果。而現實工作中我們往往要把模型或者場景輸出成圖像文件視訊信號或者電影膠片,這就必須經過Render程序。
Shade視窗,提供了非常直觀、實時的表面基本著色效果,根據硬體的能力,還能顯示出紋理貼圖、光源影響甚至陰影效果,但這一切都是粗糙的,特別是在沒有硬體支持的情況下,它的顯示甚至會是無理無序的。Render效果就不同了,它是基於一套完整的程序計算出來的,硬體對它的影響只是一個速度問題,而不會改變渲染的結果,影響結果的是看它是基於什麼程序渲染的,比如是光影追蹤還是光能傳遞。


渲染的基本過程
首先,必須定位三維場景中的攝像機,這和真實的攝影是一樣的。一般來說,三維軟體已經提供了四個預設的攝像機,那就是軟體中四個主要的視窗,分為頂視圖、正視圖、側視圖和透視圖。我們大多數時候渲染的是透視圖而不是其他視圖,透視圖的攝像機基本遵循真實攝像機的原理,所以我們看到的結果才會和真實的三維世界一樣,具備立體感。接下來,為了體現空間感,渲染程序要做一些"特殊"的工作,就是決定哪些物體在前面、哪些物體在后面和那些物體被遮擋等。空間感僅通過物體的遮擋關係是不能完美再現的,很多初學三維的人只注意立體感的塑造而忽略了空間感。要知道空間感和光源的衰減、環境霧、景深效果都是有著密切聯系的。
渲染程序通過攝像機獲取了需要渲染的範圍之后,就要計算光源對物體的影響,這和真實世界的情況又是一樣的。許多三維軟體都有預設的光源,否則,我們是看不到透視圖中的著色效果的,更不要說渲染了。因此,渲染程序就是要計算我們在場景中添加的每一個光源對物體的影響。和真實世界中光源不同的是,渲染程序往往要計算大量的輔助光源。在場景中,有的光源會照射所有的物體,而有的光源只照射某個物體,這樣使得原本簡單的事情又變得復雜起來。在這之后,還要是使用深度貼圖陰影還是使用光線追蹤陰影?這往往取決於在場景中是否使用了透明材質的物體計算光源投射出來的陰影。另外,使用了面積光源之后,渲染程序還要計算一種特殊的陰影--軟陰影(只能使用光線追蹤),場景中的光源如果使用了光源特效,渲染程序還將花費更多的系統資源來計算特效的結果,特別是體積光,也稱為燈光霧,它會占用代量的系統資源,使用的時候一定要注意。
在這之后,渲染程序還要根據物體的材質來計算物體表面的顏色,材質的類型不同,屬性不同,紋理不同都會產生各種不同的效果。而且,這個結果不是獨立存在的,它必須和前面所說的光源結合起來。如果場景中有粒子系統,比如火焰、煙霧等,渲染程序都要加以"考慮"。


智慧光
我一直認為,自然界的光是具有智慧的,它像一個魔法師,把世界變得繽紛絢麗,甚至離奇古怪,而渲染程序中的光就顯得笨拙的得多了,程序雖然提供了足夠多的光源類型來讓我們模擬真實世界的光源,但就其本質來說,都只解決了光源的直接照射問題,而真實世界中的照明不是這樣的,它還存在再次反射的現象,也就是通常所說的的光能傳遞,現在流行的叫法是Global Illumination,即全局照明。不要把它跟Lightscape的光能傳遞相混淆,他們雖然在原理和結果上非常相似,但是算方式卻不一樣。
光的"智慧"還體現在它的反射和折射質量上,這個質量並不是指渲染圖像的質量或者光線追蹤的正確與否,而是指是否能自動完成與光線的反射和折射有關的所有效果。Caustic特效的產生成為了高級渲染程序的一個重要標志。Cau-stic是一種光學特效,通常出現在有反射和折射屬性的物體上,比如透明的圓球、凸透鏡、鏡子、水面等,它包含聚焦和散焦兩個方面的效果。
就目前的情況來說,衡量一個渲染程序里的光源是否具有"智慧",不是看它的光源類型有多麼豐富,或者說,已經與直接照明沒有什麼關係了(所有的渲染程序都能很好的解決直接照明的問題),而是與光源的間接照明有密切的關係。無論是天空光還是全局照明,或者是Caustic特效,都不是光源直接照射到物體上產生的效果,它們是光線的Diffu-se、Radiosity、Reflection和Refraction產生的結果,產生這些結果的自動化程度越高,即不需借助任何輔助光源,我們就可以把該渲染程序的光源看成是有"智慧"的。需要注意的是,並不是說不能自動產生間接照明效果的渲染程序就是低級的。我們依然可以使用輔助光源來模擬那些間接照明的效果,作為渲染的圖像來說,我們關心的仍然是圖像所顯示的效果,而不是產生結果的方法,所謂條條大路通羅馬,目的才是最重要的。我們不要迷失其中。
[說明:天空光是一種很特殊的光源。準確的說天空光不應該稱為光源,它是由於大氣漫反射太陽光形成的,所以,它也可以看成是太陽光的間接照明。]


材質的真相
材質是什麼?簡單的說就是物體看起來是什麼質地。材質可以看成是材料和質感的結合。在渲染程序中,它是表面各可視屬性的結合,這些可視屬性是指表面的色彩、紋理、光滑度、透明度、反射率、折射率、發光度等。正是有了這些屬性,才能讓我們識別三維中的模型是什麼做成的,也正是有了這些屬性,我們電腦三維的虛擬世界才會和真實世界一樣繽紛多彩。
這就是材質的真相嗎?答案是否定的。不要奇怪,我們必須仔細分析產生不同材質的原因,才能讓我們更好的把握質感。那麼,材質的真相到底是什麼呢?仍然是光,離開光材質是無法體現的。舉例來說,借助夜晚微弱的天空光,我們往往很難分辨物體的材質,而在正常的照明條件下,則很容易分辨。另外,在彩色光源的照射下,我們也很難分辨物體表面的顏色,在白色光源的照射下則很容易。這種情況表明了物體的材質與光的微妙關係。下面,我們將具體分析兩者間的相互作用。


色彩(包括紋理)
色彩是光的一種特性,我們通常看到的色彩是光作用於眼睛的結果。但光線照射到物體上的時候,物體會吸收一些光色,同時也會漫反射一些光色,這些漫反射出來的光色到達我們的的眼睛之后,就決定物體看起來是什麼顏色,這種顏色在繪畫中稱為"固有色"。這些被漫反射出來的光色除了會影響我們的視覺之外,還會影響它周圍的物體,這就是光能傳遞。當然,影響的範圍不會像我們的視覺範圍那麼大,它要遵循光能衰減的原理。另外,有很多資料把Radiosity翻譯成"熱輻射",其實這也蠻貼切的,因為物體在反射光色的時候,光色就是以輻射的形式發散出去的,所以,它周圍的物體才會出現"染色"現象。

光滑與反射
一個物體是否有光滑的表面,往往不需要用手去触摸,視覺就會告訴我們結果。因為光滑的物體,總會出現明顯的高光,比如玻璃、瓷器、金屬………而沒有明顯高光的物體,通常都是比較粗糙的,比如磚頭、瓦片、泥土………這種差異在自然界無處不在,但它是怎麼產生的呢?依然是光線的反射作用,但和上面"固有色"的漫反射方式不同,光滑的物體有一種類似"鏡子"的效果,在物體的表面還沒有光滑到可以鏡像反射出周圍的物體的時候,它對光源的位置和顏色是非常敏感的。所以,光滑的物體表面只"鏡射"出光源,這就是物體表面的高光區,它的顏色是由照射它的光源顏色決定的(金屬除外),隨著物體表面光滑度的提高,對光源的反射會越來越清晰,這就是在三維材質編輯中,越是光滑的物體高光範圍越小,強度越高。當高光的清晰程度已經接近光源本身后,物體表面通常就要呈現出另一種面貌了,這就是Reflection材質產生的原因,也是古人磨銅為鏡的原理。但必須注意的是,不是任何材質都可以在不斷的"磨練"中提高自己的光滑程度。比如我們很清楚瓦片是不可能磨成鏡的,為什麼呢?原因是瓦片是很粗糙的,這個粗糙不單指它的外觀,也指它內部的微觀結構。瓦片質地粗糙里面充滿了氣孔,無論怎樣磨它,也只能使它的表面看起來整齊,而不能填補這些氣孔,所以無法成鏡。我們在編輯材質的時候,一定不能忽視材質光滑度的上限,有很多初學者作品中的物體看起來都像是塑料做的就是這個原因。

透明與折射
自然界的大多數物體通常會遮擋光線,當光線可以自由的穿過物體時,這個物體肯定就是透明的。這里所指的"穿過",不單指光源的光線穿過透明物體,還指透明物體背后的物體反射出來的光線也要再次穿過透明物體,這樣使我們可以看見透明物體背后的東西。由於透明物體的密度不同,光線射入后會發生偏轉現象,這就是折射。比如插進水里的筷子,看起來就是彎的。不同的透明物質其折射率也不一樣,即使同一種透明的物質,溫度的不同也會影響其折射率,比如當我們穿過火焰上方的熱空氣觀察對面的景象,會發現有明顯的扭曲現象。這就是因為溫度改變了空氣的密度,不同的密度產生了不同的折射率。正確的使用折射率是真實再現透明物體的重要手段。
在自然界中還存在另一種形式的透明,在三維軟體的材質編輯中把這種屬性稱之為"半透明",比如紙張、塑料、植物的葉子、還有蜡燭等等。它們原本不是透明的物體,但在強光的照射下背光部分會出現"透光"現象。
通過上面簡單的描述,相信大家已經進一步了解了光和材質的關係,如果在編輯材質時忽略了光的作用,是很難調出有真實感的材質的。因此,在材質編輯器中調節各種屬性時,必須考慮到場景中的光源,並參考基礎光學現象,最終以達到良好的視覺效果為目的,而不是孤立的調節它們。當然,也不能一味的照搬物理現象,畢竟藝術和科學之間還是存在差距的,真實與唯美也不是同一個概念。

關於攝像機
一幅渲染出來的圖像其實就是一幅畫面。在模型定位之后,光源和材質決定了畫面的色調,而攝像機就決定了畫面的構圖。在確定攝像機的位置時,總是考慮到大眾的視覺習慣,在大多數情況下視點不應高於正常人的身高,也會根據室內的空間結構,選擇是採用人蹲著的視點高度、坐著的視點高度或是站立時的視點高度,這樣渲染出來的圖像就會符合人的視覺習慣,看起來也會很舒服。在使用站立時的視點高度時,目標點一般都會在視點的同一高度,也就是平視。這樣墻體和柱子的垂直*廓線才不會產生透視變形,給人穩定的感覺,這種穩定感和舒適感就是靠攝像機營造出來的。
當然,這種放置攝像機的方法不見得也適合表現室外的建築,我想說的是,攝像機的位置必須考慮觀察者所處的位置和習慣,否則畫面會看起來很別扭。在影視作品中,攝影機的自由度會大得多,為了表現特殊的情感效果。有時會故意使用一些夸張、甚至極端的鏡頭,要注意區別對待。
那麼,在三維軟體中的攝像機除了影響構圖之外,還有什麼其他的作用呢?當然有,這就是景深效果和運動模糊。應該說這兩種特效都是和攝像機密不可分的,因為攝像機(或照相機)都有光圈和快門,而光圈和快門就是產生景深效果和運動模糊的直接原因,所以,運用好這兩種特效是再現真實攝像效果的必要手段。
三維軟體里的攝像機,除了上面提到的內容外,還有更復雜的部分,那就是攝像機的運動。如果你的工作不會涉及到動畫制作,可以忽略與攝像機運動有關的內容,但不論怎樣,花點時間看看攝像方面的書籍是很有幫助的。要知道影視作品和我們平時照相不同,照相注重構圖和用光,影視作品更講究鏡頭的運動和鏡頭的切換。所以,如果你要運用好你的"虛擬攝像機",就必須參考專業類的書籍,千萬不要再憑自己的想象,否則,費了好大的勁兒制作好了模型,設置好了光源,把最難調的材質也調好了,還設置了動畫關鍵幀,本來應該有個好的渲染結果了,卻因為使用了"蹩腳"的攝像機鏡頭和運動方法而導致剪輯師無從下手,結果前功盡棄。當然,這種結果在三維動畫制作中並不多見,原因是三維動畫制作通常都是先有了分鏡頭腳本(也叫故事板)才開始制作的。每個分鏡頭腳本中都注明了該用什麼樣的鏡頭以及如何運用鏡頭,但這並不表示我們可以不用去學習鏡頭語言,假如你對鏡頭一無所知,那該怎樣才能看懂分鏡頭腳本呢?
也就更談不上制作了吧。

創作者介紹
創作者 sleepingwolf 的頭像
sleepingwolf

【開源節流】--> "開源" & "節流"

sleepingwolf 發表在 痞客邦 留言(0) 人氣()