GAMES104-现代游戏引擎:从入门到实践 - 物理引擎课程笔记汇总

这篇具有很好参考价值的文章主要介绍了GAMES104-现代游戏引擎:从入门到实践 - 物理引擎课程笔记汇总。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

0 入门资料

  • GAMES104-现代游戏引擎:从入门到实践_课程视频_bilibili
  • GAMES104官方账号 - 知乎
  • 课程主页
  • 课程小引擎Piccolo
  • 课件:
    • GAMES104_Lecture10_Physics System_Basic Concepts.pdf
    • GAMES104_Lecture11_Physics System_Applications.pdf

1 物理引擎

  • 物理引擎的用途:
    • 碰撞检测
    • 解决碰撞、其它约束限制
    • 更新所有物体的世界坐标(world Transform)

基本概念

Actor & shapes

Actor

  • 静态 static actor:不会移动,阻碍你
  • 动态 dynamics actor:符合动力学原理,可以被 forces、torque、impulse影响
  • 触发器 trigger
  • kinematic actor:可以违背物理学,让它按照设计的运动

Actor Shapes

  • 求交点
Shapes 图例 备注
Spheres 球体 GAMES104-现代游戏引擎:从入门到实践 - 物理引擎课程笔记汇总,❤️ 游戏开发与计算机图形学,游戏引擎,笔记
Capsules 胶囊体 GAMES104-现代游戏引擎:从入门到实践 - 物理引擎课程笔记汇总,❤️ 游戏开发与计算机图形学,游戏引擎,笔记 - 人体
Boxes 盒子 GAMES104-现代游戏引擎:从入门到实践 - 物理引擎课程笔记汇总,❤️ 游戏开发与计算机图形学,游戏引擎,笔记
Triangle Meshes 三角 GAMES104-现代游戏引擎:从入门到实践 - 物理引擎课程笔记汇总,❤️ 游戏开发与计算机图形学,游戏引擎,笔记 - 必须是密闭的

- Dynamic actors 不能使用
Height Fields GAMES104-现代游戏引擎:从入门到实践 - 物理引擎课程笔记汇总,❤️ 游戏开发与计算机图形学,游戏引擎,笔记 - 用于地形

Shape 的属性

  • 质量/密度 Mass and Density
  • 质心 Center of Mass
  • 摩擦力/弹性 Friction & Restitution :受到物理材质的影响
  • 力 Forces:常见的力包括拉力、重力、摩擦力
  • 冲力/冲量 impulse:例如爆炸
  • 移动 movement

半隐式欧拉积分
GAMES104-现代游戏引擎:从入门到实践 - 物理引擎课程笔记汇总,❤️ 游戏开发与计算机图形学,游戏引擎,笔记

  • 【优点】
    • 容易模拟
    • 较稳定
  • 【缺点】
    • 实际消耗时间比真实时间要久一点

Rigid body dynamics

粒子动力学 Particle Dynamics 刚体动力学 Rigid body Dynamics
位置 Position x ⃗ \vec{x} x 旋转 Orientation R \boldsymbol{R} R
线速度 Linear Velocity v ⃗ = d x ⃗   d t \vec{v}=\frac{\mathrm{d} \vec{x}}{\mathrm{~d} t} v = dtdx 角速度 Angular velocity ω ⃗ = v ⃗ × r ⃗ ∣ r ⃗ ∣ 2 \vec{\omega}=\frac{\vec{v} \times \vec{r}}{|\vec{r}|^2} ω =r 2v ×r
加速度 Acceleration a ⃗ = d v ⃗   d t = d 2 x ⃗ d t 2 \vec{a}=\frac{\mathrm{d} \vec{v}}{\mathrm{~d} t}=\frac{d^2 \vec{x}}{d t^2} a = dtdv =dt2d2x 角加速度 Angular acceleration α ⃗ = d ω ⃗ d t = a ⃗ × r ⃗ ∣ r ⃗ ∣ 2 \vec{\alpha}=\frac{\mathrm{d} \vec{\omega}}{\mathrm{d} t}=\frac{\vec{a} \times \vec{r}}{|\vec{r}|^2} α =dtdω =r 2a ×r
质心 Mass M = ∑ m i M=\sum m_i M=mi 转动惯量 Inertia tensor I = R ⋅ I 0 ⋅ R T \mathbf{I}=\mathbf{R} \cdot \mathbf{I}_{\mathbf{0}} \cdot \mathbf{R}^{\mathrm{T}} I=RI0RT
动量 Momentum p ⃗ = M v ⃗ \vec{p}=M \vec{v} p =Mv 角动量 Angular momentum L ⃗ = I ω ⃗ \vec{L}=\mathbf{I} \vec{\omega} L =Iω
力 Force F ⃗ = d p ⃗ d t = m a ⃗ \vec{F}=\frac{d \vec{p}}{d t}=m \vec{a} F =dtdp =ma 力矩 Torque τ ⃗ = d L ⃗ d t \vec{\tau}=\frac{d \vec{L}}{d t} τ =dtdL

Collision Detection

  • 碰撞检测:东西是否撞上了
碰撞检测的两个阶段 方法
粗筛 1. 直接用AABB找到相交的刚体

2. 找到潜在的重叠刚体对
1. BVH Tree

2. Sort and Sweep
细筛 1. 进一步检测重叠

2. 得到相交信息

1. 相交点

2. 相交法线

3. 穿透深度
1. Basic Shape Intersection Test

2. MinkowskiDifference-based Methods

3. Separating Axis Theorem
  1. Basic Shape Intersection Test
圆与圆碰撞 圆与胶囊体碰撞 胶囊体与胶囊体碰撞
GAMES104-现代游戏引擎:从入门到实践 - 物理引擎课程笔记汇总,❤️ 游戏开发与计算机图形学,游戏引擎,笔记 GAMES104-现代游戏引擎:从入门到实践 - 物理引擎课程笔记汇总,❤️ 游戏开发与计算机图形学,游戏引擎,笔记 GAMES104-现代游戏引擎:从入门到实践 - 物理引擎课程笔记汇总,❤️ 游戏开发与计算机图形学,游戏引擎,笔记
  1. MinkowskiDifference-based Methods
碰撞 未碰撞
GAMES104-现代游戏引擎:从入门到实践 - 物理引擎课程笔记汇总,❤️ 游戏开发与计算机图形学,游戏引擎,笔记
GAMES104-现代游戏引擎:从入门到实践 - 物理引擎课程笔记汇总,❤️ 游戏开发与计算机图形学,游戏引擎,笔记
  1. Separating Axis Theorem(SAT)
  • 一定能找到一根轴,分离两个凸包
碰撞 不碰撞
2D 情况 GAMES104-现代游戏引擎:从入门到实践 - 物理引擎课程笔记汇总,❤️ 游戏开发与计算机图形学,游戏引擎,笔记 GAMES104-现代游戏引擎:从入门到实践 - 物理引擎课程笔记汇总,❤️ 游戏开发与计算机图形学,游戏引擎,笔记
3D 情况 GAMES104-现代游戏引擎:从入门到实践 - 物理引擎课程笔记汇总,❤️ 游戏开发与计算机图形学,游戏引擎,笔记 GAMES104-现代游戏引擎:从入门到实践 - 物理引擎课程笔记汇总,❤️ 游戏开发与计算机图形学,游戏引擎,笔记
  • 连续碰撞检测 Continuous Collision Detection(CCD)

Collision Resolution

  • 如何处理碰撞?分离
方法 具体方法
加入Penalty Force分离 加一个反向的惩罚力GAMES104-现代游戏引擎:从入门到实践 - 物理引擎课程笔记汇总,❤️ 游戏开发与计算机图形学,游戏引擎,笔记
转为约束问题 解决速度约束 不断尝试给一个冲量GAMES104-现代游戏引擎:从入门到实践 - 物理引擎课程笔记汇总,❤️ 游戏开发与计算机图形学,游戏引擎,笔记
解决位置约束 见 ragdoll - joint constraints

应用与实践

Character controller

  • 反物理的系统:摩擦力无穷大
  • 用 Kinematic Actor
    • 不受物理规则影响
    • 推动别的物体
  • 形状
    • 双层胶囊
  • Sweep test
    • 与物体碰撞后,往旁边平移
  • Stepping 爬楼梯
    • 尝试往上提,再往前走

Ragdoll

GAMES104-现代游戏引擎:从入门到实践 - 物理引擎课程笔记汇总,❤️ 游戏开发与计算机图形学,游戏引擎,笔记文章来源地址https://www.toymoban.com/news/detail-797187.html

  • 人体的 joint 约束(joint constraints)
Hinge

铰链
Ball-and-socket 球窝 Pivot 枢轴 Saddle

鞍状
Condyloid

髁状突
Gliding

滑行
GAMES104-现代游戏引擎:从入门到实践 - 物理引擎课程笔记汇总,❤️ 游戏开发与计算机图形学,游戏引擎,笔记 GAMES104-现代游戏引擎:从入门到实践 - 物理引擎课程笔记汇总,❤️ 游戏开发与计算机图形学,游戏引擎,笔记 GAMES104-现代游戏引擎:从入门到实践 - 物理引擎课程笔记汇总,❤️ 游戏开发与计算机图形学,游戏引擎,笔记 GAMES104-现代游戏引擎:从入门到实践 - 物理引擎课程笔记汇总,❤️ 游戏开发与计算机图形学,游戏引擎,笔记 GAMES104-现代游戏引擎:从入门到实践 - 物理引擎课程笔记汇总,❤️ 游戏开发与计算机图形学,游戏引擎,笔记 GAMES104-现代游戏引擎:从入门到实践 - 物理引擎课程笔记汇总,❤️ 游戏开发与计算机图形学,游戏引擎,笔记

到了这里,关于GAMES104-现代游戏引擎:从入门到实践 - 物理引擎课程笔记汇总的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • Games104现代游戏引擎笔记高级ai

    World State是一个主观的对世界的认知,并不是一个真实世界的描述 Sensors负责从游戏环境中抓取各种状态 HTN Domain 存放层次化的树状结构Task和之间的关联关系1 Planner 根据World State从 Domain 里规划 task Plan Runner 根据 Planner 设定的计划执行 Task,当 Task 执行过程中发生了很多其他问

    2024年02月06日
    浏览(37)
  • Games104现代游戏引擎笔记 网络游戏架构基础

    挑战1:网络同步 挑战2:是网络的可靠性,包括应对网络的延迟,丢包和掉线 挑战3: 反作弊和安全系统,因为网络游戏的本质是经济系统 挑战4:多样性(不同设备,不同服务器),在不停服的情况下热更新 挑战5:大量人数时对高并发,高操作的要求 Socket编程,通过接口,确认好相

    2024年02月08日
    浏览(46)
  • Games104现代游戏引擎笔记 网络游戏进阶架构

    玩家2的视角看玩家1的移动是起伏一截一截,并且滞后的 interpolation:内插值,在两个旧的但已知的状态计算 extrapolation:外插值,本质是预测 内插值:但网络随着时间不停地给我信息包时,信息包可以不均匀(由于网络波动等因素),客户端可以根据给的时间将中间值插出来

    2024年02月08日
    浏览(32)
  • Games104现代游戏引擎笔记 面向数据编程与任务系统

    核达到了上限,无法越做越快,只能通过更多的核来解决问题 Process 进程 有独立的存储单元,系统去管理,需要通过特殊机制去交换信息 Thread 线程 在进程之内,共享了内存。线程之间会分享很多内存,这些内存就是数据交换的通道。 管理Tasking的方法 Preemptive Multitasking 抢占

    2024年02月04日
    浏览(49)
  • 【GAMES-104现代游戏引擎】4、引擎渲染基础(渲染基础数据、全局光照、PBR、阴影)

    游戏渲染的挑战 一个场景包含成千上万的GO需要的材质、shader、效果都不尽相同,因此 复杂度极高 当代各种硬件的适配难度高,硬件架构一直在变化 高帧率、高分辨率的要求下,使得绘制算法绘制一帧的时间越来越短, 算法效率要求高 绘制系统可以100%的使用显卡,但CPU只

    2023年04月09日
    浏览(40)
  • GAMES104实录 | 游戏引擎导论(上)

    本期为GAMES104《现代游戏引擎:从入门到实践》视频公开课文字实录第1期 。 本课程由GAMES(图形学与混合现实研讨会)发起,游戏引擎技术专家王希携手游戏引擎一线开发者共同研发。 课程共计22个课时,将介绍现代游戏引擎所涉及的系统架构,技术点,引擎系统相关的知识

    2023年04月16日
    浏览(28)
  • GAMS104 现代游戏引擎 2

    渲染的难点可以分为一下三部分:如何计算入射光线、如何考虑材质以及如何实现全局光照。 渲染的难点之一在于阴影,或者说是光的可见性。如何做出合适的阴影效果远比想象中要难得多,在实践中往往需要通过大量的技巧才能实现符合人认知的阴影效果。 其次,场景中

    2024年04月16日
    浏览(28)
  • [Games104笔记] 游戏中的渲染管线,后处理

    环境光遮蔽算法及效果 ★Ambient Occlusion: An Extensive Guide on Its Algorithms and Use in VR — ARVI VR (arvilab.com) 翻译: 什么是环境光遮蔽?都有哪些算法?又为何对AR/VR非常重要? The Dark Side Of Ray-Traced Ambient Occlusion (RTAO) | TheGamedev.Guru AO 环境遮挡 Precomputed AO 预计算环境遮挡 SSAO Screen Space

    2024年02月02日
    浏览(38)
  • Unity基础课程之物理引擎6-关于物理材质的使用和理解

     每个物体都有着不同的摩擦力。光滑的冰面摩擦力很小,而地毯表面的摩擦力则很大。另外每种材料也有着不同的弹性,橡皮表面的弹性大,硬质地面的弹性小。在Unity中这些现象都符合日常的理念。虽然从原理上讲,物体的摩擦力和弹性有着更复杂的内涵,例如普通的钢板

    2024年02月07日
    浏览(36)
  • 游戏物理引擎+特效系统

    原文链接:游戏开发入门(六)游戏物理引擎_游戏开发物理引擎-CSDN博客 游戏开发入门(七)特效系统_csdn 游戏效果开发-CSDN博客 1.游戏应用物理的目的就是为了真实 2.物理引擎: 可以认为属于游戏引擎的一个构成部分,但是可以独立剥离开来。游戏中的物理模拟的计算都是

    2024年02月22日
    浏览(31)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包