当前位置: 首页 > news >正文

【C++游戏引擎开发】第30篇:物理引擎(Bullet)—软体动力学系统

一、软体动力学理论体系

1.1 连续体力学基础

1.1.1 变形梯度张量

物体运动可描述为映射函数:
x = ϕ ( X , t ) \mathbf{x} = \phi(\mathbf{X},t) x=ϕ(X,t)
其中 X \mathbf{X} X为物质坐标, x \mathbf{x} x为空间坐标。变形梯度张量定义为:
F = ∂ x ∂ X = ∇ X ϕ \mathbf{F} = \frac{\partial \mathbf{x}}{\partial \mathbf{X}} = \nabla_X \phi F=Xx=Xϕ

关键分解定理:
F = R U = V R \mathbf{F} = \mathbf{R}\mathbf{U} = \mathbf{V}\mathbf{R} F=RU=VR
其中 R \mathbf{R} R为旋转张量, U \mathbf{U} U V \mathbf{V} V为右/左拉伸张量

1.1.2 应变度量

Green-Lagrange应变张量:
E = 1 2 ( F T F − I ) \mathbf{E} = \frac{1}{2}(\mathbf{F}^T\mathbf{F} - \mathbf{I}) E=21(FTFI)

柯西应力张量 σ \mathbf{\sigma} σ与第二类Piola-Kirchhoff应力 S \mathbf{S} S的关系:
S = J F − 1 σ F − T \mathbf{S} = J\mathbf{F}^{-1}\mathbf{\sigma}\mathbf{F}^{-T} S=JF1σFT
其中 J = det ⁡ ( F ) J = \det(\mathbf{F}) J=det(F)

1.2 本构方程

1.2.1 Saint Venant-Kirchhoff模型

适用于大变形弹性体:
S = λ tr ( E ) I + 2 μ E \mathbf{S} = \lambda \text{tr}(\mathbf{E})\mathbf{I} + 2\mu\mathbf{E} S=λtr(E)I+2μE
其中λ和μ为Lamé参数,满足:
μ = E 2 ( 1 + ν ) , λ = E ν ( 1 + ν ) ( 1 − 2 ν ) \mu = \frac{E}{2(1+\nu)}, \quad \lambda = \frac{E\nu}{(1+\nu)(1-2\nu)} μ=2(1+ν)E,λ=(1+ν)(12ν)Eν
(E为杨氏模量,ν为泊松比)

1.2.2 Neo-Hookean模型

适用于不可压缩橡胶材料:
Ψ = μ 2 ( I 1 − 3 ) − μ ln ⁡ J + λ 2 ( ln ⁡ J ) 2 \Psi = \frac{\mu}{2}(I_1 - 3) - \mu\ln J + \frac{\lambda}{2}(\ln J)^2 Ψ=2μ(I13)μlnJ+2λ(lnJ)2
其中 I 1 = tr ( C ) I_1 = \text{tr}(\mathbf{C}) I1=tr(C)为第一应变不变量, C = F T F \mathbf{C} = \mathbf{F}^T\mathbf{F} C=FTF

1.3 空间离散化方法

1.3.1 质点-弹簧系统

离散化后的动力学方程:
m i x ¨ i = ∑ j ∈ N ( i ) f i j spring + f i ext m_i \ddot{\mathbf{x}}_i = \sum_{j \in \mathcal{N}(i)} \mathbf{f}_{ij}^{\text{spring}} + \mathbf{f}_i^{\text{ext}} mix¨i=

http://www.dtcms.com/a/174673.html

相关文章:

  • 【Linuc】深入理解 Linux 文件权限
  • 【MySQL】-- 数据库约束
  • SPP 和 yolo 中的SPP
  • 栈与队列详解及模拟实现
  • spring cloud gateway(网关)简介
  • 【HTML5】显示-隐藏法 实现网页轮播图效果
  • 路线 北大国际医院
  • Deepseek流式操作与用户行为数据分析day01
  • MySQL中MVCC指什么?
  • SQL大场笔试真题
  • 笔记本外接显示器检测不到hdmi信号
  • RabbitMq(尚硅谷)
  • 基于docker使用showdoc搭建API开发文档服务器
  • python + whisper 读取蓝牙耳机, 转为文字
  • 如何把阿里云a账号下面的oss迁移到阿里云b账号下面(同区域)
  • vue插槽类禁止绑定class样式等(纪录篇)
  • C++ vector 介绍与使用
  • WiFi那些事儿(五)
  • Kotlin扩展函数提升Android开发效率
  • 高频电流探头:通信测试中的隐形守护者
  • 14.Spring Boot 3.1.5 集成 Spring Security 进行访问控制
  • 基于k8s的Jenkins CI/CD平台部署实践(三):集成ArgoCD实现持续部署
  • RNN 与 CNN:深度学习中的两大经典模型技术解析
  • LeetCode 热题 100 198. 打家劫舍
  • 通用解析—bs4+jsonpath
  • Redis 使用及命令操作
  • 实操3:6位数码管
  • C语言的重要知识点☞static关键字
  • 探索SQLMesh中的Jinja宏:提升SQL查询的灵活性与复用性
  • 人工智能任务24-AI学习中的模型训练中稀疏化参数与稀疏损失函数,以及实战项目应用