選擇使用 rgbpp
添加下面的到 creation 表示式:
//rgbpp
//
float $intensity=rand(0.6,1.0);
intensitypp=$intensity
對于 rgbpp ,我們將用一個 hsv 模式確定塵土的顏色,不用傳統的紅綠藍模型。每個粒子有各自的值或亮度,粒子在一個簡單的陰影技術基礎上獲得顏色,粒子是否改變顏色要看是否被陰影,并將保留一個完整的密度值。該信息被合成器用來單獨扭曲粒子(從粒子密度)陰影。
添加下面東西到 runtime 表達式:
//opacitypp
//
opacitypp= opacitymultpp* opacityorgpp* opacity;
利用通道盒里的透明度屬性,使用者現在可以全部調整所有粒子物體的透明度,同時保持每個粒子的獨特的 opacityorgpp 。并修改粒子生命周期的透明度(使用連接到 opacitymultpp 的 ramp )。
體積陰影
體積陰影是獲得真實云和塵土效果的關鍵因素。體積陰影是通過粒子投射陰影到每個粒子身上而獲得的(通過透明度)。不幸的是,這種技術只有在軟件云粒子渲染中可以有效,而且耗時之多,令人難以置信。有成打的技術可以模仿這類效果,而且只花很少的時間。
你要用到的技術是我的一個同事 eyal erez 教我的,他和我一起合作制作 the kolektiv 。將現在粒子所在位置和粒子“出生”的位置 birthworldposition 相比較,看現在粒子增加了多少高度,你就可以計算出一個值,粒子越低,值就越低。該技術對粒子系統來說很不錯,從相對等高的高度發射的粒子不會升或者降太多(和粒子最初位置相比較)。
lego 投射方面的“領頭羊”合成器 ----gary jackamuk 需要一個粒子路徑,這樣就可以調整顏色,以和 cg 背景元素的陰影及燈光匹配。通常,當軟件為合成渲染一個元素時候,你可以輸出一個單獨的 shadow pass ,它可以被合成器單獨調整。 gray 要給粒子上多少色,這要看粒子獲得的陰影數量。
我們可以提供一個給粒子上色和陰影的解決辦法,使它效果更好。
在 add dynamic attributes 欄里點擊 general 按鈕,到 particle 欄。
1 、創建 birthworldposition 屬性
2 、添加下面東西到 runtime 表達式:
//rgbpp
//
vector $pos=position;
vector $birthpos=birthworldposition;
float $hue=(240+120*smoothstep(-1,1, $pos.y-$birthpos.y))/360;
rgbpp=hsr_to_rgb(<<$hue,1.0,intensitypp>>);
為了控制粒子顏色,我們規格化粒子所在位置和粒子產生位置之間的差數,該規格發生在 -1 和 1 之間,這意味著如果一個粒子比它產生的位置低于 1 個單位,我們就會得到一個 0 的值;如果高于 1 個單位,則會得到一個 1 的值,然后,這些值要被調整為沿著色輪 ----100% 藍色和 100% 紅色之間,或者 240 和 360 之間。參考顏色選擇窗口,找到其它顏色的色彩值。
粒子物體的 rgbpp 屬性讀取 rgb 值,而不是 hsv 值,所以,你需要利用 hsv_to_rgb 函數將 hsv 轉換成 rgb 。該功能視一個矢量為輸入,那也是為什么我們用 <<>> 來為色彩、飽和度、密度壓縮這些值的原因。色彩值最好為 0-1 ,而不是 0-360 ,所以我們要用 360 來除 hue 值。飽和度仍為 1.0 ,但是,你有個機會:通過修改飽和度(在你決定的值的基礎上),添加路徑附加消息到合成器上,最后,粒子的亮度都被考進 hsv 的 value 中。
在這一點上,仍然可以對各種各樣的 rumps 貼圖和場做大量的扭曲,以此獲得你想要的外觀。
打開 wheeonpath_part6.ma 文件,看看我拿出的結果。
新聞熱點
疑難解答