当前位置: 首页 > 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=

相关文章:

  • 【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开发效率
  • 高频电流探头:通信测试中的隐形守护者
  • 哥伦比亚总统称将在访华期间签署“一带一路”倡议意向书,外交部回应
  • 央行:今日起下调再贷款利率0.25个百分点
  • 郑州一街道被指摊贩混乱经营,12345热线:已整治并加强巡查
  • A股高开高走,三大股指涨超1.1%:两市成交1.3万亿元,近5000股收涨
  • “五一”假期出入境人数达1089.6万人次,同比增长28.7%
  • 申活观察|精致精准精细,城市“双面镜”照见怎样的海派活力