在我的作品 fake HDRI http://www.cg-forum.com/main/album_page.php?pic_id=120 中標明了是依靠合成的方法來做, 我已經完成一個簡陋的教學, 在這裡分享一下吧!
以下的cg用語以maya為基准
前言:
現在的3d 軟件有 rendering in layers 及 rendering in passes 的功能, 有些人可能會把這兩個名稱搞亂了.
Rendering in layers:
是把同一個場景中不同的物件分拆出來渲染(render), 在我的作品中, 右手邊及後方的熊便是分開渲染, 因為他們的質感及深度不同, 在後期中我可以很方便地個別調教.
大部份的制作也會把前後景及人物分開渲染
Rendering in passes:
在同一場景/物件當中, 把不同的屬性 (attribute) 分拆出來渲染. 以下是一些例子.
Pass types:
Colour pass - 又稱為 beauty pass 或 diffuse pass. 這是一個最基本及主要的pass, 包含了物件的顏色, 顏色貼圖和擴散光照(diffuse illumination), 通常不會有高光及反射的. (Fig.1 上中)
本人有時候會連擴散(diffuse)也拆出來, 所以diffuse pass 可以獨立為一個pass
Hightlight passes - 又稱為 specular passes, 只渲染物件的高光(specular). 在 Maya 裡把燈光屬性中的 emit specular 勾選, emit diffuse 留空就可以. 或者在材質(material) 裡把colour, ambient 和 diffuse 貼上黑色也可.
本人喜歡用反射來模仿高光的, 因為這樣較接近真實環境及物理學上的理論
Reflection pass - 把附近的物件及環境透過反射渲染出來, 在Maya Render Global 裡 Raytracing Quality 中勾選 Raytracing, reflection 欄內填上8-16, refraction 及 shadow 填0. 在材質裡有一個raytrace option 的選項, reflection limit 填 2-4. (Fig.2 reflection limit 的比較, 請注意紅圈內的反射; Fig.1 下中, 是地板的反射 pass)
以上兩項是用來限制raytracing 計算的次數, 日後再詳細解釋吧!
Shadow pass - 通常是把物件落在地上或背景的陰影獨立渲染. 在maya裡, 渲染陰影有較多地方要注意, 首先背景顏色要白色. 背景或者地下要建立一個新的材質用來給物件投影, 建立一個use background 材質, 把specular color 設為黑色, reflectivity 和 reflection limit 設為0. 物件要關掉 primary visibility (見Fig.3; Fig.1 下右 raytrace shadow pass)
Depth pass - 又稱為 depth map or Z-depth, 裡面每點也包含了場景中深度的數值, 不過這需要用上特別的 file format 及軟件才可運用, 普通的用家用模擬的方法來渲染標准的圖像便可. (Fig.1 下左)
Effects passes - 視符情況的需要, 一般指 optical effect (light fog, lens flare), particle effect (smoke, dust).
Mask pass - 因應物件本身的不同材質, 渲染遮罩(mask)以方便在合成中作出更多調教 (Fig.1 上右)
下篇續......