Unity相关deformable body(Softbody)相关库
Asset Store
OBI
比较著名的就是Obi系列,OBI库是现在最简单的deformable body实现方案工具,通过蓝图(blueprint)创建deformable资源,而且实现了自动计算分配,使用CPU运算,可以很好的和游戏场景中的各种物体产生理想的交互,算是最为推荐的库:https://assetstore.unity.com/packages/tools/physics/obi-softbody-130029
特点:
- 非常详细丰富,性能优秀(利用了brust)对于一般的游戏开发完全足够了。
- 除了Softbody、还有Rope、Fluid、Cloth等其他deformable body
缺点:
- 场论思想构建,不支持break and rebuild(核心是rebuild过慢,而且构建方法会忽略细节)
- dll构建,无二次开发可能
Soft-Body Objects
还有一些轻量级的纯柔体库:https://assetstore.unity.com/packages/3d/props/soft-body-objects-103480
特点:
- 轻量级,小巧
- 可支持二次开发
缺点:
- 功能不足,计算效果过差
- 缺乏细节,很多碰撞处理是有问题的
PS:这类的库还有很多,突出的就是一个缺乏细节
PhysKit: Complete
物理辅助工具,不是针对去做deformable body的,而是Unity的物理部分还可以增加很多的工具扩展,而这个就是一套扩展式的工具:https://assetstore.unity.com/packages/tools/physics/physkit-complete-122368
特点
- 丰富物理处理的库,相当于一个工具箱扩展,比如想要实现一个头发摆动效果而又不想丢GPU去Rending
缺点
- 需要自己去针对自己想要的功能实现
VertExmotion Pro
Vert积分工具,你可以基于这个工具讲Unity原有的隐式欧拉积分的计算替换为Vert积分,隐式欧拉的核心思维是去考虑下一时刻,而Verlet积分是考虑上一时刻,利用函数的连续性进行泰勒展开,并且可以分别求出上下时刻,因此用Verlet积分做的物体运动效果会更加稳定:https://assetstore.unity.com/packages/tools/animation/vertexmotion-pro-25127
特点
- 数学工具库,不是原本的效果实现,而是你工具的扩展,Verlett积分相当关键
缺点
- 需要自己去针对想要实现的功能去实现,对开发者要求高
Github
uflex
英伟达社区驱动,uFlex利用GPU的强大计算能力,实现了快速且逼真的柔体模拟效果,可用于游戏、虚拟现实和仿真应用中。该库支持多种柔性物体类型,如绳子、布料、海浪等,还提供了高度可定制的参数和交互性工具,方便开发者调整和控制模拟效果。
Github地址:https://github.com/NVIDIAGameWorks/FleX
官方网站:https://developer.nvidia.com/flex
商店地址url:https://assetstore.unity.com/packages/tools/utilities/uflex-59843
特点
- GPU驱动,无法直接交互物理效果,需要使用转译
- 性能优秀(废话,GPU base设计的)
- 开源,可以二次修改
缺点
- 官方已经不再更新,包括Unity新版本使用都会有问题
- 因为是GPU base驱动的,二次开发难度较大
bullet
一个很著名的柔体库,由开源社区驱动维护,如3ds max,Houdini、Blender等一些成熟的建模软件的柔体计算都会选择使用bullet驱动,他有着更加开放的社区驱动,改造自由度极大,扩张性极佳,已经在很多的数字孪生(digital double)项目上产生了应用。
github地址:https://github.com/bulletphysics/bullet3
官网:https://pybullet.org/wordpress/
优点
- 什么功能都有,也允许二次开发,可以效果、性能的选择可以均由自己处理
- 自己想要实现的效果也可以都往上面去放,包括beak and rebuild
缺点
- 因为纯社区推进模式,可能一个softbody就存在好几个个人修改的分支,库很庞大,需要自己去逐步筛选,工作量不小
Else
SOFA Framework
SOFA(Simulation Open Framework Architecture) Framework是一个由法国团队开源的物理仿真框架,旨在支持多领域的物理仿真应用,包括生物医学、计算机图形学、机器人学等。SOFA提供了强大的工具和库,用于模拟复杂的物理行为,如刚体、柔体、碰撞检测、流体动力学等。它的模块化结构和灵活性使开发者能够轻松扩展和定制仿真场景。SOFA还支持多种物理引擎的集成,以及多平台的使用,成为研究人员和工程师们进行高级物理仿真研究和开发的有力工具。
官方网站:https://www.sofa-framework.org/
特点:
- 你想要的什么功能他基本都有,从有限元计算到弹簧质点模型处理、从Force feedback device的快速接入驱动、从break and rebuild等等你基本上所需要的一切功能,他都有一个庞大的社区进行了处理,但也只是处理。
- 适合学术研究不适合产出产品
缺点:
- 法国人做事你懂的
- 更加看重计算而非效率表现,而且主要适用有限元去驱动计算,PBD迭代过程消耗过大,往往造成卡死
- 压根不去考虑和处理float question,计算常常导致整个程序崩溃(闪退)
- 缺乏文档
SOFA Framework For Unity
SOFA Framework在Unity中的表现层,继承了SOFA Framework的所有特点和缺点。
官方网站:https://www.sofa-framework.org/applications/plugins/sofa-unity3d-full-integration/
申请网站:https://infinytech3d.com/sapapi-unity3d/
特点:
- 效果极好,且能够在Unity中表现,而且特殊增加infinity他们公司自主研发的一些效果。
缺点:
- 收费,几千刀一台设备,锁定mac地址的方式处理
- 能连锁引发Unity的JIT错误,引用了一堆dll,无法排错
- 所有内容均封死,自主想要修改效果极难,有时SOFA Framework中写好的效果场景无法丢在这边直接运行查看效果
- 缺乏文档,缺乏技术支持
2 条评论
AGO · 2023年9月9日 上午12:45
您好,想问一下SOFA Framework可以直接在unity中使用吗,而不使用infinytech3d开发的SOFA Framework For Unity
Mustenaka · 2023年9月13日 上午11:08
你好,是不行的,SOFA Famework是使用openGL独立编写的一整套框架模块,如果不使用SOFA Framework For Unity就需要自己处理SOFA的画面表现与Unity的转译表现画面,这会涉及到海量工作,同时还有计算模块,选用Unity还是.scn的方案,乃至于引入Python,这些都是问题,最终的最终,你会发现,这一切就是自己实现了一套SOFA Framework For Unity