• “双降”利好带动业绩增长 嘉泽新能收获靓丽成绩单 2018-07-18
  • 宁波:发力品牌建设 推动产业升级 2018-07-18
  • 这种文章,一个中学生都可以写得比他好!呵呵! 2018-07-18
  • 如何带最少的行李去旅行?干货来了 2018-07-17
  • 南瓜子营养价值高 这样吃最健康-美食资讯 2018-07-17
  • 湖北治理违规提取公积金 防止用公积金炒房 2018-07-16
  • 西藏首届科技创新创业大赛报名启动 2018-07-16
  • 网购陷阱多 女子花3000元买5套化妆品只有2套是真的 2018-07-15
  • 紫光阁中共中央国家机关工作委员会 2018-07-15
  • 传媒每周热闻第357期:人民日报社与雄安新区共建文化传媒平台 2018网络媒体新春走基层主题活动启动 2018-07-15
  • 【春到渭南】随手拍渭南各地区春景,一贴看尽渭南春色! 2018-07-14
  • 朝韩将军级会谈时隔11年后在板门店重启 2018-07-14
  • 广东道交纠纷有望“一键理赔” 2018-07-14
  • 中非合作助推非洲工业化发展 2018-07-13
  • 人民日报来论:治理秸秆焚烧要治本 2018-07-13
  • 优质急速赛车批发价格暴跌原因 · 打造精彩的设计网站
    当前位置: 优质急速赛车批发价格暴跌原因 > CG学院 > 改变Sprites型粒子的方向率领

    改变Sprites型粒子的方向率领

    发布时间:2016-09-15 18:40内容来源:终极CGFinal 点击:

    优质急速赛车批发价格暴跌原因 www.l949.cn 01Sprites型粒子可以在每一个粒子上贴图或者贴序列图片,
    有大量的例子从一个点发射器发出,注意上图中,箭头的方向没有指向它们各自的速度方向,下面就讲讲怎样改变它们

    改变Sprites型粒子的方向率领

    02首先在Hypershader里面建一个 vector product 节点,把他命名为"camera_to_world"

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

    改变Sprites型粒子的方向率领

    03设置"input1" 为 <<0,1,0>>,选择 "Vector Matrix Product" 作为运算方法

    改变Sprites型粒子的方向率领

    04连接渲染摄像机得 Xform Matrix 到vector product节点得"Matrix"

    改变Sprites型粒子的方向率领

    05注意两点
    看清上面的连接编辑器的连接方向?。ê炜虮曜ⅲ?

    选择outliner里面的persp(透视图摄像机),不要选Hypershade里面的perspShape,要不你找不到 Xform Matrix 这一项
    outliner persp

    改变Sprites型粒子的方向率领

    06给粒子添加“spriteTwistPP“属性

    改变Sprites型粒子的方向率领

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

    改变Sprites型粒子的方向率领

    08下面简单解释一下表达式得意思

    最开始的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



    画个图,可能好理解一些!


    改变Sprites型粒子的方向率领

    09红色的坐标系代表的是世界坐标系

    深蓝色的是摄像机坐标系

    这里我们的两个坐标系的关系,据了个最简单的:

    世界坐标系得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,只不过是由个角度问题,这个偏向角要和速度方向吻合,也达到最开始我的说的目的了——————箭头的方向指向它们各自的速度方向

     

    完了

    呵呵~~~
    我都有点晕了
    有不对的地方,请大家指出,谢谢

    顶一下
    (0)
    0%
    踩一下
    (0)
    0%
    ------分隔线----------------------------
  • “双降”利好带动业绩增长 嘉泽新能收获靓丽成绩单 2018-07-18
  • 宁波:发力品牌建设 推动产业升级 2018-07-18
  • 这种文章,一个中学生都可以写得比他好!呵呵! 2018-07-18
  • 如何带最少的行李去旅行?干货来了 2018-07-17
  • 南瓜子营养价值高 这样吃最健康-美食资讯 2018-07-17
  • 湖北治理违规提取公积金 防止用公积金炒房 2018-07-16
  • 西藏首届科技创新创业大赛报名启动 2018-07-16
  • 网购陷阱多 女子花3000元买5套化妆品只有2套是真的 2018-07-15
  • 紫光阁中共中央国家机关工作委员会 2018-07-15
  • 传媒每周热闻第357期:人民日报社与雄安新区共建文化传媒平台 2018网络媒体新春走基层主题活动启动 2018-07-15
  • 【春到渭南】随手拍渭南各地区春景,一贴看尽渭南春色! 2018-07-14
  • 朝韩将军级会谈时隔11年后在板门店重启 2018-07-14
  • 广东道交纠纷有望“一键理赔” 2018-07-14
  • 中非合作助推非洲工业化发展 2018-07-13
  • 人民日报来论:治理秸秆焚烧要治本 2018-07-13