Maya的燈光類型一共有六種,分別是環境光源,平行光光源,泛光燈光源,聚光燈光源,面光源,體積光源。用這六種基本光源,可以模擬各種各樣的燈光。
有燈光就會產生陰影,在3D軟件中的陰影是可以控制的,可以選擇哪些燈光打開或者關閉陰影,也可以選擇陰影產生的兩種技術:Depth Map Shadow(深度貼圖)或者Raytrace Shadow(光線追蹤),還可以設置陰影的顏色。陰影的顏色需要注意的是現實生活中的陰影并不是純黑色的,所以在設置陰影顏色的時候需要把亮度稍微提亮一些。使用陰影貼圖的方式計算陰影,好處是速度比較快,但是這種方式只能得到一個以貼圖方式計算出來的假陰影效果。參數如圖1所示
其中Resolution是解析度,用于控制陰影貼圖的精度,一般來說,設置的大小與產生陰影面積大小成正比,但是值越大計算時間也越長。Filter Size濾鏡大小,值越大陰影就越柔和。Bias偏移值,是解決陰影出現柵格時用到的參數。

圖2中顯示出Resolution與Filter Size設置值的區別,可以看到,Resolution值越小,陰影的顆粒現象也越明顯,而Filter Size值越小,陰影的邊緣越銳利,反之則越柔和。下面再看陰影的另一種計算方式——Raytrace(光線追蹤)。


圖3是燈光的Raytrace Shadow面板,一共有Light Radius(燈光半徑),Shadow Rays(陰影射線數),Ray Depth Limit(射線深度限度)三個參數,燈光半徑可以改變陰影邊緣的模糊程度,陰影射線數實際上是通過控制光線計算的精度來調整陰影邊緣顆粒度。射線深度限制實際上是一條光線可以被反射或者折射的最大次數。當這個數值不能達到物理反射應有的折射次數時,很有可能導致光線無法穿過折射物體,比如玻璃,水,等等。

圖4是一個透明物體分別使用兩種陰影計算方式來得到陰影,可以看到在計算透明物體的陰影時,貼圖方式的陰影已經出現錯誤,而光線追蹤方式是可以得到真實的透明陰影的。
在現實生活中,光線直接射入觀察者的眼睛或者鏡頭時,光源可能會有一些“閃光”出現,在某些情況下燈光會從鏡頭的復合透鏡中發生折射和偏移,形成鏡頭光斑,在Maya的燈光模塊中也提供了這樣的光學特效的節點OpitF/X。

圖5是在燈光屬性面板下的Light Effects子面板,可以看到Light Glow的接口,點擊右邊的連接按鈕軟件會自動創建OpitF/X節點并與燈光連接,在節點面板中有多種輝光以及鏡頭光斑可以選擇,渲染效果如圖6所示。
在現實世界中,光線是嚴格按照直線傳播的,而為了達到所需要的效果,往往希望某一盞或者一組燈光,只照亮場景中的某些物體,在Maya中可以通過燈光連接來做到。Maya中的所有燈光都有一個Illuminates by Default的選項,如果不勾選此項,則燈光不照亮任何物體,除非手工將它連接到某個物體上。連接燈光有以物體為中心和以燈光為中心兩個選項,可以在Light/Shading菜單下的Light Linking Editor中找到。如圖7所示,分別是以燈光和物體為中心的連接面板,分別點中兩邊的燈光和物體,可以取消或者建立燈光與物體之間的連接。
在現實世界中,光線遇到物體后有的并不會完全被吸收,總會有一些光線或多或少地反射出來,這些被反射的光線又可以照亮其他物體,同時這些反射的光線又會攜帶上反射體的顏色,從而影響它照亮其他物體的固有色。使用Maya的默認渲染器是渲染的直接照明,是無法獲得上述效果的。所以用直接照明模擬間接照明需要布置很多燈光并掌握一定的燈光技巧,但是Maya集成了MentalRay渲染器的間接照明技術可以很好的解決這些問題,比如Global Illumination(全局照明)、Caustic(焦散)、Final Gathering(最終聚集)、Image based Lighting(基于圖像的照明)和Physical Sun and Sky(物理天光)等方法。
全局照明是使用從光源發射出攜帶能量的光子進入場景后與模型碰撞,并且根據碰撞表面的材質屬性而變化(折射、反射或吸收),每個光子都攜帶一定的能量,在碰撞過程中能量也隨之消耗。每個光子在能量耗盡而消失前的碰撞過程會被記錄跟蹤并用于計算最終的場景渲染。光子的相關信息最后存儲為光子圖(Photon Map)。在Maya中要產生Global Illumination的效果需要打開燈光的發射光子選項以及選擇MentalRay渲染器并打開全局照明選項。


Photon Color是光子顏色,場景中色彩主要取決于光子的顏色,而燈光顏色只能改變場景中被主動照明的物體以及陰影的顏色。Photon Intensity光子強度,該值對渲染速度影響并不是很大,Exponent衰減指數,大多數情況取默認值2效果就很好。Global Illum Photon光子數量,該值對渲染時間的影響很大,需要逐漸調節,光子數量過小會產生光斑。當增大光子能量的同時,也需要對光子數量進行調節,避免光斑的出現。渲染面板中Accuracy(精確度)設置可以使圖像的畫面更細膩,但是也同樣會增加渲染圖像的時間,調整時也需要逐漸增加。如圖9所示,左上角是使用Maya默認渲染器得到的圖像,可以看到在光線照不到的地方都是一片死黑,右上角打開全局照明,使用默認設置得到的圖像,可以看到明顯有太多的光斑,這是由于光子數量不夠造成的,左下角是設置好光子數量以及光子能量得到的圖片,可以看到整個場景都被照亮了。右下角是光子顏色設置為藍色,燈光本身顏色設置為黃色,整個場景呈現的是光子顏色,而在物體能夠被燈光直接照亮的地方,顏色和燈光顏色相近。需要注意的是光子數量與場景大小,材質等都有關系,需要慢慢設置,當設置好光子數量及能量之后,如果燈光的位置方向以及光子顏色都不再改變,可以在渲染設置中找到Photon Map選項卡,取消勾選Rebuild Photon Map,勾選Enable Map Visuallizer,這樣在每次渲染過程中不會重新計算光子圖,而是讀取之前保存的光子圖,可以有效節省渲染時間。
Final Gathering(最終聚集)同樣也是用來模擬間接照明的,但它的效果并不是物理精確的,所以渲染速度比Global Illumination來說要快一些,Final Gathering不需要燈光發射光子就可以計算出間接照明。渲染器會沿著一條從攝像機發出的射線(這條射線實際并不存在),當這條射線與模型產生交點時,在該點發射一些以該點的表面法線為軸心、半球狀分布的采樣線,這些采樣線傳輸并返回給攝像機的過程會存儲在一張Final Gathering Map中,和Photon Map類似,這兩種圖都可以在渲染設置中使用Map Visualizer功能。要實現Final Gathering效果,需要在全局渲染設置中開啟即可。如圖10所示,在渲染設置中選擇MentalRay渲染器,然后在Features面板勾選Final Gathering選項,就可以使用最終聚集來模擬間接照明了。


現在只使用Final Gathering為整個場景提供照明的方式變得越來越普遍,因為其效果柔和、自然,渲染時間相對于光子也比較短,只用最終聚集計算場景間接的主要方式有兩種:一種是給場景中某個物體A(通常是光板)的表面材質的非照明顏色指定一個亮度較高的數值或者紋理,然后場景中的其他物體通過Final Gathering采集光板表面上的照明能量。如圖11中,左上角是場景中模型以及攝像機的擺放,在小球的上方擺放了一張白色光板,在使用Maya默認渲染器得到的是右上角的圖片,打開MentalRay的最終聚集之后,可以看到小球上反射的光板形狀,將光板切割之后,小球上的光板形狀也隨之發生改變,很像擺放在一個有窗戶的房間里。
另外一種是為整個場景指定一個環境SHADER,然后場景中的所有物體通過fg采集環境中的照明能量,進而被照亮并顯示在渲染圖像中。如圖12所示,首先在渲染設置的iNDIRECT lIGHTING面板中創建iMAGE bASED lIGHTING,然后選中這個節點,指定一張hdri圖片(hdri是一種亮度范圍非常廣的圖像,比其他格式的圖像有更大的亮度的數據存儲。而且記錄亮度的方式與傳統的圖片格式不同,不是用非線性的方式將亮度信息壓縮到8或者16BIT的顏色空間內,而是用直接對應的方式記錄亮度信息),可以看到場景中并沒有設置任何燈光,同時將默認燈光關閉,渲染得出的效果如右下角所示,通過fg可以采樣到環境圖片上的亮度信息從而將整個場景照亮。


Maya還有一種間接照明的方式是Caustic,即焦散。焦散與全局照明類似,也是借助光子實現的:光子從光源發射出來后,必須先與(一個或者多個)Specular表面發生相互作用(反射或者折射),然后在投射到Diffuse表面上,這樣就形成了焦散。比如放大鏡會把平行光聚焦在某一點上。要實現焦散首先要在渲染設置里面勾選焦散開關,并且燈光要發射光子,如圖13所示。

Maya的燈光模塊功能非常全面,能夠通過布光用直接照明來模擬間接照明,如傳統的三點式布光(即主光,輔光,背光),也可以進行球形狀布光,并且還可以有全局照明,最終聚集,焦散等方式模擬間接照明,這些間接照明的方式中以最終聚集使用最廣泛,盡管算法并不是物理精確,但是其渲染時間相對較快,效果相對柔和的優點完全可以彌補。而全局照明和焦散由于渲染時間長,并且不易掌握,需要根據場景不斷的測試才能得到比較理想的效果。
當然要設置好燈光同樣需要根據場景的設定,畫面需要表達的意境或者效果來確定燈光的布置以及設置冷暖色調,但是由于數字燈光在軟件中設置更為方便靈活,比如可以通過燈光連接來管理燈光需要照明的物體,也可以打開或者關閉燈光的陰影,這些都是在現實燈光中無法做到的,作為Maya的燈光師,首要的職責是設定全局燈光氛圍,負責場景的整體效果以及氛圍,如果在這個環節上產生不恰當的燈光,對于整個作品來說是毀滅性的,這些都需要在實踐和練習中不斷積累經驗,其次由于材質和燈光密不可分,所以大多數燈光師都會根據場景的大小來承擔一部分材質的任務。當渲染測試完成之后,還需要對燈光素材進行歸類整理,以確定提交給動畫或者渲染時準確無誤。養成觀察的良好習慣,堅持不懈的練習才可以做出更好的燈光。