Unity - A计划(一年有效期) 扫二维码继续学习 二维码时效为半小时

(61评价)
价格: 2208.00元
粒子系统,能不能让会的老师回答一下
宇宙漫步发起了话题2019-03-21
2
回复
260
浏览

如何能让一个粒子系统发射出来的粒子之间也能相互碰撞

所有回复
  • 老师_Plane 2019-03-21

    1.问题中的“碰撞”是指实现粒子间的物理动力学运算么?类似于3d Max 上的thinking particle以及PF粒子系统?

    2.如果是希望这种功能,现阶段Unity内置的粒子系统是不支持的。并在可遇见的将来都不会支持。除非硬件出现性能革命。

    3.Unity的定位是实时运算并渲染呈现,为了实时呈现其粒子系统只会实现基本的位置旋转等属性控制,加上一些相应材质来模拟想要的效果。而物理动力学运算(尤其是数量庞大的粒子动力学运算,如烟火流体,刚体碎裂等)极其消耗硬件性能。实时运算在专业图形工作站上都不可能,更别说是普通家用PC或手机。所以让Unity支持实时粒子物理动力学是不现实的。这也是我预估它不开发这方面功能的原因。

    4.市面上应该有第三方的插件来支持,但总体功能十分有限,往往是因为受制于性能问题做了一些取舍,计算基本不精确。你可以自行去AssetStore搜索相关关键字,研究其源码。

    5.非实时的粒子物理动力学可通过Max,Maya,Houdini这类三维软件来实现。这类软件可以实现较为精确地模拟,因为他们的定位不是实时计算,而是离线运算,可以缓存出相关数据供Unity调用。当然具体工作流程要实测才行,坑也不少。

    6.如果你想自行研发,可以去参考Nvidia相关物理引擎开源库,以及开源三维软件blender的源码。(Unity因为不开源,所以你没法做二次开发)。开发物体引擎难度非常非常大,能做到这个程度的基本已经是在Unity官方或者Unreal官方开发引擎了。是图形学领域的巅峰,超出了我们学院老师的能力边界。

    7.另外建议同学提问时明确一下需求,这样老师们可能回答起来有针对性一些。(目前我知道的也就这么多,不知道有没有帮上忙。)

    还有-5条回复,点击查看
    你还没有登录,请先登录注册
  • 宇宙漫步 2019-03-22

    了解了不少,谢谢!不过你这语气像是来找我打架的

    还有-5条回复,点击查看
    你还没有登录,请先登录注册
发表回复
你还没有登录,请先 登录或 注册!