当前课程知识点:游戏程序设计 >  第八章 《材质着色与光照》 >  8.7 全局光照 >  8.7 全局光照

返回《游戏程序设计》慕课在线视频课程列表

8.7 全局光照在线视频

下一节:9.1 动画介绍

返回《游戏程序设计》慕课在线视频列表

8.7 全局光照课程教案、知识点、字幕

下面讲一下全局光照

全局光照

我们在很多游戏里面都会提到

其实就是光在跟物质不只是做一次浇灌

会做非常多次的交互

也会对我们场景的真实感

产生很大的影响

首先看下生活中

会有哪些全局光照的现象

主要有四个

第一个是间接光照

间接光照主要他产生的效果就是

光着这场景面前多次反弹

然后它每一次反弹主要的贡献是

一个漫反射的贡献为主

它看到的现象就是

我们可以看到像这个黄色的墙

假如在这个盒子顶部打一个灯的话

它黄色的墙会慢慢的把这一部分

被照明的物体慢慢染成了黄色

然后蓝色墙会把这边养成的蓝色

在一种小型场景会看到

就会快看到一个颜色蔓延的一个现象

这款色黄色叶子旁边也会有些偏黄的色

这个主要就是间接光照

然后它有那个效果

就是这光源是朝着面光源在外面

面光源是让它朝着这一边发出的光

假如只有局部光照模型的话

在这个面光源背后的部分的像素

是完全黑的一点光都没有

当时它通过光路的多次反弹

通过间接光照它可以照明到

这个墙后面的效果

然后另一个现象就是环境光遮蔽

我们常常游戏选项里面它就叫AO

AO主要是来模拟什么现象呢

就假设及主要模拟一个

大面全局的大面积的光源

模拟天空整个天空对对整个场景的光照

假设整个天空的那个能量都是均匀的话

它对这个场景光

很均匀的光照就会产生一些明亮的效果

其实也是模拟这个天宫这半球面的一个

光源对场景产生了一些阴影效果

它主要贡献也是漫反射去贡献

另外一个比较生活中能观察到的一个

就是光照方向上

这个反射

跟刚才高光反射不一样

刚才高光反射指的都是分析

则是光源要在这里的反射

主要是指在实际场景渲染中

我们可以看到一个一面镜子会反射到场景

另外一边一模一样的像

比如像那个这个桌子比较光滑的话

我们看到这个桌子可以这个这个光滑的桌面

会反射到它这个窗户的一些

这个框架的一些阴影

它这个反射现象是无处不在的

每一个表面

每一个表面都会存在

假设不是一个桌子

是一面镜子的话

就可以很清晰地反射到游戏里面

另外这个方向上的这个窗户

室外的场景

这个

然后另一部分就焦散现象

焦散现象就可以看到主要是模拟这个光路

穿过这个半透明的像这个钻石之后

打在那个地面上

投影会有一些更亮了一些光斑

还有一个比较暗的部分

其实就是因为折射值改变了光路的方向

要那些光更加聚焦像放大镜

或者是像那个有游泳池里面

会可以看到焦散现象十分明显

在游泳池的一个池底下面

我们游戏有时候也会对这现象模拟

然后有什么全局光照的方法

去模拟前面说的一些现象

主要是有三个方法

一个是

路径追踪

去跟踪每一条光路的射线

然后光子映射其实

Photon Mapping也是一个光路跟踪的方法

然后辐射度

辐射度只能模拟漫反射的现象

模拟不了前面说了一个

高光反射的一些现象

然后

然后存储在存储的一些分类

在后面在讲

然后前面两个方法

也是我们电影会用到的一个

一个离线渲染的方法吧

也是就我们可以说是接近光速的一些方法

它也可以产生一些无偏差的一些图像

假设路径跟踪

路径跟踪其实就是最暴力的

去真实的去通过算例去计算游戏场景里面

每条光路的一个反弹一个结果

我们一般起始点会从

相机出发

这里有个相机

据说射线到场景里面

然后打到场景之后

通过刚才说的那个BRDF概率函数去

计算它每一次反弹反弹出射的方向

然后再跟场景另外一个方向进行反弹

然后它在里面不断反弹

但假如这个射线没有达到光源的话

这射线贡献完全是黑的

然后我们一般会在最后一次反弹的时候

强行把它跟光源连接起来

强行连接起来的时候也要

连接关的时候也要看这个有没有物体挡到

有物体挡到的话就就变成是有阴影

没有挡到的话就直接就打到光源上面

就会有计算光源的贡献

跟它前面的一些贡献

去连成乘起来

但是

通过这种技术渲染出来的图像

就会可以看到山周边的图像

是十分多噪点的

你需要去发射每个像素会发射更多的射线

你才能接近一个完美

没有噪点来个效果

所以这个是十分耗时十分

十分耗时的一个技术吧

但我们因为现在在推RTS

就是那些光线追踪的显卡

我们也开始在渲染里面也会引入一部分

这些技术

当我们可能最多只能做到

每个像素只有一个sample

就只能是这种图像

但是我们会通过别的一些

不是无偏差的

通过一些比较模糊

像附近像素模糊的手法

是对图像进行降噪

然后

这个是一个路径跟踪的一个demo

有兴趣的话可以去shadertory自己看

然后这个是我们讲过photo mapping光子映射

它其实跟那个刚前面说的路径跟踪

其实也是类似的

但是不一样的是

它是从这个场景中的光源去发射

发射光子光子打到场景上面的时候

它跟路径跟踪不一样

就是跟路径跟踪

计算整个画面结果是不会存储任何东西的

但这个光子映射着

这就会在每一次反弹的时候

把这个能量储存起来

然后它就一直往场景发射光子

然后让这个场景的一个结构

把每一次反弹的结果都存起来

最后

这个相机在收集阶段

去观察这个场景的时候

它就会把这个前面存起来了

这些光子之间进行插值

当最新的研究里面

光子映射跟前置路线跟踪的算法

可以本质上可以做到一致

就只要你那个插值比较注意就好

要是也可以

这有个演示

这就光子映射每次发射的时候

一个演示

它从一个光源里面

发射的光子是跟场景去交互

然后再把它的一个能量才去存起来

他就越来越接近一个完美的图像

这跟前面两种都是传统离线渲染一些方法

然后后面讲一下全局光照实时的方案

因为实时都渲染不相离现象

可以有完美的一个游戏

场景的一些结构

这门一般都是用一些比较取巧的方法

就可能也有没有那么多算力

去做一个光纤的跟踪计算

但后面会讲到我们新的一些

由于新的显卡或者是

通过显卡算力越来越强的时候

我们也会开始引入一些光线的追踪办法

我先主要是分为两大阵营

一个是

屏幕空间的方法

屏幕空间的方法就是

我整个光子整个里面

光反弹的都是反弹的计算

都是通过一个屏幕空间能看到的

数据来进行计算的

另外一个世界

是世界的

整个世界结构

在GP里面能够拿到整个场景的一些

几何信息去进行计算的

它的主要信息不一定是原来拿来渲染的

一个三角面也有可能是一个体术Voxel

然后前面先讲那个

前面先讲那个屏幕空间方法

为什么会产生屏幕空间方法了

因为在我们传统渲染的时候

它本来我们就能拿到一个

屏幕的一个深度的图像

因为我前面像上一节课

那个渲染的时候也会讲到

我们去通过一个深度 Buffer

去对渲染进行那个排序

进行那个渲染像素渲染的效率优化的

这个深度 Buffer是天然存在的

我们可以拿它来有一部分的凹凸的

几何凹凸的信息来模拟这个

几何属性

我们可以在上面看到一个高度场

然后在这高度场里面发射射线

进行就是一个光路最终的计算

但它是一个很有限的几何信息

不是完全只有物体的几何三角面

因为像垂直方向的几何信息都丢失了

也没有背部的信息

所以做射线求焦的时候

它射线有可能穿越这个深度 Buffer一个表面

穿越物体表面

尽管它有误差

但是它十分的快速

深度灌充这个上节课可能要讲过

我们渲染的时候会通过深度

Buffer来个排序

去优化那个像素渲染效率

然后它也会存储出一张这个场景的深度图

这个深度图形就是从摄像机出发

这个看到这个像素最靠近相机的一个物体表面

一个深度的值

然后最早利用最早发明利用

屏幕空间计算环境遮蔽的方法是Cryengine

这就是Cryengine做出的一个,叫做screen space ambient occlusion

就是SSAO效果

然后后面后面这已经开始出现了

现在一些游戏里面有一些术语

就是HBAO

HBAO其实也是利用屏幕空间

利用屏幕空间的深度去模拟一个

AO的现象

但这个主要是Nvidia做出来的

它其实都也跟前面这个也是利用深度 photo

只是后面的计算更加改进而已

然后还有一个我们常常说的游戏里面

应用的现象是屏幕空间反射

就通过屏幕空间的深度

通过深度图去计算反射的像

当我们去上那个物体跟这个深度碰到

然后当反射和折射现再去

反射射线求焦可以在

通过这反射的那个位置

去拿取他上一帧那个渲染的结果

我就可以做出一个屏幕空间反射的效果

然后前面这种深度之间微March

一个是固定不常去做微March

就每次前进一步

然后再看这个前进的步数

是不是在这个深度图的底下

假如底下就已经碰到这个深度

然后再改进一下的

比2X搜索

然后比2X搜索更清晰的话

这个可以课后去看这个

就在HI-Z Tracing这个主要是寒霜引擎

寒霜引擎作品主要就是那个战地系列

还有那个星战系列

然后为了让平衡的反射也满足了

前面说的那个pbr渲染一个高光分布

它也会用到PBR brdf

也会有些是随机的采样

stochastic Monte Carlo sampling采样方法

最后还会进行降噪

最后的结果就这样

结果就是可以看到

在一个光滑的镜面的地面上面

它还在跟粗糙度响应

越粗糙挂那个像反射的相越模糊

而且越清晰

然后讲一个世界空间方法

也是我最近做的

前面那些没有时间讲了

然后实时光线追踪

主要是在现在一些显卡上面算力比较强

所以说现在才提出来的

主要是计算光线跟几何体求焦

但一般不会计算非常多的

不像前面路径追踪会计算

它们都是由这个方向法

模拟其中某些现象

比如前面说的间接光照

AO去单独去拿来计算

然后这个就是我最近做的这些效果

右边可以看到这个

主要就是一些AO的效果

它可以支持动态的几何体

天气变化

所有都是动态

不是预先烘焙

然后当这个AO

遮蔽的距离变得更加大的时候

它甚至可以完全的把整个天光都挡住

因为这才是一个正确的一个AO效果 叫sky AO

当它的遮蔽距离是可以做到无穷远的时候

你只能从窗户里面透出去

天光进室内

然后后面这个就是

这个实时光线它支持一个纹理的面光源

假如我给一个面光源

附上一张纹理的话

他可以照明这个场景

它除了照明场景之外

它甚至还能产生阴影

面光源还可以产生三个柱子

后面会产生一些阴影

而且富有纹理

它这里黄色可以照到上面

这个女神像是黄色红色会照到地下是红色

然后实时光线追踪

前面就是它能支持的特性

就间接光照

包括它面光源

还有整个环境

光遮蔽

现在可以看下他的具体的效果

我自己用的是一个虚幻2014早期的引擎demo

他里面只有那个原来引擎一个烘培的效果

感兴趣的话可以上优酷youtube搜一下原视频

然后这也是开了是实时光照的技术

这是光纤

最终我们要看到这个场景

他首先打关了之后刚才室外的一点点太阳光源

它室内是没有打光的

你们看到光都是通过多次反弹进的室内

这也是

2014demo

看到他

他在一个那个岩浆流出来的时候

他其实是一个模型模型的一个面光源

但是到集合形体

而且一直在流动变化

就在原来老的这种游戏在是十分难以去模拟

不能拿它去照明

周围的场景

但是在新的技术里面

就像这种流动的发光体可以动态的照明

整个场景

我看到对场景的一些影响

不过可能你要找原视频来对比

来看看 不然明显看不出

有兴趣可以看PPT来看

然后这个还可以做到

覆盖所有中高端的GPU主机

然后对于低端的GPU或者moba

我还做了一个动态实时烘焙的情况

一个可以照顾到甚至手机的话

有差不多效果

然后这是这些参考的文献

感兴趣都想更多了解是渲染的话

可以这个文献都是收集比较经典的一些

一些资料

今天主要就讲到这

游戏程序设计课程列表:

第一章 《游戏开发导论》

-1. 1什么是游戏(上)

--1.1 什么是游戏(上)

--选择题

-1.2 什么是游戏(下)

--1.2 什么是游戏(下)

--选择题

-1.3 游戏是如何开发出来的

--1.3 游戏是如何开发出来的

-1.4 游戏引擎(上)

--1.4 游戏引擎(上)

-1.5 游戏引擎(下)

--1.5 游戏引擎(下)

--单选题

-1.6 如何成为一个游戏开发者

--1.6 如何成为一个游戏开发者

--多选题

第二章 《游戏服务器概述 》

-2.1 什么是游戏服务器

--2.1 什么是游戏服务器

--单选题

-2.2 游戏服务器的和分类发展

--2.2 游戏服务器的和分类发展

--单选题

-2.3 核心技术和实现难点

--2.3 核心技术和实现难点

--单选题

-2.4 设计原理与方法论

--2.4 设计原理与方法论

--单选题

第三章 《《三维几何学基础》 》

-3.1 三维坐标系统

--3.1 三维坐标系统

--多选题

-3.2 向量与运算

--3.2 向量与运算

--单选题

-3.3 矩阵与线性变换

--3.3 矩阵与线性变换

--双选题

-3.4 四元数

--3.4 四元数

--多选题

第四章 《游戏循环及实时模拟》

-4.1 游戏循环概述(上)

--4.1 游戏循环概述(上)

--多选题

-4.2 游戏循环概述(下)

--4.2 游戏循环概述(下)

--单选题

-4.3 《无尽之路》的实现

--4.3 《无尽之路》的实现

--单选题

-4.4 支撑游戏的功能

--4.4 支撑游戏的功能

--选择题

-4.5 支撑游戏的机制与系统

--4.5 支撑游戏的机制与系统

--多选题

第五章 《随机数在游戏中的应用》

-5.1 基本介绍

--5.1 基本介绍

--单选题

-5.2 随机数生成器

--5.2 随机数生成器

--单选题

-5.3 随机数分布与应用

--5.3 随机数分布与应用

--单选题

第六章 《游戏性系统》

-6.1 什么是游戏玩法开发

--6.1 什么是游戏玩法开发

--单选题

-6.2 建立愿景 Vision

--6.2 建立愿景 Vision

--单选题

-6.3 划定边界 Scope

--6.3 划定边界 Scope

-6.4 迭代 Iteration

--6.4 迭代 Iteration

--单选题

-6.5 迭代 Iteration+抛光Polish

--6.5 迭代 Iteration+抛光Polish

--单选题

第七章 《实时图形渲染管道》

-7.1实时图形渲染管道 宏观渲染系统

--7.1实时图形渲染管道 宏观渲染系统

--单选题

-7.2实时图形渲染管道 应用阶段

--7.2实时图形渲染管道 应用阶段

--单选题

-7.3实时图形渲染管道 几何阶段

--7.3实时图形渲染管道 几何阶段

--单选题

-7.4实时图形渲染管道 光栅化阶段

--7.4实时图形渲染管道 光栅化阶段

--单选题

-7.5实时图形渲染管道 总结 参考

--7.5实时图形渲染管道 总结 参考

第八章 《材质着色与光照》

-8.1 物理回顾1

--8.1 物理回顾1

--单选题

-8.2 物理回顾2

--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.2 游戏动画介绍

-9.3 动画技术类型

--9.3 动画技术类型

--多选题

-9.4 骨骼蒙皮动画

--9.4 骨骼蒙皮动画

--多选题

-9.5 动画流水线

--9.5 动画流水线

--多选题

-9.6 动画前沿趋势

--9.6 动画前沿趋势

--多选题

第十章 《网络同步技术》

-10.1 .基本概念

--10.1 .基本概念

--多选题

-10.2 设计目标

--10.2 设计目标

--多选题

-10.3 传输数据分析

--10.3 传输数据分析

--多选题

-10.4 常用同步方案 1

--10.4 常用同步方案 1

-10.4 常用同步方案 2

--10.4 常用同步方案 2

-10.4 常用同步方案 3

--10.4 常用同步方案 3

-10.4 常用同步方案 4

--10.4 常用同步方案 4

--多选题

-10.5 方案对比

--10.5 方案对比

--多选题

第十一章 《游戏常用几何学》

-11.1 基本图元

--11.1 基本图元

--单选题

-11.2 图元距离(上)

--11.2 图元距离(上)

--单选题

-11.2 图元距离(下)

--11.2 图元距离(下)

--单选题

-11.3 图元相交测试+ 其他几何方法

--11.3 图元相交测试+ 其他几何方法

--单选题

第十二章 《游戏物理模拟》

-12.1 著名物理引擎介绍

--12.1 著名物理引擎介绍

--单选题

-12.2 物理引擎原理(上)

--12.2 物理引擎原理(上)

--单选题

-12.3 物理引擎原理(下)

--12.3 物理引擎原理(下)

--单选题

-12.4 游戏中的物理体

--12.4 游戏中的物理体

--单选题

-12.5 物理引擎使用入门

--12.5 物理引擎使用入门

--单选题

第十三章 《开发工具 》

-13.1开发语言

--13.1开发语言

--单选题

-13.2 开发环境

--13.2 开发环境

--单选题

-13.3 腾讯开发组件介绍

--13.3 腾讯开发组件介绍

--单选题

-13.4 网络通信+业务框架介绍

--13.4 网络通信+业务框架介绍

--多选题

第十四章 《分布式系统设计 》

-14.1 进程间通信(上)

--14.1 进程间通信(上)

-14.2 进程间通信(下)

--14.2 进程间通信(下)

-14.3 通信格式

--14.3 通信格式

-14.4 并发模型

--14.4 并发模型

-14.5 超时处理

--14.5 超时处理

-14.6 大系统小做(上)

--14.6 大系统小做(上)

--多选题

-14.7 大系统小做(下)

--14.7 大系统小做(下)

-14.8 架构层面的技术支持(上)

--14.8 架构层面的技术支持(上)

--单选题

-14.9 架构层面的技术支持(下)

--14.9 架构层面的技术支持(下)

-14.10 分布系统的关键能力

--14.10 分布系统的关键能力

--多选题

第十五章 《游戏人工智能》

-15.1 游戏人工智能综述

--15.1 游戏人工智能综述

-15.2 人工智能在游戏中主要方法 上

--15.2 人工智能在游戏中主要方法 上

--多选题

-15.3人工智能在游戏中主要方法 (下)

--15.3人工智能在游戏中主要方法 (下)

-15.4 人工智能在游戏制作中的应用领域1

--15.4 人工智能在游戏制作中的应用领域1

--多选题

-15.5 人工智能在游戏制作中的应用领域2

--15.5 人工智能在游戏制作中的应用领域2

-15.6 人工智能在游戏制作中的应用领域3

--15.6 人工智能在游戏制作中的应用领域3

--多选题

-15.7 人工智能在游戏运营中的应用实践(上)

--15.7 人工智能在游戏运营中的应用实践(上)

-15.8 人工智能在游戏运营中的应用实践(下)

--15.8 人工智能在游戏运营中的应用实践(下)

--多选题

第十六章 《游戏支撑系统 》

-16.1 游戏支撑系统(1)

--16.1 游戏支撑系统(1)

--单选题

-16.2 游戏支撑系统(2)

--16.2 游戏支撑系统(2)

--单选题

-16.3 游戏支撑系统(3)

--16.3 游戏支撑系统(3)

--单选题

-16.4 游戏支撑系统(4)

--16.4 游戏支撑系统(4)

--单选题

-16.5 游戏支撑系统(5)

--16.5 游戏支撑系统(5)

第十七章 《游戏逻辑服务器和反外挂》

-17.1 游戏逻辑服务器(上)

--17.1 游戏逻辑服务器(上)

--单选题

-17.1 游戏逻辑服务器(下)

--17.1 游戏逻辑服务器(下)

-17.2 外挂与反外挂(上)

--17.2 外挂与反外挂(上)

-17.2 外挂与反外挂(下)

--17.2 外挂与反外挂(下)

--多选题

第十八章 《运行环境和运维 》

-18.1运行环境

--18.1运行环境

--多选题

-18.2物理部署

--18.2物理部署

--多选题

-18.3系统的可运维性

--18.3系统的可运维性

--多选题

-18.4运维案列分析

--18.4运维案列分析

--多选题

8.7 全局光照笔记与讨论

也许你还感兴趣的课程:

© 柠檬大学-慕课导航 课程版权归原始院校所有,
本网站仅通过互联网进行慕课课程索引,不提供在线课程学习和视频,请同学们点击报名到课程提供网站进行学习。