<th id="bwd7y"><progress id="bwd7y"></progress></th>
    <dfn id="bwd7y"></dfn>
        • <b id="bwd7y"></b>

              <noframes id="bwd7y"><menu id="bwd7y"><td id="bwd7y"></td></menu>
              1. 暴雪國際動漫教育
                • 暴雪國際2022招生簡章
                • 暴雪國際2022招生簡章
                • 暴雪國際2022招生簡章
                • 暴雪國際2022招生簡章
                在線咨詢 預約課程 網(wǎng)上報名
                Maya建模教程

                改變Sprites型粒子的方向

                編輯:徐州暴雪國際來源:徐州暴雪國際發(fā)布時間:2013-09-10

                   01Sprites型粒子可以在每一個粒子上貼圖或者貼序列圖片, 有大量的例子從一個點發(fā)射器發(fā)出,注意上圖中,箭頭的方向沒有指向它們各自的速度方向,下面就講講怎樣改變它們 136.jpg
                 

                   02首先在Hypershader里面建一個 vector product 節(jié)點,把他命名為"camera_to_world"

                它將要把在攝像機空間里的UP vector轉化為世界坐標系里面的
                 

                3033.jpg

                03設置"input1" 為 <<0,1,0>>,選擇 "Vector Matrix Product" 作為運算方法

                3034.jpg

                04連接渲染攝像機得 Xform Matrix 到vector product節(jié)點得"Matrix"
                3035.jpg

                05注意兩點
                看清上面的連接編輯器的連接方向?。t框標注)

                選擇outliner里面的persp(透視圖攝像機),不要選Hypershade里面的perspShape,要不你找不到 Xform Matrix 這一項
                outliner persp
                40444.jpg

                06給粒子添加“spriteTwistPP“屬性
                 

                8585.jpg

                07添加Runtime 表達式

                vector $up=<<0,1,0>>;
                vector $cameraup=<<camera_to_world.outputX,camera_to_world.outputY,camera_to_world.outputZ>>;
                vector $ref = cross($up,$cameraup);
                float $ang=acos(dot($up,unit(particleShape1.worldVelocity)))/3.14*180;

                if(dot($ref,particleShape1.worldVelocity)>0)
                particleShape1.spriteTwistPP=$ang;
                else
                particleShape1.spriteTwistPP=-$ang;
                就可以了

                30333.jpg

                08下面簡單解釋一下表達式得意思

                最開始的vector product 節(jié)點,把在攝像機空間里的UP vector轉化為世界坐標系里面的

                maya help里面解釋的攝像機得Xform Matrix和 Matrix包含同樣的信息
                ( Contains the same information as the matrix attribute on dagNode but it is stored in a format that can be interpolated easily.——maya help )

                vector product 節(jié)點得input 1是<<0,1,0>>,就是y軸得方向,這個矢量應該是攝像機坐標系得

                通過vector product 節(jié)點得Vector Matrix Product運算把 input 1變?yōu)槭澜缱鴺讼?/p>


                 
                下面試著分析一下這個表達式(如有不對得,請指出,呵呵)

                vector $up=<<0,1,0>>;

                定義一個矢量

                vector $cameraup=<<camera_to_world.outputX,camera_to_world.outputY,camera_to_world.outputZ>>;

                再定義一個矢量,分別取剛才vector product 節(jié)點算出的output


                vector $ref = cross($up,$cameraup);

                定義矢量,矢量 $ref 等于$up,$cameraup這兩個矢量得差乘

                上面定義了三個矢量,下面

                float $ang=acos(dot($up,unit(particleShape1.worldVelocity)))/3.14*180;

                $ang得到是一個角度,他是$up 和粒子速度(worldVelocity)的一個夾角

                dot——點乘,由于$up是一個單位矢量(0,1,0),速度矢量也單位化了(unit),所以點乘得到兩個矢量得余弦值——cos X

                通過acos,求反余弦,得到角度,也就是夾角

                 

                這時候求得的夾角是用弧度制的
                所以要轉化為角度制——后面的:

                /3.14*180

                 

                畫個圖,可能好理解一些!

                99999.jpg
                09紅色的坐標系代表的是世界坐標系

                深藍色的是攝像機坐標系

                這里我們的兩個坐標系的關系,據(jù)了個最簡單的:

                世界坐標系得xy平面和攝像機坐標系zy平面是共面的,所以世界坐標系z和攝像機坐標系x軸自然平行

                棕色的矢量是攝像機坐標系得一個矢量
                也就是我們在 vector product 里面的input 1
                通過 vector product 的運算,就把input 1轉化為了紫色的矢量

                這是在世界坐標系得,也就是 vector product 得output
                這個output得值賦給了$cameraup
                也就是$cameraup等于output了,

                矢量$ref是$up點乘$cameraup的結果(就試圖中得淺綠色的矢量,哦我這個可能畫翻了,應該是z軸向相反的,不好意思,影響不大)

                深藍色得是速度矢量,它和$ref求夾角德余弦cos

                因為從y軸順時針,逆時針旋轉相同角度得到的余弦值真好是相反數(shù)

                來判斷spriteTwistPP應該旋轉的角度,

                這個角度就是變量$ang,只不過是由個角度問題,這個偏向角要和速度方向吻合,也達到最開始我的說的目的了——————箭頭的方向指向它們各自的速度方向


                 

                 

                上一篇:手鐲的制作

                下一篇:Maya創(chuàng)建二足動物骨架的基礎教程

                草草久久久无码国产专区,国产精品一码二码三码在线,无码综合一区二区三区,在线播放午夜无码毛片
                <th id="bwd7y"><progress id="bwd7y"></progress></th>
                  <dfn id="bwd7y"></dfn>
                      • <b id="bwd7y"></b>

                            <noframes id="bwd7y"><menu id="bwd7y"><td id="bwd7y"></td></menu>