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中写好的效果场景无法丢在这边直接运行查看效果
  • 缺乏文档,缺乏技术支持

 

分类: Unity3D

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

发表回复

Avatar placeholder

您的电子邮箱地址不会被公开。 必填项已用 * 标注