【问题标题】:Realtime mesh deformation of soft objects [closed]软物体的实时网格变形[关闭]
【发布时间】:2019-04-30 09:55:13
【问题描述】:

我的问题是模拟用户交互时的软对象变形,例如当你触摸里面有沙子的球时,它的边缘会在你压在球上的点变形。如何在 Unity3D 中实现它?

【问题讨论】:

  • 通过访问网格顶点并在 cs 脚本或着色器中修改它们来实现网格变形。问题太宽泛,可能太高级(不知道编码技能)。
  • @Everts 是的,我可以手动完成,但我需要使用泊松比进行逼真的变形
  • 那么您是在寻找方程式还是过程?
  • @Everts 一些代码示例如何在 Unity 中实现,可能是预制件
  • 不幸的是,您不知何故落入了“请为我编码”的桶中。最好的办法是在网上寻找教程。

标签: c# unity3d 3d mesh


【解决方案1】:

软体动力学是一个非常复杂的话题,这就是为什么大多数物理引擎都将自己限制在刚体动力学上。我很确定 StackOverflow 上没有人会为您编写此代码。不过,Unity 也有一些商业解决方案,Obi SoftbodyTruss Physics 列出了一些。

这是一个更便宜但功能可能较少的选项:

https://assetstore.unity.com/packages/tools/physics/b-soft-body-deformation-53378

模拟软体物理有很多不同的方法,一种常见的方法是将顶点映射到点的晶格(带有一些权重),然后模拟晶格点之间的弹簧约束。这些类型的格子可能最好用 verlet 积分来模拟。

Here是一篇关于格子形状匹配的研究论文。 Here 是另一篇关于压力模型的论文。

【讨论】:

  • 谢谢!目前我正在尝试与 Nvidia Flex 合作,对我来说似乎足够了
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-02-25
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多