《光與硅的藝術(shù)》連載——5.4 Ambient Occlusion(環(huán)境光阻光)

Note:《光與硅的藝術(shù)》寫作于2015年,發(fā)表于2017年,書中部分內(nèi)容可能與當(dāng)前軟硬件實際狀況有出入,請注意區(qū)分。
AO(Ambient Occlusion,環(huán)境光阻光)是一種增加真實感的小技巧,它模擬物體轉(zhuǎn)角處比平坦處更暗的現(xiàn)實效果,能以很低的成本有效地增加圖像的真實感和體積感。VRED提供了兩種環(huán)境光阻光的計算方法。一種是“烘焙AO”,另一種是“光線追蹤AO”。
5.4.1 烘焙AO
不考慮環(huán)境光照特性,根據(jù)幾何體結(jié)構(gòu)進行計算而得到的AO被稱為“烘焙AO”,有別于真正的光線追蹤AO。它的主要用途是增強實時預(yù)覽模式的效果,如圖5-33所示。

優(yōu)點說明
? 可提升實時預(yù)覽效果。
? 一次烘焙,反復(fù)使用。
? 靈活控制阻光半徑。
? 可用于光線追蹤Precomputed(預(yù)計算)模式,以節(jié)約渲染時間。
缺點說明
? 質(zhì)量低于光線追蹤AO。
? 不根據(jù)真實光照計算結(jié)果。
? 無法生成硬陰影。
? 如果需要高品質(zhì)的細節(jié)表現(xiàn),則計算時間十分漫長。
5.4.2 光線追蹤AO
“光線追蹤AO”在VRED中被稱為Occlusion通道,它是使用光線追蹤算法,考慮幾何體結(jié)構(gòu)和環(huán)境光照特性所計算的真實阻光,效果如圖5-34所示。

優(yōu)點說明
? 極佳的渲染質(zhì)量。
? 依據(jù)真實光照計算結(jié)果。
? 可以產(chǎn)生硬陰影。
缺點說明
? 一次計算,無法反復(fù)使用。
? 計算時間較長。
? 缺乏控制的靈活性。
TIPS?關(guān)于AO的其他知識,可參考第3章中“CG技術(shù)知識”的內(nèi)容。
5.4.3 AO結(jié)果查看
如果要單獨查看“烘焙AO”結(jié)果,可在關(guān)閉RT按鈕的情況下執(zhí)行Visualization(可視化)>Ambient Occlusion Rendering(環(huán)境光阻光模式)菜單命令,如圖5-35所示。烘焙AO的效果如圖5-36所示。


如果要單獨查看“光線追蹤AO”渲染結(jié)果,可在激活RT按鈕的情況下執(zhí)行Visualization(可視化)>Renderpasses Rendering(渲染元素模式)>Auxiliary Channels(輔助通道)>Occlusion(阻光)菜單命令,如圖5-37所示。光線追蹤AO的渲染效果如圖5-38所示。


5.4.4 Ambient Occlusion模塊
Ambient Occlusion(環(huán)境光阻光)模塊簡稱AO模塊或AO面板,用于控制場景中的AO和Indirect Illumination(間接光照)烘焙工作。烘焙后的場景可獲得更好的實時預(yù)覽效果,同時,烘焙結(jié)果還能用于Precomputed(光線追蹤預(yù)計算)模式,以節(jié)約渲染時間。
TIPS?再次強調(diào),AO模塊是依據(jù)幾何體結(jié)構(gòu)進行計算的“烘焙AO”,而非Render Settings(渲染設(shè)定)面板提供的基于光照和光線追蹤計算的真實阻光。
AO模塊沒有快捷方式圖標(biāo),可執(zhí)行Scene(場景)>Ambient Occlusion(環(huán)境光阻光)菜單命令,打開它,如圖5-39所示。打開后的AO模塊如圖5-40所示。


Ambient Occlusion模塊常用功能說明
? Settings(設(shè)置):提供系列附屬功能,如預(yù)設(shè)參數(shù)設(shè)定、從現(xiàn)有對象讀取烘焙參數(shù)等,使用頻率較低。
? Direct Illumination(直接照明):注意這里的“直接照明”與“燈光”和“照明”無關(guān),其參數(shù)主要控制AO烘焙功能。
Shadow Quality(陰影質(zhì)量):設(shè)定烘焙AO的陰影質(zhì)量,從Preview(預(yù)覽)到Ultra High(超級高)共分為六檔。越高級的檔位的烘焙質(zhì)量越高,但是計算時間也越長。普通場景預(yù)覽可以使用Low(低)或Medium(中等)質(zhì)量,為了追求更高質(zhì)量也可使用更高檔位,但需要付出額外的計算時間。
Minimum Distance(最小距離):最小烘焙距離。請保持默認1.00,以獲得良好的細節(jié)結(jié)果。
Maximum Distance(最大距離):最大烘焙距離。默認參數(shù)為3000.00,幾乎適合所有汽車場景。如果你認為烘焙的AO陰影范圍過大,可以適當(dāng)調(diào)小這個數(shù)值。
Clear All(清除全部):刪除選定對象所有烘焙信息。
Clear Active(清除當(dāng)前):刪除選定對象烘焙信息。
Indirect Illumination(間接照明):該部分參數(shù)用于烘焙間接照明。
Enable(啟用):打開間接照明烘焙。將這個選項保持關(guān)閉即可。
TIPS?對于外觀表現(xiàn)而言,間接照明對最終效果影響不大,同時最終渲染輸出會使用Full Global Illumination(完整全局照明)模式,所以不建議預(yù)烘焙間接照明,這樣可以節(jié)約場景準備時間。
? Subdivision(細分):VRED烘焙質(zhì)量與幾何體網(wǎng)格密度有著明確的正相關(guān)關(guān)系,所以,如果幾何體網(wǎng)格密度不足,那么就無法烘焙出優(yōu)秀的結(jié)果。細分能大幅增加幾何體表面的網(wǎng)格密度,使烘焙得到更細膩平滑的結(jié)果;但細分過程會消耗一定時間,且增加幾何體面數(shù)。
Enable(啟用):打開細分功能。
Quality(質(zhì)量):設(shè)定細分質(zhì)量,有Low(低)、Medium(中)和High(高)三個可選,質(zhì)量越高,耗時越多。
Minimum Edge Length(最小邊長):設(shè)定細分的最小邊長,即小于此長度的幾何體邊不會被細分。通常使用默認值即可。
Intensity Threshold(強度閾值):設(shè)定細分的強度限值,通常不建議修改,否則可能會造成夸張的計算量。
? Calculate All(計算所有):使用當(dāng)前參數(shù)為選中對象重新計算烘焙結(jié)果,而不考慮它是否已經(jīng)被烘焙過。
? Calculate Missing(計算丟失部分):使用當(dāng)前參數(shù)為選中對象計算烘焙結(jié)果,如果選中對象已有烘焙信息,則跳過計算。
? Cancel(取消):取消烘焙計算。
TIPS?當(dāng)烘焙計算開始后,進度條將顯示烘焙進度。但是應(yīng)注意,烘焙過程中軟件有可能假死,所以,不要完全相信進度條所顯示的工作進度。