2009/07/01

Bokeh Effect with mental ray 散景效果


Bokeh散景(源自日文,暈け 這個詞 意思是“模糊”或“煙霧” )是一個攝影術語,指的是在使用淺景深鏡頭時所產生的點光源的失焦 效果, 不同的鏡頭會產生不同美感的散景, 這往往被用來讓觀賞者減少 對主題的分心。---Wikipedia

這篇是根據Wikipedia3DS MAX RENDERING網站上的文章翻譯文. 上圖不爽的貓是筆者以Panasonic L1 搭配Leica D Summilux 25mm F1.4 鏡頭攝於石牌的一家越南料理店. Leica 這支大光圈的鏡頭即使在照度不足的室內還是能有明亮的畫面與美麗的散景(Bokeh). 現實生活中以大光圈鏡頭能產生美麗的散景, 如果是在3DCG的環境呢? 除了Cebas FinalDOF具有模擬Bokeh的功能, 其實3ds Max 2008的metal ray就能表現這樣的寫實效果了, 只不過這個shader預設是被隱藏起來的.

上圖攝於台東的布農部落, Panasonic L1透過Leica鏡頭能表現出美麗的後散景(注意看骨駭的背景)與前散景(腳踏車的後車燈)效果.


---以下翻譯自Wikipedia網頁---

Bokeh的起源
前攝影技術雜誌編輯---Mike Johnston先生他提議將原本源自日文的boke 正確更名為bokeh, boke這個字是從1996開始自日文裡面的”模糊”那個字所演變出來的用字。發音是暈け (bo-ke)。 bokeh這個詞至少在2000年的攝影雜誌就有出現了。

Bokeh是什麼?
它是一種極淺的景深,常見於微距鏡頭所拍攝的照片中,會強化散景. 景深是說”circle of confusion”比人眼所能解析的還要小的狀況。圓直徑小於circle of confusion則是在對焦狀態內。雖然難以量化,有些鏡頭能夠藉由產生令人喜歡的失焦效果,被稱為散景。散景常見於大口徑的鏡頭,微距鏡頭,和望遠鏡頭。散景常見於中段的遠攝人像鏡(通常是85–150 mm的35-mm規格),因為攝影師會喜歡淺的景深(大光圈),產生失焦背景而使主題突顯出來

散景可經由circle of confusion來量化。在失焦的區域,每一個光點會成為光圈的形狀,通常看起來會是圓形的。這要根據鏡頭是如何校正的球面像差(spherical aberration),這個圓形可能是均勻受光,或是在邊緣附近較亮,或是在中心區域較亮。如果鏡頭的鏡頭球面像差做的不好的話 會在對焦平面的前面產生一種失焦的圓圈 在後面產生另一種失焦的圓圈; 而有時候這種現象反而是讓人想要的效果 因為在圓圈的周圍如果比較暗 則這樣的圓造型不明顯比較會跟背景融合在一起. Nikon, Canon,與 Minolta等這幾家製造商會刻意改變失焦的位置產生生產特殊鏡頭。

光孔(光圈)的形狀對bokeh的品質有很大影響。當鏡頭已調整到最大光圈的時候,失焦的亮點會呈現出多邊形的樣子,而不是完美的圓圈。在某些品質差的鏡頭中,會產生硬邊的散景,因此,有些公司會生產具有曲線的光圈葉片,使光圈更接近成為一個圓,而不是多邊形。鏡頭設計者還可以增加葉片,以達到相同的效果。傳統的人像鏡,如85mm 焦段的35mm 相機常常配有幾乎是圓形的光圈葉片,例如Canon's EF 85mm f/1.2L II lens 與Nikon's 85mm f/1.4D這兩個型號的鏡頭幾乎是業界翹楚。catadioptric telephoto鏡頭會產生甜甜圈狀的散景,因為它的二級反光鏡會把光圈中間的部份給遮住。

徠卡鏡頭(Leica lenses),尤其是老式的,是以優美的散景著稱,雖然使用萊卡的攝影師們往往會用最大光圈,因為萊卡的最大光圈仍然能維持良好的銳利度,而這樣的鏡頭很適合用在紀實攝影(available-light theatre work and reportage)。事實上我們還需要更多的證據,才能確定徠卡的鏡頭設計師是否故意要產生優美散景的鏡頭。Minolta/Sony STF 135mm f/2.8這顆鏡頭當初設計就是要產生優美的散景效果。添加了一個變跡濾鏡(apodization filter)是用柔化背景的亮點邊緣的。這是目前市場上唯一能達到這樣效果的鏡頭。

---翻譯完畢---

---以下翻譯自3DS MAX RENDERING網站---
原作者是RAMY HANNA HOUSTON

Bokeh Effect
這是攝影師常會看到的一個現象,而我這幾天很迷Bokeh效果。最近我想用電腦算圖來模擬出這樣的效果。簡單地說,就是在糢糊的背景裡面,點光源的亮度會比周遭的物體還要更亮。

其實在3ds max 2008裡面有個簡單的方法就可以做到Bokeh Effect 。其實Autodesk早就研發了『mia_lens_bokeh shader』這個shader。它是在architectural_max.mi檔案裡面的一個隱藏版的shader,不但可以用來產生景深效果,還能產生色差特效(chromatic aberration)。你可以用文字編輯器打開architectural_max.mi這個檔案,裡面有mia_lens_bokeh這幾個字 ,請在hidden前面插入一個#符號。重新啟動max後當你點擊Lens shader時你就會看到這個隱藏版的shader了。別忘了把它拖到材質編輯器當中才可以編輯它的參數喔。

上圖表現出很極端的景深效果。請注意如果你勾選了camera的Multi-Pass Effect時, Bokeh Effect就沒辦法表現出來。換句話說,就讓shader來處理景深效果就好了 不要在camera那邊設定。只用shader的話計算還可以快一點。如果您不小心勾選了camera DOF,Bokeh Effect會套用在camera DOF之上,如此會讓結果過度模糊。如果你想要刻意顯示出光圈的葉片效果,你要把採樣提升至64。

---翻譯完畢---

[相關文章]


2009/06/30

VRay RT即時算圖引擎

mental ray, Finalrender, Brazil, Vray...任何一套算圖軟體, 其實專案有很大的一部分是消耗在調整燈光強度與材質效果. 執行專案有個特性是 燈光, 材質是會交互影響的 往往問題是燈光調好了 材質還要在微調一下, 反之亦然; 如果這時候再加入另一個參數----曝光控制與白平衡...那又會花更多的時間來來回回調整材質與燈光配置.

Autodesk 3ds Max軟體自2008版本開始就在即時算圖方面下了功夫, 3ds max 2008版本支援realtime shadow與Mentalray physicalsky可以即時顯示在背景, 對於調整燈光陰影很有幫助; 3ds max 2009則是進一步支援realtime IES燈光效果 對於建築室內裝潢表現十分有用; 到了3ds max 2010又增加了Realtime AO, softshadow的功能(如下圖), 不過這類型的即時算圖, 應該是稱為hardware rendering主要是靠顯示卡計算的, 會有以下三個缺點:
  1. 必須要有好的顯卡支援 通常是跟晶片配合shader language
  2. 用即時算圖算出來的效果 與傳統算圖引擎算出來的效果沒辦法完全一樣
  3. 必須要搭配特殊材質設定才能正確地表現出質感 (ie: mental mill的材質球)
一個角度來看, 某些產業最終照片級的效果並不是重點 重點反而是調整的過程 能夠讓客戶(或是工業設計師ID) 即時反應與修改. 於是市面上便推出了數種即時算圖的軟體 請見以下比較表:

HyperShot

Artlantis Studio

Linceo VR

Rendition

VRay RT

支援 HDRI

Yes

No

Yes

Yes

Yes

支援GI

Yes

Yes

Yes

Yes

Yes

Reflection

Yes, Raytrace

Yes, Raytrace

No, only the reflection map

Yes, Raytrace

Yes, Raytrace

Refraction

Yes

Yes

No

Yes

Yes

以材質作為光源

Yes, 但是是透過隱藏的功能

Yes

No

Yes

透過VRaylight材質球

支援毛髮表現

No

IES燈光支援

Yes

3S效果

No

No

No

Yes

No

曝光控制效果

Yes

DOF景深效果

Yes

No

Yes

Yes

Yes

提供材質

Have

Have

Have

Mental Ray shaders

支援大部分VRay材質與maxmap

可編輯模型

Yes

Yes

Yes

No

Yes

支援格式

3DS, FBX, OBJ, SKP (SketchUp), 3DM (Rhino), Pro / E, SolidWorks, STEP, IGES

3DS, FBX, OBJ, SKP (SketchUp), GS1 (Arc +), DWG

3DS, OBJ, WRML, 3DM (Rhino), STEP, IGES

MI (scene file exported 3DMAX, Maya, XSI, and some others)

直接在3ds max當中使用, 不需要轉檔

適用產業別

能夠與CAD-software有很好的交換

建築與室內

3D視覺化產業

支援多核心

Yes

Yes

Yes

Yes

Yes

特殊功能

模擬真實天光

可用來產生動畫

CPU-based的計算, 不需要特殊搭配顯卡; 可透過網路算圖利用多台電腦進行即時運算

製表人: Hammer Chen; 參考自俄文網站CASKET CAR2NER'A

因為工作的關係能夠第一時間拿到Choas Group VRay RT這套軟體, 以下是相關測試資料供網友參考:
如上圖, VRay RT在使用上相當簡易, 你只要在ActiveShade將算圖引擎設定為VRayRT即可, 但是要注意的是, Production render的算圖引擎還是要定為VRay, 至少要SP3版本才能夠與VRayRT搭配使用. (註: VRay RT目前支援3ds Max 9, 2008, 2009與2010版本)

VRay RT介面上並沒有太多選項可以讓你選; Trace depth, GI depth可以調小一點 這樣算玻璃等折射材質會快一點 不過不建議去動它; Show statistics顯示統計資訊, 讓你可以知道計算多久了; 另外這裡你還可以看到vrscene export輸出vray場景檔 (跟mental ray獨立版有點類似的感覺)

VRay RT到底是靠怎樣的原理 讓它可以算的如此飛快? TensSun兄這篇文章似乎透露了一些端倪:
...在之前看到RT的展示影片時
大概就能看出他是用lightcache演算法
RT很像是把lightcache變成被動技能
再做一些最佳化之類的...
既然是利用lightcache計算的, 那當然也具有lightcache的某些缺點: 比方說計算bump map效果不明顯, 必須使用VRay材質球 (註: 使用其他材質球有時候沒辦法即時更新效果或是顯示貼圖), 動態模糊可能計算不正確...等, 請參考作者之前寫的"Vray的全局照明(Global Illumination)演算法原理與比較" 裡面有詳細說明.

儘管如此, VRay RT仍然是相當不錯的即時算圖軟體 因為它可以直接整合到3dsmax裡面 不需要轉換模型 燈光; 也不需要套用特殊材質. 導入VRay RT到既有的工作流程當中 幾乎不用再做特殊的設定就可以看到即時算圖的效果. 以下是一些實際使用的範例(場景檔取自VRay簡體書籍的範例光碟)

如圖, 透過VRay Physical camera, 可以像玩單眼那樣調整光圈, 快門, 白平衡與景深 (註: 與其它算圖引擎不同, 這裡如果改變f-number也會影響到景深效果). VRay RT還有個特性就是continues rendering 持續的計算, 在active shade畫面中如果你不去動它, VRay RT會自最粗略的品質開始計算 然後越算越細, 永不停止. 所以如果你把Active shade的解析度設定為2k的話 或許在經過20分鐘的計算後, VRay RT的計算結果就可以當做最終的效果圖(Production render); 而Chaos Group所強調---VRay RT與VRay是共用計算核心的, 就是這樣的概念.

VRay RT在經過1.2秒, 32.7秒, 1分2秒, 2分8.5秒後的算圖效果. 可以看到在點擊Active shade的瞬間就可以看到間接照明與景深的效果, 隨著計算時間增加品質越趨細緻.

VRay RT在經過1.5秒, 32秒, 2分2.7秒後算出來的效果. 上圖SONY HDV打了一盞HDRI光源, 兩盞VRay light. 對於工業設計等商品, VRay RT幾乎在30秒內就能算出產品的光線變化與質感表現了.

VRay RT在經過2.3秒, 55.6秒, 2分40秒算的室內表現圖. 上圖是一個典型的室內設計場景, 共打了5盞area lights與數盞omini lights; 有經驗的都知道area light的陰影最漂亮也最寫實 但是需要花很多時間計算. 除了複雜的燈光外, 場景中還有需多反射模糊的木紋 玻璃桌几上的玻璃杯等需要消耗大量計算的物體.

整體而言, VRay RT用起來的感覺是很實在的, 它算出來的效果幾乎跟原廠在一年前發布的兩段影片(汽車與室內設計)是一樣的, 不像某些軟體會在預告片裡面加油添醋. 對於ID工業設計表現而言這套算圖引擎幾乎是必備的工具 幾乎可以即時(大約有幾秒的等待時間)看到材質/光線效果; 對建築室內表現而言 適當的最佳化場景還是必要的 (在測試大塊燈光 材質時 可以先把一些小物件隱藏起來 加快VRay RT的計算) 由於可以即時看到area light, vraylight material, IES燈光, 模型面數較少的展場公司應該能夠把這套當作與客戶溝通的工具 用法變的很像Maxwell Multilight那樣的感覺了. 總結VRay RT特點:
  1. CPU-based
  2. use same core with VRay
  3. continus rendering

[相關資訊]