画画世界
      分享到:

      3D的基本知识概述

        作者:核实中..2009-10-27 16:37:21 来源:网络

        渲染,英文為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材質產生的原因,也是古人磨銅為鏡的原理。但必須注意的是,不是任何材質都可以在不斷的“磨練”中提高自己的光滑程度。比如我們很清楚瓦片是不可能磨成鏡的,為什麼呢?原因是瓦片是很粗糙的,這個粗糙不單指它的外觀,也指它內部的微觀結構。瓦片質地粗糙裏面充滿了氣孔,無論怎樣磨它,也只能使它的表面看起來整齊,而不能填補這些氣孔,所以無法成鏡。我們在編輯材質的時候,一定不能忽視材質光滑度的上限,有很多初學者作品中的物體看起來都像是塑膠做的就是這個原因。

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

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

        光與影的藝術
        “光與影的藝術”常用來作為攝影類書籍的主題。在攝影專業中,光線是一種使影像投射到膠片上的能量,那麼在三維圖像中呢?是否可以理解為光線是一種使影像投射到虛擬膠片上的能量?電腦也可以產生照片一樣的圖像,正是因為這樣,使電腦圖像成為另一種新的藝術表現形式,它和傳統的攝影在用光上有著很多相似之處;不同的是,攝影的用光都是基於真實的光源,而在電腦中都是虛擬的光源,它只對電腦中的虛擬物體產生作用。本章將以自然光源為起點,逐步引入並深入介紹CG光源的特點和應用技巧。

        自然界的光源
        自然界始終充滿著光線,,即使在“漆黑”的夜晚也會有微弱的光線照射著周圍的環境,他們有的是月光或者星光,如果沒有月光和星光,至少也會有天空和雲層的散射光線存在,所以,絕對的黑暗在生活中是不存在的,即使有,那也只是視覺上的假像。貓和人對黑暗的感受不相同,甚至在光線充足的環境裏,對亮度的視覺感受也不是恒定不變的。人的瞳孔在放大和收縮時對光的感受也不相同,這也是為什麼人從亮處突然走進暗處會感到一片漆黑的原因,這也是攝影為什麼存在曝光不足和曝光過度的原因所在。但在三維軟體的虛擬攝像機中是不會有這個現象的,場景的亮度完全由光源來控制,但這是否就簡化了對光源的控制呢?回答是否定的,要解釋其中的原因,我們還要先來分析一下真實世界的光照模式。

        光線照射的兩種方式
        想像自己站在陽光明媚的草原上,周圍沒有任何遮擋物。這時太陽是一個直射光源,它直接照亮你的身體和周圍的草地,草地接受到太陽的光照後,會吸收一些光線,並漫反射出綠色的光線(注意,這綠色的光線也是太陽光裏的一部分),這部分光線間接增強了太陽光的強度。如果在這個地方放一把遮陽傘,當你走進傘的陰影裏時,對你而言,太陽光便不再是直射光源,此時照射你的都是來自天空和草地的漫反射光線。為了區別這兩種不同的光照形式,我們把太陽光稱為直射光照,把天空和草地的反射光稱為間接光照,這兩種光我們把它們統稱為入射光,自然界的物體就是被這兩種光照亮的。
        雖然兩種光照產生的效果不同,但它們其實都是來自於太陽的光線,只是光線走的"路徑"不一樣,這就是真實世界的光照方式。在真實的世界裏,天空是不會自己發光的,它必須依靠太陽的光能,而在三維軟體中,通常把天空光也作為一種獨立的光源。因此,在這裏我們把天空光也稱為直射光源,它可以不依靠太陽而獨立存在。由於天空光是一種非常特殊的光源,我們將在下一小節“渲染軟體的光源類型”中詳細介紹它。
        在分析真實世界的兩種光照形式後我們瞭解到,應該還存在一種間接光照。其實依靠傳統的渲染技術是不可能實現間接光照的照射效果的,它需要一種稱之為“Radiosity”的渲染技術。現在一種採用Global Illumination技術實現間接光照效果的軟體正在逐步取代傳統的光照效果,與傳統的光照相比,它的出現從根本上解決了光線照射的兩種方式的問題。首先,我們依然可以使用傳統光源來模擬真實世界的直射光源,然後利用Global Illumination技術可以在前者的基礎之上添加天空光照和來自環境的散射光線。

        光線反射的兩種形式
        我們都知道,當光線照射到物體上時物體會吸收一部分光線,還會反射一部分光線,這個反射光也分為兩種形式。第一種前一小節已經提到過了,就是漫反射。物體表面的固有色就是由漫反射光射入我們的眼睛決定的,在真實世界中,物體除了固有色之外,還應該有高光色,這個高光色就是由於鏡面反射產生的,它往往出現在光滑的表面上。對於鏡面反射,它的原理是,由於反射跟入射光線的夾角相等,所以平滑的表面會把入射光線集中的向另一面反射,這時反射的能量很高,就形成了明顯的高光。但不是所有的物體表面都會形成高光,既然它是由於光滑度產生的,那麼,在粗糙的物體表面,高光就不再有了,那是不是粗糙的表面就不反射入射光線了呢?不是的,是由於反射光線不再集中的向一個方向反射,所以它的能量被分散掉了,整齊的入射光線照在粗糙的表面上被反射到了各個方向,這時由於反射光線和入射光線總是跟表面法線的夾角相等這一特性造成的,這種反射在物理學上稱之為”漫反射“。這樣,鏡面反射和漫反射就形成了光線反射的兩種形式。不要小看這兩種反射形式的存在,它跟三維軟體中的材質有著密切關係。試想一下這樣一幅圖像,有從左到右三個材質球,左邊紅色球體是Lambert材質,在同樣的光照條件下,它的表面上沒有高光,使它看起來沒有旁邊的兩個球體光滑,它模擬的是漫反射的效果;中間黃色的球體是典型的Blinn材質,它有明顯的高光,這個高光就是模擬鏡面反射的效果,黃色的固有色就是表面吸收光線之後散射出來的光色;右邊藍色的球體是一種比較特殊的反射現象,它的材質名稱叫 Anisotropic(各向異性),可以說三維軟體裏的光源是以真實光源為依據的,材質也是一樣。
        在這裏要特別指出的是, Radiosity的渲染技術在計算間接光照的時候,它其實只計算了散射光的間接照射效果,也就是物體表面固有色對周圍環境的影響,對於鏡面反射, Radiosity還是沒有能力計算,它需要Caustic特效才能實現。現在越來越多的渲染程式支援Caustic特效,不過渲染出這種效果往往需要很大的代價(當然是指渲染時間),好在它只會在透明物體和有強烈反射的物體上出現。瞭解了真實世界的光照和反射形式,才能理解渲染程式中光源和材質的重要性,才可以根據場景的需要科學地把握最終的圖像效果。

        自然光源和人工光源
        在我們的生活中,光線無處不在,可是被稱為光源的並不多,因為只有能夠自發光的物體才能稱之為光源。但是在三維世界裏便有了特例,比如月亮,它自己不發光,靠反射太陽的光線來照射物體,嚴格來說它不是光源,但實際上在三維世界它也起到了光源的作用。通常把光源分為自然光源和人工光源。自然光源有太陽、月亮、星光,也包括閃電,甚至連螢火蟲也是。其實在特殊的時刻,自然光照明也是充滿情調的,這種情調往往來自于光源在特定時刻的色調,比如太陽在初出和將要落山的時候,桔紅色光芒照射大地,這時給人的感覺和太陽在正午時分是截然不同的,所以,很多攝影師都避免在正午的時候到戶外攝影,除了會引起曝光方面的問題外,色調與氛圍也是很重要的一個原因。與朝陽的紅***調不同,夜晚的月光總是把世界渲染得神秘、朦朧、和浪漫,所以年輕的朋友一般都會選擇有月亮的夜晚約會(美其名曰“步月”),特別是月圓之夜。
        人工光源的起源可能要追溯到燧人氏鑽燧取火的時代,現在所指的人工光源主要是電燈,可以說,由於人工光源的出現,才會使得照明效果變得複雜起來,它除了給我們帶來光明之外,也為生活增加了些許情趣,所以現在我們對光源的要求已經不以照明為簡單目的了,而是更多地追求它的藝術效果。很多城市都實施過“亮起來”工程,就是用人工光源來裝點我們的城市。其實仔細想想,人工光源在很大程度上實際是在模仿自然光源,比如在迪廳的燈光就象閃電一樣,咖啡屋的燈光就像星光,客廳的燈光很明亮,像太陽一樣,而臥室的燈光也朦朧得像月光一樣………在三維軟體中,光源雖然沒有自然光源和人工光源之分,但都是在模擬這兩類光源產生的,而且越是優秀的作品,越能把握光源的“情感”問題。

        光源的衰減問題
        在使用三維軟體類比光照效果的時候,最難的還不是光線的漫反射和Caustic,因為很多渲染程式都已經把這個過程“人工智慧”化了,難的是正確表現光線的衰減,真實世界的光源是隨著距離的增加按反向平方衰減的,而三維軟體中的光源卻需要我們人為地調節衰減,很多朋友在調節光源的時候忽略了這一步,這是一個非常不好的習慣,特別是在做室內設計的時候,這個問題尤其突出。
        由於很多渲染程式沒有提供Radiosity,所以它不能計算物體表面在接受光照之後,散射光線對周圍物體的影響,因此,如果按真實光源的方式來衰減,那麼場景就會很暗。為了解決這個問題,多數三維軟體都採用了一種折衷的方式,就是用線性衰減,這種衰減方式比真實情況簡單,但存在的問題是光線照射的聚光區不夠真實,也就是由於衰減不夠快使得聚光區產生類似“曝光過度”的現象,特別是場景中有很多輔助光源的情況下更容易發生這種情況。在Lightscape中即使把光源的亮度提高幾倍,它也不會在聚光區產生生硬的光斑,,它總是顯得非常有層次。其實在其他三維軟體中也可以產生這樣的效果,筆者喜歡把光源的衰減由線性衰減改變為反向平方衰減,然後使用Multiplier參數(在 MAX中)或者Intensity參數(在Maya中)來調節光源的亮度,這時光源投射的聚光區會很有層次,當然,要產生好的效果,必須配合相應的輔助光源,而且千萬不要忽視輔助光源的衰減問題。

        知识搜索
        More..
        名人堂
          More..
          艺术展讯
        • 中国美术家网 版权所有 Copyright © meishujia.cn,All right
        • 业务部:
        • 邮编:100069
        • 电话:
        • 技术部:
        • 邮编:100052
        • 电话:
        • 热线:服务QQ:529512899电子邮箱:fuwu@meishujia.cnbeijing@meishujia.cn
        Processed in 0.033(s)   5 queries by cache
        update: