Unity 布料仿真笔记1 弹簧质点模型

2023-11-26 13:20

本文主要是介绍Unity 布料仿真笔记1 弹簧质点模型,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

前言

万物皆可盘

弹簧质点模型

我们要在三维中仿真物理世界,那么就要将物理世界中的原理在三维场景中进行建模。也就是使用数学描述去反馈自然界中的一些现象。弹簧质点(Sping-Mass)模型是一个经典的物理学仿真模型。而弹簧质点就能够用在布料仿真、一些粒子系统中。
弹簧质点模型的思路很简单:

  • 所有的节点都是一个质点
  • 节点之间的连线就是一个弹簧
  • 节点之间的受力通过经典力学公式计算
  • 弹簧受力通过胡可定律计算

知道这个之后我们就能够分析如何在Unity中去实现一个三维仿真算法。
当我们实现一个弹簧模型之后,接下来去做布料仿真效果就很容易。

分析

从头开始

最简单的弹簧质点模型莫过于两个质点之间连接一个弹簧,我们将会用这种最简单的方式来分析。
在这里插入图片描述
根据牛顿力学定律,力的作用是相互的,当我们右边的小球移动,就会带动弹簧拉伸,而拉伸之后的弹簧就会产生一个“还原”的力,使右边的小球受到弹簧向左拉的力。而左边的小球会受到弹簧向右拉的力。如果上面的画面不直观,那么可以想象一下,如果我们用两只手分别拿着一根弹簧的两端。当两只手往外拉的时候,两只手都会感觉弹簧在往里收缩,而且拉的越长,往里收缩的力就越大。而如果我们往里挤,那么也会感觉到,挤得越近,弹簧往外伸展的力就越大。
这里我们考虑一个理想弹簧,那么弹簧不管拉伸成什么样,或者挤压成什么样,都还是能遵循最初的胡克定律。当然如果我们添加一些弹簧的拉伸阈值或者挤压阈值(弹性限度),那么我们能够仿真更真实的效果。例如我们可以仿真布料被拉坏的效果。

胡克定律

胡克定律用17世纪英国物理学家罗伯特·胡克的名字命名[1]。其力的大小与伸长量或收缩量线性成正比。
公式为:
F = − k ⋅ Δ x F=-k\cdot \Delta x F=kΔx
Δ x \Delta x Δx是两个长度的差值,现在长度和 r e s t l e n rest_len restlen的长度。如果 Δ x \Delta x Δx越大,那么力也就越大。从公式可以看出,如果我们单纯从一个方向看,那么质点所受到的力是相反方向。
非常简单一个公式。接下来结合其他力,做一次力学仿真。

单纯受力分析

假设我们的弹簧,现在是躺在地上,那么地面的支撑力和重力抵消,同时我们假设地面绝对平滑,没有摩擦力。
在这里插入图片描述
左边的弹簧在拉伸的时候,会受到一个向左的力
在这里插入图片描述
因此会导致在速度为0的时候,会向左运动。当向左弹簧的长度小于Rest_len的时候,小球会受到向右的力,逐渐减速。
在这里插入图片描述
接下来,假设我们没有地面。这是一个挂在空中的小球。那么它会额外受到一个重力。
在这里插入图片描述
重力会使我们的小球自然向下掉落,同时也会带动弹簧拉伸。于是仿真效果就如同在弹簧上挂了一个小球。
在这里插入图片描述
如同没有添加小球时效果一样,小球会沿弹簧方向不断做往复运动。公式如下:
F = − k ⋅ Δ x + F g F=-k\cdot \Delta x+F_{g} F=kΔx+Fg
根据牛顿第二定律,物体的加速度与物体受的合力成正比。
F = m a F=ma F=ma
而加速度的大小会决定速度的大小,已知:

V t = V t − 1 + a Δ t V_{t}=V_{t-1}+a \Delta t Vt=Vt1+aΔt
从公式上可以分析得到:已知速度、已知时间长度、已知受力,我们就可以大致去仿真一个弹簧质点模型。
这是大家需要考虑一个问题:弹簧在长度不断变化的过程中,弹力也在不断变化,那么质点所受的力会一直变化。难道有使用定积分这样的工具来计算吗?那么我们如何去计算在一个变化过程中的弹簧的受力过程呢。
其实不然,虽然弹簧是这样一个过程,但是我们可以用一些其他方法来计算:例如欧拉积分、Verlet积分、龙格库塔积分等方法。可以去近似逼近定积分结果。

积分

有了最基本的数学分析之后,我们需要将该算法与实际速度、位置等数据进行推导。这里使用的两种工具:欧拉积分、维特积分。当然对于这两种分析,网上有非常多的详细的论证,这里就不展开将。如果后面有时间,翻译一些国外的资料过来。

欧拉积分

欧拉积分其实分为隐式欧拉显式欧拉,为了简单开发,这里使用显式欧拉方法进行积分。欧式积分,其实可以看成我们假定在一个规定的时间,物体的速度是一致的。那么在这个一致速度的时间范围内,我们就能很好去求解质点下一刻的状态。
V t + 1 = V t + a Δ t V_{t+1}=V_{t} + a \Delta t Vt+1=Vt+aΔt
X t + 1 = X t + V t Δ t X_{t+1}=X_{t} + V_{t} \Delta t Xt+1=Xt+VtΔt

Verlet 积分

Verlet积分参考
Verlet积分会使用上一个时刻的状态来推下一个时刻的状态。
X t + 1 = X t + ( X t − X t − 1 ) + a t ∗ Δ t ∗ Δ t X_{t+1}=X_{t} + (X_{t}-X_{t -1})+a_{t} *\Delta t*\Delta t Xt+1=Xt+(XtXt1)+atΔtΔt

实现结果

Verlet积分
在这里插入图片描述
显式欧拉积分
在这里插入图片描述

总结

两种方法其实都挺简单的,但是实现效果还不错。接下来将会对代码进行说明。然后利用龙格库塔积分方法,去实现绳子的模拟,之后一步一步推导布料仿真上去。
从绳子推导到布料的仿真:
布料本质上就是一系列的绳子的集合,那么可以通过不同绳子的组合来模拟布料。

附录

【1】百科百科。https://baike.baidu.com/item/%E8%83%A1%E5%85%8B%E5%AE%9A%E5%BE%8B/2307271?fr=aladdin

站在巨人的肩上。

创作不易,如果喜欢的话,请点赞,收藏,谢谢。

内容本周末再填写,可以先移步git项目

这篇关于Unity 布料仿真笔记1 弹簧质点模型的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/425767

相关文章

大模型研发全揭秘:客服工单数据标注的完整攻略

在人工智能(AI)领域,数据标注是模型训练过程中至关重要的一步。无论你是新手还是有经验的从业者,掌握数据标注的技术细节和常见问题的解决方案都能为你的AI项目增添不少价值。在电信运营商的客服系统中,工单数据是客户问题和解决方案的重要记录。通过对这些工单数据进行有效标注,不仅能够帮助提升客服自动化系统的智能化水平,还能优化客户服务流程,提高客户满意度。本文将详细介绍如何在电信运营商客服工单的背景下进行

Andrej Karpathy最新采访:认知核心模型10亿参数就够了,AI会打破教育不公的僵局

夕小瑶科技说 原创  作者 | 海野 AI圈子的红人,AI大神Andrej Karpathy,曾是OpenAI联合创始人之一,特斯拉AI总监。上一次的动态是官宣创办一家名为 Eureka Labs 的人工智能+教育公司 ,宣布将长期致力于AI原生教育。 近日,Andrej Karpathy接受了No Priors(投资博客)的采访,与硅谷知名投资人 Sara Guo 和 Elad G

Retrieval-based-Voice-Conversion-WebUI模型构建指南

一、模型介绍 Retrieval-based-Voice-Conversion-WebUI(简称 RVC)模型是一个基于 VITS(Variational Inference with adversarial learning for end-to-end Text-to-Speech)的简单易用的语音转换框架。 具有以下特点 简单易用:RVC 模型通过简单易用的网页界面,使得用户无需深入了

透彻!驯服大型语言模型(LLMs)的五种方法,及具体方法选择思路

引言 随着时间的发展,大型语言模型不再停留在演示阶段而是逐步面向生产系统的应用,随着人们期望的不断增加,目标也发生了巨大的变化。在短短的几个月的时间里,人们对大模型的认识已经从对其zero-shot能力感到惊讶,转变为考虑改进模型质量、提高模型可用性。 「大语言模型(LLMs)其实就是利用高容量的模型架构(例如Transformer)对海量的、多种多样的数据分布进行建模得到,它包含了大量的先验

图神经网络模型介绍(1)

我们将图神经网络分为基于谱域的模型和基于空域的模型,并按照发展顺序详解每个类别中的重要模型。 1.1基于谱域的图神经网络         谱域上的图卷积在图学习迈向深度学习的发展历程中起到了关键的作用。本节主要介绍三个具有代表性的谱域图神经网络:谱图卷积网络、切比雪夫网络和图卷积网络。 (1)谱图卷积网络 卷积定理:函数卷积的傅里叶变换是函数傅里叶变换的乘积,即F{f*g}

秋招最新大模型算法面试,熬夜都要肝完它

💥大家在面试大模型LLM这个板块的时候,不知道面试完会不会复盘、总结,做笔记的习惯,这份大模型算法岗面试八股笔记也帮助不少人拿到过offer ✨对于面试大模型算法工程师会有一定的帮助,都附有完整答案,熬夜也要看完,祝大家一臂之力 这份《大模型算法工程师面试题》已经上传CSDN,还有完整版的大模型 AI 学习资料,朋友们如果需要可以微信扫描下方CSDN官方认证二维码免费领取【保证100%免费

【生成模型系列(初级)】嵌入(Embedding)方程——自然语言处理的数学灵魂【通俗理解】

【通俗理解】嵌入(Embedding)方程——自然语言处理的数学灵魂 关键词提炼 #嵌入方程 #自然语言处理 #词向量 #机器学习 #神经网络 #向量空间模型 #Siri #Google翻译 #AlexNet 第一节:嵌入方程的类比与核心概念【尽可能通俗】 嵌入方程可以被看作是自然语言处理中的“翻译机”,它将文本中的单词或短语转换成计算机能够理解的数学形式,即向量。 正如翻译机将一种语言

【学习笔记】 陈强-机器学习-Python-Ch15 人工神经网络(1)sklearn

系列文章目录 监督学习:参数方法 【学习笔记】 陈强-机器学习-Python-Ch4 线性回归 【学习笔记】 陈强-机器学习-Python-Ch5 逻辑回归 【课后题练习】 陈强-机器学习-Python-Ch5 逻辑回归(SAheart.csv) 【学习笔记】 陈强-机器学习-Python-Ch6 多项逻辑回归 【学习笔记 及 课后题练习】 陈强-机器学习-Python-Ch7 判别分析 【学

系统架构师考试学习笔记第三篇——架构设计高级知识(20)通信系统架构设计理论与实践

本章知识考点:         第20课时主要学习通信系统架构设计的理论和工作中的实践。根据新版考试大纲,本课时知识点会涉及案例分析题(25分),而在历年考试中,案例题对该部分内容的考查并不多,虽在综合知识选择题目中经常考查,但分值也不高。本课时内容侧重于对知识点的记忆和理解,按照以往的出题规律,通信系统架构设计基础知识点多来源于教材内的基础网络设备、网络架构和教材外最新时事热点技术。本课时知识

AI Toolkit + H100 GPU,一小时内微调最新热门文生图模型 FLUX

上个月,FLUX 席卷了互联网,这并非没有原因。他们声称优于 DALLE 3、Ideogram 和 Stable Diffusion 3 等模型,而这一点已被证明是有依据的。随着越来越多的流行图像生成工具(如 Stable Diffusion Web UI Forge 和 ComyUI)开始支持这些模型,FLUX 在 Stable Diffusion 领域的扩展将会持续下去。 自 FLU