2012年1月12日 星期四

測試自製Blender的Location Pass

Blender的Pass render裡內建沒有location可以用。
但是使用material override搭配材質結點,我們可以自創出想要的Pass,雖然沒有Pass Render速度快的優點,但有總比沒有好。


但是前陣子我測試時發現了一個問題,就是雖然Blender Render算出來的資料是32bit linear float的格式,他卻不支援負數,所以所有負值都被取代成0。在上網沒找到解決方法,上Blender Artist發問也沒人有答案後,我只好繞遠路,因為雖然算圖算不出負數,但是compositing確實有支援負數,所以我用了兩種材質結點,一個是正常的location,一個是location * -1,再到compositer裡去相減出負數,來得到完整的location pass。

接著就是開始玩location pass了,慢慢也發現了location pass真的是有無限的可能性,只要用location pass加math node這顆結點,搭配高中數學教的一些公式,幾乎能定義出場景中的任何範圍,以下是一些測試圖片


原始場景



X+Y+Z平面





旋轉+偏移



也能跟XY平面傾斜




加上平方就能定義出曲面




兩個二次方項


雖然實際能應用的情況沒有那麼多那麼複雜,但如果跟其他向量運算搭配作成preset群組,或許可以想出一些好功能? Nuke可以用location pass作出point cloud,但再Blender似乎沒那個必要,會想要去研究一下其他軟體以及創作者是如何使用location pass的,以上大概跟大家分享一下。


另外如果有人知道要如何在Blender裡算出負值拜託拜託留個言告訴我,我超級想知道。






沒有留言:

張貼留言