Games104现代游戏引擎入门-lecture4游戏中的渲染系统

在这里插入图片描述

1.有没有选人的游戏没?

在这里插入图片描述
绘制从专业程度来说是最难的一部分。
有游戏没有引擎–文字游戏。

2 图形学渲染理论

辐射度算法
在这里插入图片描述

3 游戏渲染的挑战

1 物体很多,渲染效果的类型很多

在这里插入图片描述

2 需要深度适配现代的CPU and GPU

在这里插入图片描述

3 帧越来越大

在这里插入图片描述

4 CPU bandwidth

在这里插入图片描述
在这里插入图片描述

4 游戏引擎的渲染框架

GPU的硬件的架构;
材质,shader,光照
特殊渲染
pipeline:延迟渲染。。。

在这里插入图片描述
该门课程不讲以下部分:
在这里插入图片描述

5 渲染

在这里插入图片描述
堵在像素之后的事情;
投影和光栅化

在这里插入图片描述
然后开始着色;
数据运算,常数的访问,纹理的访问就可以得到你想要的结果。
在这里插入图片描述
采纹理其实是很费资源的。
其中一个像素点 颜色,我要做7次插值
在这里插入图片描述

6 GPU

在这里插入图片描述

1 SIMD and SMIT

SMIT:同一条指令,同时执行很多次。

用同样的代码,大家一起跑。

在这里插入图片描述
结构是重复的。
一个显卡是放了很多个内核。
SMT架构
在这里插入图片描述
在这里插入图片描述
数据在计算机中流动是很耗费资源的。数据在不同的单元中搬来搬去也是非常慢的。

数据是单向运输,从cpu到GPU,尽量不要从GPU中读取数据。
在这里插入图片描述
缓冲,对现代计算的影响是非常大的。

a在我的内存上,cpu发现不在自己的缓冲中,需要在内存中去找,需要等待个100多个时钟周期。

数据一定要放在一起。
数据都在我的缓冲中,cash hit。如果不在缓冲中,cash gap.

纹理没做好,如果老是让计算机做cash gap的时候,效率就会下降。
在这里插入图片描述
GPU Bounds and Perfomrmance

计算机就是一个流水线,有一个卡主就卡住

在这里插入图片描述

7 Modern Hardware Pipeline

在这里插入图片描述
在这里插入图片描述

学渲染之前,要了解显卡到底是如何工作的?

在这里插入图片描述
做游戏开发的,懂点概念挺好。

8 Renderable

在这里插入图片描述
Meah render component 是render的核心
2

1 Mesh

在这里插入图片描述
存索引值,定点的数量只有三角形的一半;可以节省内存。

在这里插入图片描述

每个定点都有一个法向:每个顶点都要定义一个normal。
在这里插入图片描述

2 Material

材质系统和物理材质容易混淆;
强调的是摩擦系数,相近都不一样。
物理材质会单独的去定义。

在这里插入图片描述
在这里插入图片描述

3 纹理

纹理是材质中非常重要的表达形式。
在这里插入图片描述

4 shader

是源码,但是在游戏中会当做数据来处理。

在这里插入图片描述

9 Render in Engine

在这里插入图片描述
在这里插入图片描述
submesh,按照每个对象,每个物体,每个mesh根据材质进行切分,然后相同的材质归类到一起,用大库去管理。

在这里插入图片描述
很多shader都是一样的。
在这里插入图片描述

在这里插入图片描述
instance一定要牢记:这个数据是我的定义,这个数据是我的实例。
在这里插入图片描述
在这里插入图片描述
GPU Batch Rendering:优化

很多物体是一模一样的,
在这里插入图片描述

10 可见性裁剪

是基础的
在这里插入图片描述
在这里插入图片描述

1 包围盒

包围球
AABB:轴对称包围盒,计算效率是最高的
OBB:轴向包围盒
包围盒是计算的基础。
在这里插入图片描述
BVH:
在这里插入图片描述
BVH用的很多,适合用动态场景的加速!
在这里插入图片描述
PVS: 思想很有用
在这里插入图片描述
在这里插入图片描述

在这里插入图片描述

2 GPU Culling

先存储深度,渲染的时候先看深度。
遮挡物的深度图,很复杂的场景用得着。

在这里插入图片描述

11 纹理压缩

非常重要的模块。
在这里插入图片描述
压缩算法不支持访问。
采取的思想是切成小块,然后去压缩。
在这里插入图片描述
块压缩
BC7,DXTC

ASTC/ETC/PVRTC

在这里插入图片描述

12 工具

blender越来越好了。
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

扫描,基于实体的扫描
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

13 Cluster-based mesh pipeline

在这里插入图片描述
模型表达的管线

非常精细的模型–分成非常小的部分。
非常高效的处理
在这里插入图片描述
三角形无数的细化,
Meshshader–可以用一个算法,代码写起来不太好理解。
非常需要关注的前沿方向。

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

14 Nanite

在这里插入图片描述

15 绘制系统四个点

(1)工程科学:依赖于硬件,知道性能卡点在哪里、

(2)mesh ,模型,材质这些数据之间的关系,mesh和submesh之间的关系就是非常好的解决方案。

(3)优化的时候让计算机do nothing

(4)使用GPU计算。
在这里插入图片描述

16 PILoT

单独来学习
在这里插入图片描述

17 视频

猜你喜欢

转载自blog.csdn.net/qq_41286360/article/details/124026000