比如,一束光照射一個透明的玻璃球,由於球體的表面是弧形的,那么在球體後的投影表面上就會出現光線明暗偏移,這就是“焦散”。焦散的強度與對象的透明度和對象與投影表面的距離、光線本身的強度有關。
焦散是三維軟體中的一個名詞,它主要在後期渲染的時候,才會被提及。它的主要作用就是產生水波紋的光影效果,為了達到真實的效果,它可以計算很精緻、準確的光影。但是好的效果,都是要付出渲染時間的,它的渲染是很費時間的。
焦散現在被用於很多渲染外掛程式中,現在的幾種主流渲染外掛程式中都會發現它的身影。其中在MENTAL RAY中表現的突出。無論是建築方面還是動畫、遊戲的渲染過程中都起了重要的作用。它可以模仿真實的鑽石、瑪瑙等貴重物品的成色。
VRay表現也很不錯,有焦散之王的美譽。
VRay是目前業界最受歡迎的渲染引擎。基於V-Ray 核心開發的有VRay for 3ds max、Maya、Sketchup、Rhino等諸多版本,為不同領域的優秀3D建模軟體提供了高質量的圖片和動畫渲染。
焦散是一種很容易識別的間接照明效果。焦散的產生原理其實很簡單:間接照明光線(即光子)從光源發射出來後,先經過一次(或多次) Specular 表面反、折射作用,再投射到某個Diffuse表面上,最後以Diffuse的形式被攝影機 記錄 。此過程中的Specular表面被稱為 焦散投射物體 ,Diffuse表面稱為 焦散接收物體 。
---------------------------------------------------------------------------
焦散計算的必備條件
* Window - Rendering Editors - Render Settings視窗 - Indirect Lighting標籤 - Caustics部分中的Caustics選項必須打開。
* 光源形節點屬性編輯器 - mental ray - Caustic and Global Illmination部分中的Emit Photons選項必須打開,激活光子發射功能;並利用Photon Color 和Photon Intensity兩個屬性為光子設定恰當的能量值。注意,要實現物理學精確渲染,光源的直接照明必須與光子能量一樣,按 距離平方的反比 的形式進行衰減。(建議使用符合物理學精度的直接照明燈光Shader ,比如physical_light,並讓燈光Shader中的直接照明能量與光子能量值保持相等。)
* 必須在 焦散投射物體 及 焦散接收物體 的材質定義中指定 Photon Shader。(在材質組屬性編輯器 - mental ray - Custom Shaders部分中)。光子的反射、投射、吸收和儲存全部由Photon Shader控制。
* 焦散投射物體 的材質定義中避免含有Shadow Shader,避免直接照明光線 穿透 物體照射到它的後方,因為開啟間接照明後,這部分照明功能已經被間接照明涵蓋,如果繼續使用Shadow Shader,極易造成渲染的照明過度。
* 焦散投射物體 的表面材質定義中必須包含Specular傳播成分,且占各種傳播部分(Diffuse、Glossy、Specular)中的大部分。除非必要、儘量把 焦散投射物體 表面材質中的 Diffuse及Glossy傳播成分降低到最小,或設Diffuse=Glossy=(0, 0, 0)。
* 如果 焦散投射物體 是透明的,並且希望對焦散光子產生折射作用,那么它材質定義(包括表面材質Shader和光子Shader)中的Index of refraction(折射係數)應該大於1.0,比如,玻璃的折射係數為1.5左右,鑽石折射係數為2.4,這樣可以對光子產生 聚焦效果,使它們聚集在一起形成明亮的光斑。
* 焦散接收物體 的表面材質定義中必須包含Diffuse成分,否則不會對焦散光子進行任何儲存和吸收。
---------------------------------------------------------------------------
焦散計算的質量控制屬性
* 提高焦散質量與精度的最根本辦法就是提高焦散光子的儲存數量,即提高光源形節點屬性編輯器 - Caustic and Global Illmination部分鐘的Caustics Photons的數值。儲存的光子數量越多,質量越高,但速度也會越慢;儲存的光子數量越少,計算的越快,但效果越模糊。Caustics Photons通常的取值範圍是1萬到100萬之間。
* 默認情況下,場景中所有指定了Photon Shader的物體都可投射、接收焦散。但實際套用中,往往並不需要所有的物體都參與到焦散的投射、接收計算中來,此時可以進行以下設定:
window - Rendering Editors - Render Settings視窗 - Options標籤 - mental ray Overrides - Global Illumination/Caustics部分中,設定 Caustics Generating = none(默認值) , Caustics Receiving = None(默認值).
關閉GI物體的 變換 節點屬性編輯器 - mental ray - Flags部分中的Derive from Maya選項,然後為 焦散投射物體 的Caustics屬性指定Cast only(僅投射)或Cast+Receive(投射又接收)選項;而為 焦散接收物體 的Globillum屬性指定Receive only(僅接收)或Cast+Receive(投射又接收)選項;而把焦散沒有任何影響的物體的Globillum功能關閉,即,設Globillum=Disabled。
* 如果焦散渲染後的 顆粒化 效果十分明顯,可以調整以下選項:
Window - Rendering Editors - Render Settings視窗 - Indirect Linghting標籤 - Caustics部分中Caustics屬性下面的Accuracy及Radius兩個數值進行質量調整。
* 用 Window - Rendering Editors - Render Settings視窗 - Indirect Linghting標籤 - Caustics部分中Scale(比例)屬性,控制焦散效果在渲染圖像中的比例。
* Window - Rendering Editors - Render Settings視窗 - Indirect Linghting標籤 - Caustics部分中的Caustic Filter Type(焦散過濾類型)Caustic Filter Kernel(過濾核心大小)。
Caustic Filter Type與Caustic Filter Kernel的主要作用是為參與 當前渲染採樣點 間接照明計算的各個光子記錄點指定不同的權重值。
BOX過濾方式為所有參與計算的光子點指定相等的權重值。Cone和Gauss為距離(當前渲染採樣點)較近的光子點指定較高的權重值,而為那些距離(當前渲染採樣點)較遠的光子點指定較低的權重值。
Cone與Gauss過濾方式下,計算出的焦散間接照明值更 銳利 ,局部化 效果更明顯,因為距離越近的光子,越能代表採樣點的真實間接照明狀態,而Cone與Gauss過濾方給近處的光子指定了較高的權重值,所以,計算出的焦散效果更精確,但渲染時間也會更長。
Caustic Filter Kernel值在Cone和Gauss過濾模式下才能發揮作用,該值越大,就會有越多的光子得到高權重值,平均化效果就越明顯, 銳利 程度也會越低。當數值大到一定程時,效果就會變得與Box基本相似。
* Window - Rendering Editors - Render Settings視窗 - Indirect Linghting標籤 - Photon Tracing部分中的Photon Reflections(光子反射次數)、Photon Refractions(光子折射次數)、Max Photon Depth(最大光子深度)。
這三個屬性控制光子的最大反、折射次數,及反折射次數的總和。
* 另外Merge distance屬性,它可以把場景世界坐標空間系統中,指定距離內的光子合併到一起,這個 指定距離 就是Merge distance的屬性值。對於那些光子分布很不均勻的場景,該屬性可以減少光子圖的大小,降低記憶體的使用量,同時,也可以在一定程度上加快光子圖的查找與計算過程。