Mental ray Motion Blur 試解決方案和 mip_motionblur mip_motion_vector shader
基于Mental ray渲染Motion blur現(xiàn)在有幾種解決方案:
純3D Motion Blur 渲染的圖片最真實,反射,折射,GI等都不會有問題。但是缺點是速度慢,為了提高動態(tài)模糊的渲染質(zhì)量需要不斷的提高sample 和 temporal sample 的值,占用大量的渲染時間。渲染速度和質(zhì)量(sample)是成一種linear的關(guān)系。 Rasterizer 優(yōu) 點是速度快,比raytrace motion blur要快很多,能夠很快的實現(xiàn)高質(zhì)量的motion blur。它將shading和sample分開進行,極大的提高渲染速度。因為這種特點渲染速度和質(zhì)量(sample)不是一種linear關(guān)系。另外 他的sample方式也與raytrace不同。但是由于這種方式的特點不適合對反射和折射要求較高的場景應(yīng)用。渲染頭發(fā)是應(yīng)用這種渲染方式加 detailed shadow map。另外不適合應(yīng)用fg,gi caustics,auto volumn, raytraced shadow, ray bending lens shader, reflect refract. 2d,后期的motion blur是 基于二維平面的動態(tài)模糊。優(yōu)點是節(jié)省渲染時間,三維渲染不需要渲染motion blur。調(diào)整快,可以說是實時的。在后期調(diào)整時非常靈活如果是渲染的motion blur如果有問題就需要到三維里重新渲染,在后期里調(diào)整就不需要。在后期里可以得到實時的反饋根據(jù)需要任意調(diào)整動態(tài)模糊的幅度。缺點是不準確不能模糊反 射折射的情況,不能有multisegment motion blur,動態(tài)模糊都是直線的不會有弧線的,另外后期軟件對其支持也不禁相同還有很多限制。2d的motion blur主要是通過三維軟件渲染motion vector通過后期軟件調(diào)整。除了這種方式,Mental ray提供了一個output shader:mip_motionblur shader. 這個shader 通過利用motion vector 和 depth frame buffer對渲染出來圖片進行處理。由于是集成于渲染器它的優(yōu)點是擁有一些后期軟件沒有的功能。而motion vector shader主要是用于輸出針對不同后期軟件處理動態(tài)模糊需要不同motion vector圖像而寫的shader。 對于3D motion blur,最重要的渲染速度而這主要是取決于整體的sample和temporal sample在maya內(nèi)由time contrast 控制。這個參數(shù)是主要影響動態(tài)模糊速度的。 mip_motionblur, mip_motion_vector具體應(yīng)用方法。 應(yīng) 用這兩個shader都需要將motion blur選項開啟,但是要保證shutter interval 為零??淳唧w情況考慮,為了后期考慮有時應(yīng)將物體停在shutter interval的中間這樣方便向前后兩個方向動態(tài)模糊。比如shutter open 是0 shutter close是1,在啟用這個shader的時候要兩個值都為0.5。即 shutter open 0.5 shutter close 0.5。這樣會關(guān)閉motion blur但是會計算motion vector。同時將time contrast改為1,避免mental ray 作不必要的計算。 ![]() 這兩個shader都是output shader 但是連到maya 2009 camera 的output shader里并不可用,只可以使用以前的鏈接方式。默認情況下此界面在camera attribut editor里是被隱藏的。方法倒很簡單將output shader拖動到相機上選擇 default 就可以了或者使用connectio editor 同時要啟用 motion vectors, depth framebuffer。 ![]() ![]() 關(guān)于兩個shader的具體參數(shù),可以直接參看官方的production shader documents. 這里需要強調(diào)一下的是如果在nuke中作motion blur,首先需要將mip_motion_vector中floating point format 改為1, pixel threshold 最小要寫0.001否則會有artifacts(圖像某些不動的部分會有值)這個值是告訴mentalray多小的像素移動可以忽略不記。這樣nuke的 vector blur節(jié)點才能正確讀取mental ray 輸出的motion vector信息。其他插件和軟件對motion vector要求不一樣,要看具體要求輸出。 ![]() 使用 nuke 自己的 vector blur shader 還是不能很好的模糊需要動態(tài)模糊的部分和其它背景同在一個rgb通道內(nèi)的圖像,如果需要動態(tài)模糊的部分外邊沒有rgb信息可以很好的模糊圖像,如果有,效 果沒有reelsmart motion blur效果好,但是RSMB一樣有些問題。暫時還不知道是不是我的設(shè)置有問題。 5.1v2 的vector blur結(jié)點壞了,foundry已經(jīng)確認,下個版本修正...不用試了。 |
|