共有回帖数 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 回复
Copyright © 2010~2015 直线网 版权所有,All Rights Reserved.沪ICP备10039589号
意见反馈 |
关于直线 |
版权声明 |
会员须知