IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 游戏开发 -> (二)flaxEngine 游戏引擎物理系统 -> 正文阅读

[游戏开发](二)flaxEngine 游戏引擎物理系统

2021SC@SDUSC

1:初步分析

?

? ? ? ? flaxEngine 源码中已经将物理引擎系统单独分出一个包来,很方便我们确定代码位置。

????????

????????在阅读代码之前我们需要先确定源代码的内容和整体框架。这样会让我们更加清楚读到的是什么代码而不是像无头苍蝇一样 对着源代码一顿分析一顿看结果看了半天什么也没看懂。所以我在阅读源码之前先要通过对源码大致的框架的分析和阅读在结合网上的关于游戏引擎的初步介绍来分析flaxEngine游戏引擎中的物理系统的结构,在了解和掌握不同.cpp,.h文件的作用的任务后在深入源代码进行源码的分析。

????????所以本次博客我将针对flaxEngine物理引擎进行框架的分析,了解不同包和.cpp,.h文件的内容和相关的作用。

在查阅相关资料下我基本确定了几次关键术语

1:actors:角色,大概是指所有参与运算的实体,也就是在场景中的运算单位

?

? ? ? ? (1)刚体:物理引擎中最重要的基本单元

? ? ? ? ? ? ? ? 其物理定义是刚体是指在运动中和受力作用后,形状和大小不变,而且内部各点的相对·??????????位置不变的物体。?

? ? ? ? ? ? ? ? 而在游戏引擎中Rigidbody(刚体)可以为游戏对象赋予物理属性,使游戏对象在物理系统的控制下接受推力与扭力,从而实现现实世界中的运动效果。???

? ? ? ? ? ? ? ? 也就是说一个游戏模型只有添加了刚体这个组件才能使其受到物理系统的影响,所以说刚体是游戏引擎中最基本的组件,也是物理引擎受用的基本组件。换句话说刚体是物理引擎的基本组件之一。

????????????????在一个物理引擎中,刚体是非常重要的组件,通过刚体组件可以给物体添加一些常见的物理属性,如质量、摩擦力、碰撞参数等。通过这些属性可以模拟该物体在 3D 世界内的一切虚拟行为,当物体添加了刚体组件后,它将感应物理引擎中的一切物理效果。

? ? ? ? (2)SplineRopeBody

? ? ? ? 这个应该是动态的连线条:3D游戏中的线条具有线性特征。也是类似刚体一样是游戏引擎中物理模型的一个载体,也就是一个物理组件。这个组件用的并不是很多,在网上也难以找到相关资料。所以针对此组件我将在之后深入源代码进行更加细致的分析。

? ? ? ? (3)WheeledVehicle

? ? ? ? 这个组件的用来创建有轮子的交通工具的例如—汽车等。也是一种物理引擎的组件不过是一个大组件是基于上面两种小组件形成一个大组件,而由于汽车的应用很广所以在flaxengine中直接使用刚体这个基本组件合成大组件汽车来简化操作。

2:Colldiers:碰撞体:顾名思义对撞体就是让角色(actor)具有现实中碰撞后的效果。

? ? ? ? ?(1)BoxCollider:盒碰撞器

????????盒碰撞器是一个基本的方形碰撞原型。
????????可以将箱体碰撞体 (Box Collider) 大小调整为不同形状的矩形棱镜。它十分适用于门、墙壁、平台等。它还可有效地作为布娃娃中的人体躯干或车辆中的车体,用来模拟长方形碰撞。

? ? ? ? (2)CapsuleController:胶囊碰撞体

????????由两个半球体与一个圆柱体相连接而构成。它与胶囊 (Capsule) 基元形状相同。

可以相互独立地调整胶囊碰撞器 (Capsule Collider) 的半径 (Radius) 和高度 (Height) 。它在角色控制器 (Character Controller) 中使用,适用于柱状物,也可以与其他碰撞器 (Collider) 结合用于异常形状。

这里写图片描述

?

? ? ? ? (3) Mesh Collider:网格碰撞器

????????

利用?网格资源?并在其上构建碰撞器。对于复杂网状模型上的碰撞检测,它要比?基元碰撞器(boxCollider、capsuleCollider等)精确的多。标记为 Convex 的网格碰撞器才能够和其他网格碰撞器发生碰撞。

? ? ? ? (4)其他碰撞体:我在网上找到了相关的资料可以总结在一种图中

这里写图片描述

3:Joints:连接 用来模拟现实中的各种连接 比如弹簧的连接等等

?

(1)Hinge Joint 铰链关节

? ? ? ? 其作用是将两个刚体束缚在一起,在两者之间产生铰链效果

(2)Fixed Joint 固定关节

????????固定关节组件用于约束一个游戏对象对另一个游戏对象的运动。
????????固定关节适用于以下的情形:当希望将对象较容易与另—个对象分开时,或者连接两个没有父子关系的对象使其一起运动,使用固定关节的对象自身需要有—个刚体组件。

(3)Spring Joint 弹簧关节

????????弹簧关节组件可将两个刚体连接在—起,使其像连接着弹簧那样运动。

??(4) Distance Joint 固定距离关节

? ? ? ? 两个刚体之间固定距离。

? ?(5)D6 Joint :不知道具体用途在网上也找不到相关内容,在之后查看源码后,进行相关内容的解释。

  游戏开发 最新文章
6、英飞凌-AURIX-TC3XX: PWM实验之使用 GT
泛型自动装箱
CubeMax添加Rtthread操作系统 组件STM32F10
python多线程编程:如何优雅地关闭线程
数据类型隐式转换导致的阻塞
WebAPi实现多文件上传,并附带参数
from origin ‘null‘ has been blocked by
UE4 蓝图调用C++函数(附带项目工程)
Unity学习笔记(一)结构体的简单理解与应用
【Memory As a Programming Concept in C a
上一篇文章      下一篇文章      查看所有文章
加:2021-10-08 12:05:58  更:2021-10-08 12:06:36 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/28 2:35:03-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码