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

【C++游戏引擎开发】第31篇:物理引擎(Bullet)—碰撞检测系统

一、碰撞检测数学基础

1.1 空间分割理论

空间划分类型

  • 均匀网格:将空间划分为等体积单元,适合均匀分布场景
  • 八叉树:递归细分空间至指定深度,复杂度 O ( log ⁡ n ) O(\log n) O(logn)
  • BSP树:通过超平面分割空间,适合静态场景

AABB(轴向包围盒)​
数学定义:
AABB = [ min ⁡ x , max ⁡ x ] × [ min ⁡ y , max ⁡ y ] × [ min ⁡ z , max ⁡ z ] \text{AABB} = [\min x, \max x] \times [\min y, \max y] \times [\min z, \max z] AABB=[minx,maxx]×[miny,maxy]×[minz,maxz]
快速相交测试:
intersect ( A , B ) = ( max ⁡ x A > min ⁡ x B ) ∧ ( min ⁡ x A < max ⁡ x B ) ∧ . . . \text{intersect}(A,B) = (\max_x^A > \min_x^B) \land (\min_x^A < \max_x^B) \land ... intersect(A,B)=(xmaxA>xminB)(xminA<xmaxB)...

1.2 几何相交算法

1.2.1 GJK算法

核心思想:通过迭代计算闵可夫斯基差集的最近点

算法步骤:

  1. 初始化方向向量 d ⃗ \vec{d} d
  2. 计算支持点:
    S A − B ( d ⃗ ) = argmax p ∈ A p ⃗ ⋅ d ⃗ − argmax q ∈ B q ⃗ ⋅ d ⃗ S_{A-B}(\vec{d}) = \mathop{\text{argmax}}\limits_{p \in A} \vec{p} \cdot \vec{d} - \mathop{\text{argmax}}\limits_{q \in B} \vec{q} \cdot \vec{d} SAB(d )=pAargmaxp d qBargmaxq d
  3. 构建单纯形并判断包含原点性
  4. 更新搜索方向,直至收敛

收敛条件:
∣ d ⃗ ⋅ v ⃗ ∣ < ϵ |\vec{d} \cdot \vec{v}| < \epsilon d v <ϵ

1.2.2 EPA算法

作用:在GJK检测到相交后计算穿透深度

执行流程:

  1. 扩展GJK生成的初始单纯形
  2. 迭代寻找最近边/面
  3. 计算接触法线和穿透深度

误差控制:
δ = ∣ n ⃗ ⋅ p ⃗ ∣ ∣ n ⃗ ∣ ≤ tolerance \delta = \frac{|\vec{n} \cdot \vec{p}|}{|\vec{n}|} \leq \text{tolerance} δ=n n p tolerance

1.3 分离轴定理(SAT)

定理扩展:对于两个凸多面体,需测试以下候选轴:

  1. 物体A的面法线
  2. 物体B的面法线
  3. 所有边对的叉积方向

投影计算:
proj O ( a x i s ⃗ ) = [ min ⁡ v ∈ V ( v ⋅

相关文章:

  • 学习Python网络爬虫的实例
  • SpringBoot 集成滑块验证码AJ-Captcha行为验证码 Redis分布式 接口限流 防爬虫
  • 数据清洗-电商双11美妆数据分析
  • Python入门(一)
  • 怎样通过API 实现python调用Chatgpt,gemini
  • 爱情的本质是什么--deepseek
  • 20250506联想Lenovo笔记本电脑的USB鼠标失效之后在WIN10下的关机的方法【触摸板被禁用】
  • Hologres x 函数计算 x Qwen3,对接MCP构建企业级数据分析 Agent
  • C++笔记-二叉搜索树(包括key,key/value搜索场景等)
  • 【SDRS】面向多模态情感分析的情感感知解纠缠表征转移
  • Ubuntu开放端口
  • Windows玩游戏的时候,一按字符键就显示桌面
  • C++ 渗透 数据结构中的二叉搜索树
  • Linux:进程间通信---命名管道共享内存
  • Python 脚本打包成可执行的 .exe 文件
  • 【quantity】0 README.md文件
  • JavaScript 到命令和控制 (C2) 服务器恶意软件分析及防御
  • Godhood ID——迈向去中心化AI情商生态系统的第一步
  • 单调栈算法精解(Java实现):从原理到高频面试题
  • 探秘数据中台:五大核心平台的功能全景解析
  • 一揽子十条货币政策措施出炉:降准降息,设立五千亿服务消费与养老再贷款
  • 这个接班巴菲特的男人,说不出一个打动人心的故事
  • 海港通报颜骏凌伤停两至三周,国足面临门将伤病危机
  • 美国清洗政治:一幅残酷新世界的蓝图正在展开
  • 豆神教育:2024年净利润1.37亿元,同比增长334%
  • 【社论】人工智能,年轻的事业