本教程向朋友們介紹Maya 硬件渲染粒子與軟件渲染元素結合的具體方法,教程介紹的比較詳細,希望對朋友們有所幫助!
I 、創建一個 Sprite 圖像
用一個簡單的點發射器和軟件渲染粒子云,創建一系列用作 sprite 紋理的圖像,粒子產生和消失的動畫——結合軟件渲染粒子云的動畫和體積紋理——能夠制作出變化多端的動畫紋理。
1 、設置 Timeline Range :從 1 到 60
2 、創建一個點發射器
3 、第 30 幀, rate 關鍵幀為 100
4 、第 31 幀, rate 關鍵幀為 0
5 、設置粒子 lifespan 為 lifespanRandom
6 、設置 lifespanRandom 為 0.3
7 、設置 lifespan 為 1
回放動畫,注意:第 60 幀粒子的生成和消失。
1 、設置 conserve 為 0.9
2 、增加一個紊亂場
3 、設置 magnitude 為 25
4 、設置 attenuation 為 0
5 、設置 frequency 為 2
6 、第 1 幀,關鍵幀 TranslateY 為 0
7 、第 60 關鍵幀,關鍵幀 TranslateY 為 5
回放動畫,注意:粒子現在更隨機自由地運動并夾在一起。這些團塊在軟件渲染里有更大的密度,給最終的精靈影像添加了更多的變換。
1 、創建一個粒子云 shader
2 、設置顏色為 100% 的白色
3 、創建一個 Volume Noise 3D Texture
4 、將 3D Texture Placement 做為動畫紊亂場的父物體
5 、將 Volume Noise 連接到粒子云材質的 Blob Map 屬性
6 、打開 Volume Noise 紋理屬性編輯器
7 、設置 Threshold 為 0
8 、設置 Amplitude 為 1
9 、設置 Ratio 為 0.4
10 、設置 Frequency Ratio 為 0.2
11 、設置 Depth Max 為 5
12 、設置 Scale 為 3.0,3.0,3.0
13 、設置 Noise Type 為 Wispy
不同的氣體要求不同的圖像,從壺里發出的蒸汽更細弱一點,但從煙囪里出來的煙霧更濃密更"圓"一點。云層是濃密的,但卻有一個纖細的邊,你就要為你的圖像復制這樣的邊。一旦增加了不同的扭曲和縮放值到你的 sprite 粒子,而且還有成打的粒子彼此重疊,那它們都將混合并創建理想的外觀。
1 、打開粒子物體屬性編輯器
2 、設置粒子渲染類型為 cloud
3 、點擊的 Add Attibutes 后的 Current Render Type
4 、打開 Better Illumination
5 、為 OpacityPP 創建一個 ramp
6 、 ramp 底部和頂部設置為黑色,中間為白色
7 、設置 Interpolation 為 Smooth
8 、增加一個預粒子 radiusPP 屬性
9 、創建表達式類型里:
radiusPP=rand(0.3,1.3)
從頂部攝影機觀看場景,設置視口大小,確保這樣粒子到了窗口的邊卻不會跑出邊外。
1 、 打開全局渲染窗口
2 、 設置理想的文件名
cg/image/ 的粒子系統在為 sprite 圖像命名方面是非常特別的, cg/image/ 傾向于用 Name.# 這樣的命名格式,例如: cloudTex.1, cloudTex.20 等等。
1 、 設置 Frame/Animation Ext 為 name.#
2 、 設置 Frame Range 為 1-60
3 、 設置 camera 為 Top
4 、 打開 RGB 和 Alpha 通道
一個 Sprite 圖像應該始終是正方形的,比如 1 : 1 的比例。即使圖像分辨率非常高,但其大小也不應該超過 512 Χ 512 。因為圖像在硬件里渲染,所以需要圖形卡里的紋理儲存器。每個 sprite 圖像被載入紋理儲存器,所以,如果你有 100 個不同的圖像,它們都是 512 Χ 512 分辨率,那多數圖形卡將沒有足夠的內存有效地回放場景,并會"卡殼"。在幀里一個 sprite 應該是多大,這才是獲得分辨率的真正決定性因素。考慮到一旦你運用了運動模糊 sprite ,任何像素都趨向于完全消失,你可以用更低分辨率的圖像操作。
設置分辨率為 128*128
附加 tweaks 到渲染圖像序列,比如添加模糊,調整對比度,用一個合成包修改 alpha 通道。
最后,渲染圖像序列。
Maya 硬件渲染粒子與軟件渲染元素結合重新設置 frame range 為 1-100
當一輛汽車踢起灰塵的時候,從輪胎下半部分會發出像一團云樣的東西。刻化這個發射形狀的簡單方法就是用一個體積發射器。
打開 wheelsOnPath.ma 文件 .
在這個場景里,沿著凹凸表面的一條運動路徑有一個簡單的汽車裝備。車輪通過一個 closestPiontOnSurface 約束粘附在地面。
現在從輪胎發射粒子。
1 、創建一個發射器
2 、設置 Emitter Type 為 Volume
3 、設置 Volume shape 為 sphere
塵埃沒有特定的運動方向,其運動源自汽車周圍的空氣運動,因此,你不用在體積形狀基礎上給與塵埃任何速度。
1 、設置 Away From Center 為 0
2 、設置 Away From Axis 為 0
3 、設置 Along Axis 為 0
4 、設置 Around Axis 為 0
但是,塵埃的運動基于汽車運動的基礎上,所以,汽車踢起的塵埃要稍微隨著汽車的向前運動而向前運動。
1 、打開 outliner
2 、選擇 Fitire 和你剛才創建的發射器: Emitter1
3 、點約束和方向約束發射器到輪胎
4 、縮放發射器,大概有輪胎的 1/3 高,長于和寬于輪胎大約 1/4 。
5 、調整發射器的 VolumeOffsetZ 屬性,重新定位發射器,低于輪胎 1/3 。
回放時,你會看見左前輪胎后面有粒子軌跡。
1 、復制 Emitter1 三次
2 、刪除復制品潛在的點約束和方向約束節點
3 、點約束、方向約束每個發射器到每個輪胎,這樣,每個輪胎都有了一個發射器。
4 、重新命名這些發射器為: IEmitter,frEmitter,blEmitter,brEmitter
5 、用動力學關系編輯器,連接粒子物體到每個發射器。
回放,你會看見所有輪胎左后方都留下了一道粒子軌跡。
當一輛汽車奔跑在一條滿是灰塵的溪谷時,它會碰到各種各樣的凹凸地,水溝,巖石和沙地,每次碰撞的結果就是:汽車不僅改變一點點方向,而且汽車踢起的塵土和碎片數量都會不同,利用 noise 和 rand 功能,你可以很容易地模擬這種隨意的變化。
1 、選擇 flEmitter
2 、在通道盒里,右鍵點擊任何屬性并選擇 Expressions ……
3 、在 Expression Editor 中鍵入:
float $rate=100.0
float $rateRand=0.5
flEmitter.rate=$rate+$rateRand*$rate*noise(frame)
這個表達式運用了 noise 功能,可以依據不同的幀在 -1 到 1 之間取一個值。這個值將與 rate 的百分數相乘再相加。
FlEmitter 發射器的 rate 的最終結果是圍繞著 $rate 大概成平均狀,但是,這個參數可以低到 0.5 ,也可以高到 1.5 ,主要看 noise 值的回饋。
不是隨便用一個數字發生器就可以得到聲音功能的值,將聲音功能視為一個預定的曲線,可以無限延伸,這個曲線在它的值里有各種各樣的聲音,但聲音平滑插入,聲音功能回到什么樣的值依賴于你在曲線哪里取樣。如果你給聲音功能取 10 的值:
print(noise(10));
… cg/image/ 回到 -0.465903 的值
如果你給聲音功能取 10.01 的值 :
print(noise(10.01));
… cg/image/ 回到 -0.474992 的值
參數表達式里:
flEmitter.rate=$rate+$rateRand*$rate*noise(frame)
…我們用"幀"作為聲音輸入,所以,每個幀的聲音功能回到一個新的值。
既然幀以每幀的整數增加,來自聲音功能的結果可能變化很大。如果你想從聲音功能那里獲得一個更加平滑的數字流,那就用" time "來代替 " frame "。
一樣的輸入值,聲音功能返回的值也一樣,所以,每個發射器需要用不同的輸入值。
在表達式編輯器里,增加:
frEmitter.rate=$rate+$rateRand*$rate*noise(frame+100)
blEmitter.rate=$rate+$rateRand*$rate*noise(frame+200)
brEmitter.rate=$rate+$rateRand*$rate*noise(frame+300)
現在每個 rates 參數都是從聲音曲線不同部分取樣,回放時候,你會看見粒子的軌跡有點更加隨意稀少了。
參數 rates 任何明顯的提高都表示模擬輪胎碰到了凹凸塊或者是巖石。發生碰撞的時候,粒子方向突然隨意改變,就好像剛剛發生了一場小的爆炸。
因為聲音功能對同樣的輸入總是返回到同樣的值,所以,我們檢查 rates 參數的一個突然變化并添加一些隨意性到發射速度上。
在表達式編輯器里,添加:
float $flChange=noise(frame)-noise(frame-1);
float $flChange=noise(frame)-noise(frame-1);
float $frChange=noise(frame+100)-noise(frame+100-1);
float $blChange=noise(frame+200)-noise(frame+200-1);
float $flChange=noise(frame+300)-noise(frame+300-1);
float $randomSpeed=100;
flEmitter.randomDirection=$randomSpeed*linstep(0.1,0.5, $flChange);
frEmitter.randomDirection=$randomSpeed*linstep(0.1,0.5, $frChange);
blEmitter.randomDirection=$randomSpeed*linstep(0.1,0.5, $blChange);
brEmitter.randomDirection=$randomSpeed*linstep(0.1,0.5, $brChange)
回放時,你會看在塵土軌跡甚至有更大的隨意性,一些粒子飄浮空中,其他一些粒子保持靜止狀態。
Maya 硬件渲染粒子與軟件渲染元素結合在完成一個作品時,越多的給予使用者超越解算的控制越好,基于這種考慮,越復雜的參數設置會使使用者工作起來越困難。
你想要做的最后一件事就是:提供終端使用者一個復雜的表鍤劍 主站蜘蛛池模板: 乌审旗| 广汉市| 沙河市| 石棉县| 建瓯市| 怀集县| 长葛市| 临城县| 辰溪县| 江门市| 德令哈市| 和平区| 长沙市| 镇赉县| 广水市| 揭阳市| 襄城县| 化隆| 古丈县| 姜堰市| 抚顺县| 肥乡县| 普定县| 大同县| 洛川县| 临武县| 两当县| 海伦市| 宜兴市| 秭归县| 微山县| 冷水江市| 龙南县| 休宁县| 平遥县| 兰州市| 兰西县| 扎兰屯市| 宝清县| 泌阳县| 西林县|