3DMAX燈光的研究
當白色光通過三稜鏡時被折射成七色光,七色光是白光光譜中可見光部分,分別為紅 、橙、黃、綠、藍、靛、紫,簡寫為ROYGBIV,這些顏色中,紅、綠、藍是原色,故光的顏色模型為RGB模型。
計算機屏幕產生顏色的機理也可認為是RGB模型,在大多數繪圖程序中(包括3D Studio MAX)都提供了RGB顏色選擇模式。下圖表示了RGB顏色模型,應當注意的是:光的顏色具有相加性,而顏料顏色具有相減性。所謂相加性是指混合的顏色越多,顏色越淡,而相減性則相反,這一點學過色彩繪畫的人應該很清楚。
RGB顏色模型。有趣的是,將RGB顏色的Multiplier值由1改為-1,顏色就會變成原來的補色,即成右邊的CYM色。
在3DSMAX的世界裡你所見到的場景取決於你照明的方式,呈現出的場景完全由發光對象的顏色和位置決定。事實上要創建一種氛圍,很少只使用白光照明的。若使用顏色成分少的人造燈光會使場景毫無生氣。在劇場裡一般使用純紅、綠、藍、黃、绛紅及藍綠等的多種組合,使某些區域以及許多光柱看起來色彩絢麗斑斓。高飽和度的燈光用起來要十分小心,因為用它來照明常會歪曲事實,例如在煤油燈黃光照明下就分不清土黃和檸檬黃。
3DSMAX的燈
程序中的燈光都是模擬真實世界的燈光模式,如Target Spot是手電筒或探照燈模型,Omni模擬燭光或太空中的太陽光;Directioal Light模擬自然界直射平行太陽光。這些燈都能打開或關閉,改變它們的大小、形狀和位置,改變顏色,打開或關閉影子,設置影子邊緣的柔度,設置哪些物體被所有的光照明,甚至在某些范圍裡使用特別暗的光“吸取”多余的光。
Exlude功能是MAX燈光的第一個特性。它可設定場景中哪些物體受此燈光的影響,哪些不受影響。在一個復雜場景中,有些人為追求效果架設幾十盞燈光,勢必造成某些物體受光過度甚至丟失陰影。將它們排除在一些燈光影響之外可以保持原效果。
Multiplier(倍增器)類似於燈的調光器。值小於1減小光的亮度,大於1增加光的亮度。當值為負時,光實際從場景中減去亮度。“負光”通常用來模擬局部暗的效果,一般僅放在內部的角落,使其變暗,以在場景中產生用一般的光很難獲得的效果。
倍增器可以維護場景中一系列光使用相近的顏色(下圖)。而如果將RGB值相應增加或減小會使樣本顏色不易辨認。
R=255,G=10, B=10,從左至右分別為Multiplier=1; Multiplier=5. Multiplier=10. Multiplier=20. Multiplier=26.
是否使用衰減(attenuatioin)是許多場景成敗的原因之一。MAX的燈光默認是不衰減的,這通常意味著場景將很快變得過亮。記住,在進行室內照明的時候,除了最暗的輔光,所有其他光都要使用衰減。而在實際生活中由於光能量在傳播過程中的散失,光隨距離減弱。需要指出的是在自然界,光按距離平方比的倒數進行衰減,例如在10m處燈光亮度為X,則在20M處亮度為X/4。但在大部分計算機程序中(包括3DSMAX),光的衰減是以線性方式進行的,意即剛才的燈光在20m處亮度為X/2。
光的打法及影響
在3DSMAX中,默認的照明是-X,-Y,+Z與+X,+Y,-Z處的兩盞燈,一旦你在場景中建立了燈光,這兩盞燈自動關閉。
攝影上有幾種照明類型,可以為MAX所用。
三角形照明是最基本的照明方式,它使用三個光源:主光最亮,用來照亮大部分場景,常投射陰影;背光用於將對象從背景中分離出來,並展現場景的深度,常位於對象的後上方,且強度等於或小於主光;輔光常在攝影機的左側,用來照亮主光沒有照到的黑區域,控制場景中最亮的區域與最暗區域的對比度。亮的輔光產生平均的照明效果,而暗的輔光增加對比度。
一個大的場景不能使用三角形照明時,可采用區段照明法照明各個小的區段,區段選擇後就可使用基本的三角形照明法。
對於具有強烈反射的金屬感材質,有時需要用包圍法將燈光打在周圍以展現它的質感,這是比較少用的方法。
光的性質對場景產生強烈影響。刺目的直射光來自點狀光源,形成強烈反差,並且根據它照射的方向可以增加或減低質地感和深度感。柔和的光產生模糊昏暗的光源,它有助於減少反差。光的方向也影響場景中形的組成。柔和的光沒有特定的方向,似乎輕柔地來自各個方向,刺目的直射光有三個基本方向:正面光、側光和逆光。
正面光能產生非常引人注目的效果,當它形成強烈的反差時更是如此。然而這種光會丟失陰影,使場景缺乏透視感。
側光能產生橫貫畫面的陰影,容易顯示物體的質感。
逆光常常產生強烈的明顯的反差,清晰地顯示物體的輪廓。
昏暗、偏冷、低發差的燈光適用於悲哀、低沉或神秘莫測的效果。預示某種不詳之事的發生。換成高發差的燈光可用於酒吧、賭場這樣的場面,在這裡可以強調主要對象或角色,而將其他的虛化。
明艷、暖色調、陰影清晰的燈光效果適於表現興奮的場面,而換成偏冷色調則是種恬靜的氣氛。
燈光特效
3DSMAX中的燈光功能雖然強大,但對一些特殊效果諸如體光、霓虹燈效果、眩光等需要另外的程序或插件來完成。
體光:體光是中常見的現象,電筒光,探照燈,夜晚霧氣中的路燈都是體光的具體例子。體光由光線被空氣中的灰塵粒子散射而形成。在計算機三維世界裡,只有“真空”而沒有灰塵粒子。在Enviornment中可以創建體光的效果。
LumaObject效果
霓虹燈或激光的發光效果不可用燈光來創建,雖然某些情況下可用自發光材質代替,但嚴格來講並不真實。你需要為自發光材質增加Glow效果(Video Post/ Glow)。
眩光實際是攝像機鏡頭產生的光斑,在某種程度上可增加場景的真實性。使用刺目的逆光是拙劣的做法。LensFlare、RealLens以及GensisVFX提供了真實眩光的創建和靈活控制。(LensFlare[MAX自帶]和GensisVFX作為Video Post插件,RealLens以Helper物體形式出現)
光源形狀:3DSMAX不支持真正的線性光源,這意味著做熒光燈照亮時比較困難。使用MAX燈光可以模擬熒光燈照明效果,但效果還不是令人滿意。RealLens提供了一個LumaObject功能,LumaObject使用自發光物體作為光源,並可控制光線衰減,在某種程度上實現了輻射度(radiosity)效果。上圖即是將熒光燈作為LumaObject發光體的效果。注意,這裡只用了一個LumaObject,而且渲染速度極快。事實上LumaObject可使用任何形狀的幾何體或粒子系統作為光源。
陽光模擬:MAX中有個陽光模擬器,在這裡你可以指定具體的經、緯度、時間、季節等創造當地的日照情況。對建築設計、城市規劃、光照分析有其特殊價值,並且參數可動畫以模擬日出日落的一日光照情況。
光線運算
3DSMAX的渲染是種線性掃描渲染,當你為場景設置一個燈光時你會發現這與現實相差地有多遠。在這種渲染方式下,光線不被物體反射或折射,因此不象真實世界裡通常一盞燈能照亮一間臥室,很多人制作一個場景要打幾十盞燈,而制作動畫時燈光數更是嚇人。
同時,MAX提供的Grouraud和Phong濃淡處理算法也是不太准確的,它們估算落在表面上的光,而非准確地計算它。要想完全精確,就需要光線跟綜。
光線跟蹤(ray trace)渲染在表面之間追蹤射線,射線不斷被某些對象表面反射到其他對象表面,直到從場景中消失。光線跟蹤追蹤從觀察點到各個表面的射線矢量。若反射面是鏡面,就會有輔助射線被反射以捕捉反射光的可見部分,若射線遇到另一個鏡面,便又被反射直至射線被彈出場景或被非鏡面吸收。這是典型的光線跟蹤映象重反射的生成過程,因此雖然渲染出來的圖像可能很漂亮,但這也是光線跟蹤渲染慢的原因。
輻射度(radiosity)渲染方法的效果絕佳,但計算量相當大,要比光線跟蹤所用時間都長。光線跟蹤反射只取一個觀察點,被反射的射線最終找到一個結束點,而輻射模型中的反射能量在場景中不斷反彈,能量逐級減弱。在亮光下將一個紅球靠近白牆,在白牆上出現紅色,這就是輻射度效果。
RadioRay是一種結合了光線跟蹤和輻射的渲染器,其真實的光線計算創建專業的照明效果。可用於建築設計、燈光設計、展示設計等多個領域。