当前课程知识点:游戏程序设计 > 第十二章 《游戏物理模拟》 > 12.1 著名物理引擎介绍 > 12.1 著名物理引擎介绍
现在呢
就是我要讲的就是一个游戏
物理模拟
对一个虚拟世界来说
我们想要创建
就是游戏其实是
虚拟世界的一个或者叫虚拟现实的一个
最直接的应用
像我们比如说玩的一些枪战游戏啊
然后3D的RPG游戏啊
都是通过3D来渲染
但有一部分是通过2D来做
但是一个趋势
都是说在不断的就是说
通过3D
不管是从视觉效果上以及你的那种
可理解的那种物理规则上的都逐步的就是说
更应该就是说更接近于现实
就是模拟整个就是说
构建整个虚拟世界的
它的最直观的可能就是那个图像的效果
比如说它的光影效果对不对
比如它的一些就是它的那个就是
材质的颜色啊
可能一些就是质感这种效果
然后对于除了这些就是视觉上的效果
还有一些就是你人能感知的就是3D上
或者就是说人
对于重力
虽然说你可能不能直接感知重力
但是呢
你能一个物体从从空中掉下来
它有一个加速度
这个加速度
你对加速度也有一定的
就是说叫感触
就是它的速度快慢也会
决定于你对整个这个世界的一个认知
比如说他落得很慢
你会觉得这个世界可能重力
重力不够
没有重力或者不真实
然后呢
角色与角色之间的
人他是不能穿墙的对吧
因为我们现实生活中的这个物理世界呢
就是像固体固体之间是不可就是穿插的
一般是不可穿插的
当然还有流体
要模拟整个物理世界呢
其实最简单的一个是
物体的那个钢铁的一个重力效果
还有碰撞效果
还有一个就是机械装置
比如像我们车
它的车轮可以转动
但是车轮不会跟那个车进行分离
当然我觉得呢
我总结
就是说
我们其实现在的那个游戏啊
基本上是可以把在前面的
这部分的都不断的
就是说越来越真实
就是像一些就是说
叫真实级
也就应该要真实照片级渲染的一些技术了
就会逐步的加强
就是有就是以前
比如说以前用那个就是CPU软件渲染的
一些场景图的吧
有的时候可以让普通人分辨不出到底是拍出来的
还是照片照出来的
以前就是说通过
就是因为你
因为在做渲染的时候
有的渲染
它可能渲染很长时间
可能半个小时
甚至有的会一天
就是它会
把不断的就是把光影以及颜色
这些的效果不断的把它渲染出来
现在呢
其实通过一些就是游戏里的
一些实时渲染技术也可以
接近于这种叫
就是说照片级的这个效果
当然
它需要非常好的那个机器性能就是
比较好的显卡
就是我们现在呢
其实整个虚拟世界还
比较难于就是说的
然后去实时,就实现实时的话
那其实可能就是我觉得就是一些
蛋白质的一些模拟
包括生命就是生长啊
还有化学反应呢
甚至那个
就是人工智能这块
其实这块我觉得也是整个这个就是说那个
发展的一个方向吧
现在AI的其实是已经在某些方面的
就是说已经比人的人类更就是说更强了
比如像那个之前Google
Google的
那个下棋的那个那个叫什么了
它那个机器的名字
AlphaGo
它已经就是说已经战胜了
就是说
世界冠军李世石以及我们的柯洁同学
就是AI在某一方面的这种
智能其实已经超越人类了
什么是时间
时间是
就是说是一种状态到另一个状态的一个转换过程
比如说像游戏就是物理引擎
或者说虚拟世界里面
然后计算机怎么计算的呢
就是说我当前的这个状态
它其实是有一个帧的概念的
如果数字媒体同学应该知道吧
就不管是就是说
我们做的这种
应该说视频吧
它其实简单的说呢
他就是每一帧
每帧的存储下来的
状态与状态之间它可能没有中间状态
其实对于物理引擎来说也是这样的
就是它整个模拟
整个世界的一个过程的是
一帧一帧的模拟的
一帧一帧的模拟
就是说我模拟了一帧状态之后呢
然后再计算下一帧状态
这个计算的过程中是引入就是
引入这个
就是说比如说
系统外额外给的一些力啊
或给的一些设置
然后以及它内部本身
它有些默认的属性
比如说像重力
或者说碰撞啊
然后呢
再进入下一帧的状态
就是物理通过物理引擎的
通过一帧一帧的这种迭代的方式呢
去不断的去那个
去模拟这个世界
就是也许可能我们的这个世界呢
是不是也是通过这种方式模拟
因为我们这个世界已知也有一个普朗克时间
但是这个普朗克时间到底是不是真是这个物理的
最小的那个时间
但是这个呢
也是一个不太 一个未知的一个
一个东西
但是在我们就是说
我们当前游戏或者说那个3D
物理引擎在技术里面呢
这个时间是最小时间肯定是有的
如果最小时间是零的话
那整个物理状态是模拟进行不下去的
如果你要把整个时间进行暂停的话
那其实你可以一种
一种做法就是不去模拟它
就是说不去TICK它就是停在那里
一种的就是你给他的一个时间呆在那里
它也是停在那里
理论上是这样的
这门课程的就是讲的
讲的就是说
讲一下
就是说一个计算机物理引擎
然后呢
就是说物理引擎的原理
但大家不用慌这个
原理的其实也是很简单的
就是了解下概念
它的一些知道它一些做法
然后游戏
就是说在游戏中
我们会怎么样去使用这些物理
然后游戏中要怎么样去做
还有最后一个就是简单的讲一下
这个物理引擎的使用
大家有没有看
就是了解这三个这个物理引擎
就说这个应该是到目前为止
最知名的三个物理引擎
所以说在
可能在或多或少在电影制作
游戏里面都会有做一些应用
但是它这个物理呢
可能跟一些学术上的研究
比如说某一些这种
比如说分子级量子级这种物理
它不一样
它还是基于就是说我们
宏观世界的这种物理体
比如宏观世界就是一个钢铁啊
一个柔体啊
流体啊以及
以及就是生物
叫生物体中
它通过
它是类似于机械铰链构成的刚体
就是最知名的是这三个一个是《PhysX》
一个是《Bullet》
还有一个是《Havok》
然后这个比较有趣的一点
就是说这三个引擎呢
其实分别位于三个(芯片设计制造公司)
就是三个就是那个
那个叫什么了
叫那个半导体厂商
还应该叫芯片设计商(芯片设计)
芯片出厂商(芯片制造)
一个是NVIDIA,一个是AMD,一个是INTEL
因为为什么他们会收这个东西(物理引擎)
因为这个其实也是游戏推动整个行业发展的
其实我也可以简单讲一下
就是说
其实我从我们最早的PC起
其实现在推动PC的发展
不管是CPU还是显卡发展
其实一大推动力
也是来源于就是说那个游戏行业
因为早期的时候
PC让大家拿来玩的
很多时候是拿来玩游戏
然后呢
像游戏里
就像我之前用过一个叫@《CryEngine3》(游戏引擎)
就是上次就是我之前在
搜狐畅游的时候用的那个引擎
它做出来的游戏呢
或者说
有一个叫什么孤岛危机
然后大家也把它叫成显卡危机
就是说就是它一出来了之后呢
各个厂商的显卡可能吃不住
然后呢
他会在预先发布后显卡的
然后那些显卡厂商的根据他发的游戏呢
再来提高显卡的规格
保证了它的游戏呢
就是它的显卡能运行起那个游戏
也就是其实整个游戏行业还是对整个
整个就是说
那个IT
应该是说对一种芯片这块
是有巨大的推动
在巨大推动的
然后
他们就三个厂商
厂商的就是说为什么要去收购呢
其实就是想证明自己的
自己的这个CPU跑物理对吧
其实跑物理呢
其实意味着就是说要
要去玩那个游戏
那跑这个游戏是非常
就说我的
我的那个CPU的会更好
并且
这些就是说
物理引擎会对他们的那个
这个CPU呢
或者做一些特殊的优化
就是让他的这个
让市面上的游戏可能会更
就是运行游戏的效率帧率更高
效果更好
所以这些厂商的就是
会去收购他们
像这几个物理引擎
其实他们也
就是说像PhysX和havok
其实也经历过开源
然后被商业收购
然后又开源的一个过程
再到目前为止呢
就是那个havok
他其实是不开源的
是英特尔下面的
你用他的话可能要花钱
然后BULLET
AMD旗下 作者是Erwin
Erwin的话
他其实他最早的是在那个索尼工作
也做物理的
后来他自己写了
写了这个BULLET之后最后呢
又跑到AMD去了
被AMD收购了
PhysX呢其实
他会讲究一下
就是说他前身是这个NovodeX
这个是AGEIA的
AGEIA公司的
最早的他是开源
后来成为AGEIA公司之后呢
他当时想做一件事情
就是说
就是说
以前有CPU,有GPU
那我的物理是不是要用一个专门(计算单元)
进行物理运算的
那个CPU呢
然后把他叫PPU(Physics processing Unit)
就是Physics processing Unit
但是呢
他自己想去造这种硬件
就是造这种芯片(造出来了),但是失败了(市场销售失败)
最后呢
就刚好被那个NovodeX给收购了
NovodeX他
他喜欢就是说
他正好因为
因为去计算物理的话
他其实需要大量的并行
并行的计算单元
并行的计算单元
所以他
正好他的那个GPU呢
可以
他觉得他GPU是可以拿来做这个
物理计算的
所以呢
正好去收收购它
然后PhysX
然后改了一版(PhysX2.81,没记错的话)
然后专门来支持
这个就是这个那个GPU
所以呢
有些时候你看看有些有游戏
他可能会有这种
就说是否开启物理
就是那个GPU物理运算的选项
但是实际上在
在我们就是说
游戏里面
用到的还是比较少
因为这里面存在一个问题
就是说
其实物理
其实它相当一个游戏逻辑
就是说比如说我在空中运动啊
运动轨迹
以及我的碰撞了(撞到房子等障碍物)
它其实会有这种就是说
这种事件和物理效果
会影响到游戏比如说你会掉血
但是对于GPU
但是GPU来说
他更适合做这种就是
效果上物理上的效果
比如说我头发这种抖动对吧
我头发抖动的快和慢
其实并不影响游戏逻辑
我并不会因为你开枪开一枪的话
我打到你头发
而让你去上面的吧
一般游戏不会这么做
都是就是脑袋
可能就拿一个简单的box
box就是套在脑袋上的
然后这个射线打到了这个boss
然后就给你扣血
所以像这种就是说那个
那些具有局部攻击这种功能的游戏了
像怪物猎人
或者其他游戏他其实是
包括格斗游戏
像怪物
他其实就在人物身上就是手啊
腿啊
身体啊
那个脑袋要绑一些
就是球、胶囊体
或者是box简单的几何体
然后我因为
因为这个这些东西
因为他这种角色的话
他的那个形态是不固定的
不固定的所以呢
所以他的每帧都
根据他的动作去刷新这些位置
也就是说
这些物理题基本上构成的这种
组合体能基本上是跟那个
就是说那个模型
或者说那个角色模型的那个形状是
基本上是接近的
那接近的情况下
那这时候你玩游戏呢
因为这个东西你看不出来
他可能差一点
差不多点的话
对于技能伤害点
就是说不是那么的
那个绝对的精确
但是相对精确
会比直接一个
拿一个球来去
就是代替整个角色的话要
就是效果要好的多
所以呢
你所以你在CS里打手打头啊
能支持你扣不同多的血
所以回到刚才这个
这个GPU的问题
所以GPU他
适合开一些
就是说表现上的物理效果
比如说草地的那些
草地上的那些摇摆啊
角色跟草地碰撞啊
但是不影响你的游戏逻辑的那个物理
因为物理
我觉得我还是把它分成两部分
一个是就是跟物理相关
一个跟逻辑相关的
一部分是跟那个效果相关的
就是GPU适合做跟效果相关的一些物理效果
-1. 1什么是游戏(上)
--选择题
-1.2 什么是游戏(下)
--选择题
-1.3 游戏是如何开发出来的
-1.4 游戏引擎(上)
-1.5 游戏引擎(下)
--单选题
-1.6 如何成为一个游戏开发者
--多选题
-2.1 什么是游戏服务器
--单选题
-2.2 游戏服务器的和分类发展
--单选题
-2.3 核心技术和实现难点
--单选题
-2.4 设计原理与方法论
--单选题
-3.1 三维坐标系统
--多选题
-3.2 向量与运算
--单选题
-3.3 矩阵与线性变换
--双选题
-3.4 四元数
--3.4 四元数
--多选题
-4.1 游戏循环概述(上)
--多选题
-4.2 游戏循环概述(下)
--单选题
-4.3 《无尽之路》的实现
--单选题
-4.4 支撑游戏的功能
--选择题
-4.5 支撑游戏的机制与系统
--多选题
-5.1 基本介绍
--5.1 基本介绍
--单选题
-5.2 随机数生成器
--单选题
-5.3 随机数分布与应用
--单选题
-6.1 什么是游戏玩法开发
--单选题
-6.2 建立愿景 Vision
--单选题
-6.3 划定边界 Scope
-6.4 迭代 Iteration
--单选题
-6.5 迭代 Iteration+抛光Polish
--单选题
-7.1实时图形渲染管道 宏观渲染系统
--单选题
-7.2实时图形渲染管道 应用阶段
--单选题
-7.3实时图形渲染管道 几何阶段
--单选题
-7.4实时图形渲染管道 光栅化阶段
--单选题
-7.5实时图形渲染管道 总结 参考
-8.1 物理回顾1
--单选题
-8.2 物理回顾2
--单选题
-8.3 材质 1
--8.3 材质 1
-8.4 材质 2
--8.4 材质 2
-8.5 材质3
--8.5 材质3
-8.6局部光照
--8.6局部光照
--单选题
-8.7 全局光照
--8.7 全局光照
--单选题
-9.1 动画介绍
--9.1 动画介绍
--多选题
-9.2 游戏动画介绍
-9.3 动画技术类型
--多选题
-9.4 骨骼蒙皮动画
--多选题
-9.5 动画流水线
--多选题
-9.6 动画前沿趋势
--多选题
-10.1 .基本概念
--多选题
-10.2 设计目标
--多选题
-10.3 传输数据分析
--多选题
-10.4 常用同步方案 1
-10.4 常用同步方案 2
-10.4 常用同步方案 3
-10.4 常用同步方案 4
--多选题
-10.5 方案对比
--多选题
-11.1 基本图元
--单选题
-11.2 图元距离(上)
--单选题
-11.2 图元距离(下)
--单选题
-11.3 图元相交测试+ 其他几何方法
--单选题
-12.1 著名物理引擎介绍
--单选题
-12.2 物理引擎原理(上)
--单选题
-12.3 物理引擎原理(下)
--单选题
-12.4 游戏中的物理体
--单选题
-12.5 物理引擎使用入门
--单选题
-13.1开发语言
--13.1开发语言
--单选题
-13.2 开发环境
--单选题
-13.3 腾讯开发组件介绍
--单选题
-13.4 网络通信+业务框架介绍
--多选题
-14.1 进程间通信(上)
-14.2 进程间通信(下)
-14.3 通信格式
-14.4 并发模型
-14.5 超时处理
-14.6 大系统小做(上)
--多选题
-14.7 大系统小做(下)
-14.8 架构层面的技术支持(上)
--单选题
-14.9 架构层面的技术支持(下)
-14.10 分布系统的关键能力
--多选题
-15.1 游戏人工智能综述
-15.2 人工智能在游戏中主要方法 上
--多选题
-15.3人工智能在游戏中主要方法 (下)
-15.4 人工智能在游戏制作中的应用领域1
--多选题
-15.5 人工智能在游戏制作中的应用领域2
-15.6 人工智能在游戏制作中的应用领域3
--多选题
-15.7 人工智能在游戏运营中的应用实践(上)
-15.8 人工智能在游戏运营中的应用实践(下)
--多选题
-16.1 游戏支撑系统(1)
--单选题
-16.2 游戏支撑系统(2)
--单选题
-16.3 游戏支撑系统(3)
--单选题
-16.4 游戏支撑系统(4)
--单选题
-16.5 游戏支撑系统(5)
-17.1 游戏逻辑服务器(上)
--单选题
-17.1 游戏逻辑服务器(下)
-17.2 外挂与反外挂(上)
-17.2 外挂与反外挂(下)
--多选题
-18.1运行环境
--18.1运行环境
--多选题
-18.2物理部署
--18.2物理部署
--多选题
-18.3系统的可运维性
--多选题
-18.4运维案列分析
--多选题