改变Sprites型粒子的方向教程
作者:佚名 时间:2007-09-26 来源:网络收集
拥有帝国一切,皆有可能。欢迎访问phome.net
01Sprites型粒子可以在每一个粒子上贴图或者贴序列图片, 有大量的例子从一个点发射器发出,注意上图中,箭头的方向没有指向它们各自的速度方向,下面就讲讲怎样改变它们

它将要把在摄像机空间里的UP vector转化为世界坐标系里面的



看清上面的连接编辑器的连接方向!(红框标注)
选择outliner里面的persp(透视图摄像机),不要选Hypershade里面的perspShape,要不你找不到 Xform Matrix 这一项
outliner persp


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;
就可以了

最开始的vector product 节点,把在摄像机空间里的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 节点得input 1是<<0,1,0>>,就是y轴得方向,这个矢量应该是摄像机坐标系得
通过vector product 节点得Vector Matrix Product运算把 input 1变为世界坐标系
下面试着分析一下这个表达式(如有不对得,请指出,呵呵)
vector $up=<<0,1,0>>;
定义一个矢量
vector $cameraup=<<camera_to_world.outputX,camera_to_world.outputY,camera_to_world.outputZ>>;
再定义一个矢量,分别取刚才vector product 节点算出的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
画个图,可能好理解一些!

深蓝色的是摄像机坐标系
这里我们的两个坐标系的关系,据了个最简单的:
世界坐标系得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轴顺时针,逆时针旋转相同角度得到的余弦值真好是相反数
来判断spriteTwistPP应该旋转的角度,
这个角度就是变量$ang,只不过是由个角度问题,这个偏向角要和速度方向吻合,也达到最开始我的说的目的了——————箭头的方向指向它们各自的速度方向 完了
呵呵~~~
我都有点晕了
有不对的地方,请大家指出,谢谢
拥有帝国一切,皆有可能。欢迎访问phome.net
- 上一篇:MAYA:眼睛制作教程教程
- 下一篇:MAYA嘴唇帖图制作教程教程
中华大观园版权申明:本站部分图片和文章来源于网络。除部分特别声明不要转载,或者授权我站独家播发的文章外,大家可以自由转载我站点的原创文章,但原作者和来自我站的链接必须保留(非我站原创的,按照原来自一节,自行链接)。
转载要求:转载之图片、文件,链接请不要盗链到本站,且不准打上各自站点的水印,亦不能抹去我站点水印。 特别注意:本站所提供的摄影照片,插画,设计作品,如需使用,请与原作者联系,版权归原作者所有。
免责声明:本站刊载此文不代表同意其说法或描述,仅为提供更多信息,也不构成任何建议。对本文有任何异议,请联络:5000sky@gmail.com我要发表看法
- ※ 评论注意事项:
- 您的评论将在管理员审核后才会显示。
- 不是中华大观园会员或未登陆发表评论,评论人名字显示为匿名。
- 尊重网上道德,遵守中华人民共和国的各项有关法律法规
- 承担一切因您的行为而直接或间接导致的民事或刑事法律责任
- 本站管理人员有权保留或删除评论中的任意内容
- 参与本评论即表明您已经阅读并接受上述条款

