当前课程知识点:游戏程序设计 > 第八章 《材质着色与光照》 > 8.1 物理回顾1 > 8.1 物理回顾1
大家好
我叫黄健聪
我是来自光子技术中心
上一个老师已经给大家讲了一些游戏里面
渲染管道的一些基础的知识
然后后面我会讲一下
怎么样去产生一个好的一个游戏的画面
主要是讲一些光照的模型
怎么对通过数学或者去公式去
去对一些材质进行光照着色
然后我做过和平精英
还有PUBGMobile
还有那个之前在网易的时候也做过
Messiah
还有梦幻西游3D版
这个课程主要是关注于
物理跟渲染一些关系
但不会尝试覆盖所有的一些技术细节
因为对一个对一个技术来说
覆盖技术细节的话就时间就不太足够
所以我们会讲一下整个渲染的一些技术的脉络
然后也尝试比以前的图形课
更加的从一个物理的视觉上出发去长尝试
那个物理跟渲染的这关系
然后大家会收获了什么
最起码可以在生活里面
看到一些光和物质交过的一些现象
比如一些高光
或者反射大概会理解它的一些物理背景
也可以在玩游戏时候更加清楚的了解一些
游戏的一些画面的选项
它具体的效果还有大概的一些消耗
然后我们的目我们大概会分为四个部分
首先
前面对物理会进行回顾
主要是讲一些光的物理的特性
然后会讲些材质
光到底会跟什么样的类型材质会进行交互
包括不透明的
透明的部分
然后还有后面课
讲局部的光照的模型
就光怎么跟材质进行单次加固周产生什么
产生什么样的画面
关于在场景里面的多次的反弹
多次反弹就会有整体的一个
更好的游戏画面的效果
然后前面会讲什么是什么是渲染
渲染的话
其实是一个平衡物理
跟有限计算资源的艺术
为什么会说
因为在我们实时渲染的场景里面
主要就是游戏游戏的话
它是有很有限的计算资源的
从
而且它的尺度是非常大的
从不同种类的一个资源
包括计算的集群
现在我们常说的云游戏
就主要就是从集群来进行运算
包括你自己个人PC的电脑
还有主机到手机
它之间所有的设施设备的
那个算力的差异是很大的
然后我们
而我们游戏关注的是实时渲染
实时渲染的话
你只能在有限的一帧的时间里面去完成
你整个所有画面渲染的计算
比如里一个游戏是六十帧的话
它中间隔就走16毫秒
那么你就一定要在那个
固定的帧率的时间区间
提交下一帧画面
只要没有及时在16毫秒内提交
这个画面的话
就会产生一些抖动了
然后这也讲一个问题就是
既然渲染跟算力是这么强的一个关系的话
所以也还很容易理解
为什么游戏的画面比不过一些电影的画面
因为电影是离线的离线渲染之后
通过很大的计算齐群很长的时间
等几天去渲染一帧画面也有了
所以
所以实时游戏
在有限的算力是比不过电影的画面
它只能在有限的资源里面计算
然后我们整个课程主要是覆盖的
是真实性的渲染
渲染其实包括多方面
有的卡通的渲染也有漫画风格的渲染
但是
为什么主要讲真实性渲染
一般来说
第一个是我们程序比较好控制角色
卡通漫画风格的话
那它是美术需要美术渲染的部分比较多
然后这时渲染就像你学画画时候
一个树苗的基础一样
有一个真实的光影的关系
也是别的艺术渲染的一个基础
然后这个新渲染
主要就是有我们就叫基物流渲染
也是现在叫做PPR
就是现在很多游戏
在这几年画面提升比较巨大的原因之一
就是它的光照
基于更精确的物理模型进行渲染
这是物理里的模拟
包括对材质的物理建模和光照的物理建模
然后他整体的结果就是
关于物质这些间的交互的结果
然后
会讲下渲染
其实渲染就是一个
数字模拟光学成像的一个过程
你在它主要有三部分的主体
一个是一个光源发射的光线要有场景里面
要交付的物体要被是被观察的物体
然后另一个就是有接收的眼睑
就是你感受光线的一个或者在游戏里面
也可以叫摄像机
去观察里你这一帧的画面
然后我们渲染
我一般是从计算机图形学来说的
另一类另一个分类还有计算机视觉
计算机视觉的话就主要是反过来
它是从真实的照片或视频
去得出我们被模拟的这些物体光源
还有跟场景的交互
它是从一个最终的图片或视频
去返回反馈这个过程
所以一般我们会说那个计算机图形
跟计算机视觉是一个相反的一个过程
这也因此
由于这个原因是
指的是这两门学科有很大的区别
就是我们计算机图形学大部分的工作
大部分你看那个西瓜会议论文
或者以前的一些工作
都是从一个确定的物理公式
和数学推导去出发的
就是被不论是被观察的物体
它的三角模型还是它的材质的
一个光学模型都是已经建模好的数字模型
然后假如就是视觉的话
这大部分都是从模糊选点或者是神经网络的
这些统计的方法
训练的方法去出发去做它的工作
然后我们做渲染的真实性
渲染的原则就是要保证模拟的真实性
所以
要以物理研究为背景
然后由这个左图里面
我们基本上为什么人眼
会看到一个红色苹果是红色的话
就是主要是因为这苹果的皮
它把一个白光里面其它除了红色波长的
其它光的波长都吸收了
然后就反射到两点的时候就紫色红色
这其实就是一个类似渲染的过程
然后后面我们就会讲这个
这些计算是怎么产生的
然后要具体怎么建模
然后我们可以先看一下
当前是渲染一个那个比较好
比较近近期的一个效果
是可以做到什么程度
大家在看这个demo
Unity最新的一个引擎它的一个
示例demo
然后你在里面会看到
它主要是一些植被环境
里面有草
有树
现在类似一个pc的算力和主机的算力
可以渲染的三角面数是根据它们的真实性相差很大
然后
这会先讲一下渲染的方程
就假如我整个PPT
都只用看一个公式的话
就后面的都后面只是一些介绍
唯一要讲的只是这一个公式
因为这是渲染里面一个最重要的公式
然后
然后
整个其实在后面整个几何的光学
或者计算机图形学里面几何光学部分
都是围绕着这个公式
在不同的一个尺度去进行研究的
然后从公式的理解就是首先
你首先前面第一项它这个就是
人眼看到的一个接收的光线就是这个
这个反射的方向
这个就是一个我们要观察的
物体的某一个极小的点吧
在这个在物体表面上面
然后我们过一个观察者
能够光观察到多少能量呢
它就是等于这个物体表面这个点
它自身朝着这一个观察方向发出的能量
这个一般我们也可以叫它是自己会发光的物体
把它能自己设计的光源
或者是那些广告板
有的发光的LED之类的
然后再加上
加上
就是这个物体表面上这个点
它上面覆盖的一个半球面
它能接受到的所有的一些入射的光线
这个积分就是这个半球面的一积
这半球面的意思
然后
它能接受它所有的这个就是入射的光线
这个叫Li
然后
这个每一根入射光线朝着这个观察方向
它反弹了多少能量
就是由这一个
这个我们后面就叫BRDF项
BRDF项就是Fr
然后来组成整个
整个把每一根光线的这个反射的能量
都收集起来
从这个半球面上
然后就会得到我们整个
整个这个观察者
能观察到的这个物体表面的一个能量
然后也是人为什么会感觉
看到某个物体表面到底是什么颜色
就是它能接收到的光线来决定的
然后前面这个后面也会细讲
这个为什么叫BRDF
就是这个反射它到底是什么意思
其实是代表了一个从某一个方向入射方向
到你这个固定的这个出射方向
这两个成对的方向
上面
它有光有多少概率反弹到这个方向上
所以其实整个公式的理解
就是这人眼也能看到的所有的能量
就是它自己自身发出能量
还有这个物体表面接收到所有的能量
朝这个方向反弹的一个能量的核
后面会讲一下
刚才那个余弦定理为什么
会有一个光打到一个物体表面的时候
为什么要乘于刚才的cos c塔
比较直观的就是我们那个
高中物理应该也会讲过
地理里面也会讲太阳直射到赤道的时候
它会产生热带的那个地球表面
接受到的能量最高
要到太阳射射向地球的南北区的时候
只要它的右上角是慢慢乘以90度
基本是插过这个物体的表面
和它接触的能量是根据这个
入射角是一个衰减的关系
然后怎么其实有各种图的画法
去理解这个cos c塔关系
但是对于我来说比较好理解
就左上角这个比较好理解
就假设我这个物体表面
是一个固定的一个微元
固定面积大小的一个微元
去接受这个光线的能量的话
这光线那光线的能量
它只要是一个平形光
度是固定的话
那它总的能量大小
就跟这个截面的一个面积是有关的
但当你这个光线慢慢右上角慢慢变大
慢慢变接近垂直的时候
它这个打到这个物体上面
这个
前面是
是慢慢比这个
你要接受着刚才说的那个
这个微元的面积是要大的
而且越来越大
所以它能接受的光是衰减的越来越厉害
因为比如之前一开始情况
它是完全可以将整个
这一段的光线全部接收了
然后后面只能接收它能量的一部分
后面会做一下物理的回顾
对光线的一些特性
然后光
一般都说光是电磁波
然后他所以他会有波粒二象性
波的特性的话
就会有什么有什么现象产生衍射的现象
就波的话像水波声波
它可以绕过
阻挡体
然后粒子特性主要是沿直线传播的
所以这两个其实蛮矛盾的
但是什么时候会呈现波的特性
会多一点
什么时候会呈现粒子特性
多一点的后面
也会讲
-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运维案列分析
--多选题