签到

06月09日
尚未签到

共有回帖数 0

    做月子

    等级:


    如果你正在製作有铁鍊的案子, 在试过Rayfire, Reactor, NVidia PhysX等方案后, 最后发现只有Thinking Particles能够模拟铁鍊动画的话, 那你应该要读这篇文章.既然是注意事项, 就直接跳到重点. 所有刚体都要给予重力才会有物理写实的结果. 在TP裡面你可以用max标準的gravity或是用一个向量做出重力的效果.







    绿色的小点表示voxel
    Tip:在粒子组跟SC里面都有一个参数叫做Voxel Grid.这个参数的大小对碰撞的精细起到很关键的作用.当设置为0的时候就表示为使用一个box来进行碰撞,当设置为1的时候表示使用真实的几何体来进行碰撞,也是最精准速度也是比较慢的,在配合提高采样的话效果是很精准的.超过1就表示使用网格细分来进行碰撞
    第二个优点就非常重要了, 那就是关於collision leak 刚体间没有正确的碰撞导致铁鍊断掉. 若是忽略重力这件事, 要避免collision leak, 1)可以增加sub-frame的数目 (让快速移动的物件可以计算更多的内差位置, 增加碰撞的成功机会 2)增加voxel数值, 同样可以让铁鍊更容易碰撞 3)修改模型的密度, 让网格分布更加平均更加紧密.
    答案揭晓, subframe, voxel与模型这叁个因子都没有重力的影响要重要. 而重力的设定务必要使用向量加Force Operator的串法, 这裡引用Bobo在CGTALK的一句话:



    请记住, 外力要影响粒子需要花费一点时间 (因為外力影响的是速度, 速度进而影响粒子的位置). 预设值的状况, 外力的强度往往对那些速度很小的物件影响力不足.
    我通常会把Influence ¨­為10000.0 另外加一个Wind将其Turbulence设為1.0 Frequency 0.01 and Scale 1.0 外加 Drag with 5for X,Y and Z 最后的结果就会很随机.
    换句话说当铁链物件起始速度为零时, 标准的gravity根本就对铁链没有影响力 (这时候你会以为重力的强度不够, 或是认为模拟的结果不够真实), 问题就在用标准的gravity的连接有根本上的问题, 它可能是把重力与速度相乘, 而不是真正把重力作用到铁链本身. 因此场景中已经有设key的铁链本身有初速度, 它会拖着没有速度的铁链, 而没有速度的铁链是在被拖动的时候才真正被重力所影响, 造成铁链之间的模型交错, 最后就发生collision leak的问题了.

    楼主 2015-11-17 12:41 回复

共有回帖数 0
  • 回 帖
  • 表情 图片 视频
  • 发表

登录直线网账号

Copyright © 2010~2015 直线网 版权所有,All Rights Reserved.沪ICP备10039589号 意见反馈 | 关于直线 | 版权声明 | 会员须知