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

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

  • 1.有没有选人的游戏没?
  • 2 图形学渲染理论
  • 3 游戏渲染的挑战
    • 1 物体很多,渲染效果的类型很多
    • 2 需要深度适配现代的CPU and GPU
    • 3 帧越来越大
    • 4 CPU bandwidth
  • 4 游戏引擎的渲染框架
  • 5 渲染
  • 6 GPU
    • 1 SIMD and SMIT
  • 7 Modern Hardware Pipeline
  • 8 Renderable
    • 1 Mesh
    • 2 Material
    • 3 纹理
    • 4 shader
  • 9 Render in Engine
  • 10 可见性裁剪
    • 1 包围盒
    • 2 GPU Culling
  • 11 纹理压缩
  • 12 工具
  • 13 Cluster-based mesh pipeline
  • 14 Nanite
  • 15 绘制系统四个点
  • 16 PILoT
  • 17 视频

Games104现代游戏引擎入门-lecture4游戏中的渲染系统_第1张图片

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

Games104现代游戏引擎入门-lecture4游戏中的渲染系统_第2张图片
绘制从专业程度来说是最难的一部分。
有游戏没有引擎–文字游戏。

2 图形学渲染理论

辐射度算法
Games104现代游戏引擎入门-lecture4游戏中的渲染系统_第3张图片

3 游戏渲染的挑战

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

Games104现代游戏引擎入门-lecture4游戏中的渲染系统_第4张图片

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

Games104现代游戏引擎入门-lecture4游戏中的渲染系统_第5张图片

3 帧越来越大

Games104现代游戏引擎入门-lecture4游戏中的渲染系统_第6张图片

4 CPU bandwidth

Games104现代游戏引擎入门-lecture4游戏中的渲染系统_第7张图片
Games104现代游戏引擎入门-lecture4游戏中的渲染系统_第8张图片

4 游戏引擎的渲染框架

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

Games104现代游戏引擎入门-lecture4游戏中的渲染系统_第9张图片
该门课程不讲以下部分:
Games104现代游戏引擎入门-lecture4游戏中的渲染系统_第10张图片

5 渲染

Games104现代游戏引擎入门-lecture4游戏中的渲染系统_第11张图片
堵在像素之后的事情;
投影和光栅化

Games104现代游戏引擎入门-lecture4游戏中的渲染系统_第12张图片
然后开始着色;
数据运算,常数的访问,纹理的访问就可以得到你想要的结果。
Games104现代游戏引擎入门-lecture4游戏中的渲染系统_第13张图片
采纹理其实是很费资源的。
其中一个像素点 颜色,我要做7次插值
Games104现代游戏引擎入门-lecture4游戏中的渲染系统_第14张图片

6 GPU

Games104现代游戏引擎入门-lecture4游戏中的渲染系统_第15张图片

1 SIMD and SMIT

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

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

Games104现代游戏引擎入门-lecture4游戏中的渲染系统_第16张图片
结构是重复的。
一个显卡是放了很多个内核。
SMT架构
Games104现代游戏引擎入门-lecture4游戏中的渲染系统_第17张图片
Games104现代游戏引擎入门-lecture4游戏中的渲染系统_第18张图片
数据在计算机中流动是很耗费资源的。数据在不同的单元中搬来搬去也是非常慢的。

数据是单向运输,从cpu到GPU,尽量不要从GPU中读取数据。
Games104现代游戏引擎入门-lecture4游戏中的渲染系统_第19张图片
缓冲,对现代计算的影响是非常大的。

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

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

纹理没做好,如果老是让计算机做cash gap的时候,效率就会下降。
Games104现代游戏引擎入门-lecture4游戏中的渲染系统_第20张图片
GPU Bounds and Perfomrmance

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

Games104现代游戏引擎入门-lecture4游戏中的渲染系统_第21张图片

7 Modern Hardware Pipeline

Games104现代游戏引擎入门-lecture4游戏中的渲染系统_第22张图片
Games104现代游戏引擎入门-lecture4游戏中的渲染系统_第23张图片

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

Games104现代游戏引擎入门-lecture4游戏中的渲染系统_第24张图片
做游戏开发的,懂点概念挺好。

8 Renderable

Games104现代游戏引擎入门-lecture4游戏中的渲染系统_第25张图片
Meah render component 是render的核心
Games104现代游戏引擎入门-lecture4游戏中的渲染系统_第26张图片

1 Mesh

Games104现代游戏引擎入门-lecture4游戏中的渲染系统_第27张图片
存索引值,定点的数量只有三角形的一半;可以节省内存。

Games104现代游戏引擎入门-lecture4游戏中的渲染系统_第28张图片

每个定点都有一个法向:每个顶点都要定义一个normal。
Games104现代游戏引擎入门-lecture4游戏中的渲染系统_第29张图片

2 Material

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

Games104现代游戏引擎入门-lecture4游戏中的渲染系统_第30张图片
Games104现代游戏引擎入门-lecture4游戏中的渲染系统_第31张图片

3 纹理

纹理是材质中非常重要的表达形式。
Games104现代游戏引擎入门-lecture4游戏中的渲染系统_第32张图片

4 shader

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

Games104现代游戏引擎入门-lecture4游戏中的渲染系统_第33张图片

9 Render in Engine

Games104现代游戏引擎入门-lecture4游戏中的渲染系统_第34张图片
Games104现代游戏引擎入门-lecture4游戏中的渲染系统_第35张图片
submesh,按照每个对象,每个物体,每个mesh根据材质进行切分,然后相同的材质归类到一起,用大库去管理。

Games104现代游戏引擎入门-lecture4游戏中的渲染系统_第36张图片
很多shader都是一样的。
Games104现代游戏引擎入门-lecture4游戏中的渲染系统_第37张图片

Games104现代游戏引擎入门-lecture4游戏中的渲染系统_第38张图片
instance一定要牢记:这个数据是我的定义,这个数据是我的实例。
Games104现代游戏引擎入门-lecture4游戏中的渲染系统_第39张图片
Games104现代游戏引擎入门-lecture4游戏中的渲染系统_第40张图片
GPU Batch Rendering:优化

很多物体是一模一样的,
Games104现代游戏引擎入门-lecture4游戏中的渲染系统_第41张图片

10 可见性裁剪

是基础的
Games104现代游戏引擎入门-lecture4游戏中的渲染系统_第42张图片
Games104现代游戏引擎入门-lecture4游戏中的渲染系统_第43张图片

1 包围盒

包围球
AABB:轴对称包围盒,计算效率是最高的
OBB:轴向包围盒
包围盒是计算的基础。
Games104现代游戏引擎入门-lecture4游戏中的渲染系统_第44张图片
BVH:
Games104现代游戏引擎入门-lecture4游戏中的渲染系统_第45张图片
BVH用的很多,适合用动态场景的加速!
Games104现代游戏引擎入门-lecture4游戏中的渲染系统_第46张图片
PVS: 思想很有用
Games104现代游戏引擎入门-lecture4游戏中的渲染系统_第47张图片
Games104现代游戏引擎入门-lecture4游戏中的渲染系统_第48张图片

Games104现代游戏引擎入门-lecture4游戏中的渲染系统_第49张图片

2 GPU Culling

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

Games104现代游戏引擎入门-lecture4游戏中的渲染系统_第50张图片

11 纹理压缩

非常重要的模块。
Games104现代游戏引擎入门-lecture4游戏中的渲染系统_第51张图片
压缩算法不支持访问。
采取的思想是切成小块,然后去压缩。
Games104现代游戏引擎入门-lecture4游戏中的渲染系统_第52张图片
块压缩
BC7,DXTC

ASTC/ETC/PVRTC

Games104现代游戏引擎入门-lecture4游戏中的渲染系统_第53张图片

12 工具

blender越来越好了。
Games104现代游戏引擎入门-lecture4游戏中的渲染系统_第54张图片
Games104现代游戏引擎入门-lecture4游戏中的渲染系统_第55张图片
Games104现代游戏引擎入门-lecture4游戏中的渲染系统_第56张图片

扫描,基于实体的扫描
Games104现代游戏引擎入门-lecture4游戏中的渲染系统_第57张图片
Games104现代游戏引擎入门-lecture4游戏中的渲染系统_第58张图片
Games104现代游戏引擎入门-lecture4游戏中的渲染系统_第59张图片

13 Cluster-based mesh pipeline


模型表达的管线

非常精细的模型–分成非常小的部分。
非常高效的处理
Games104现代游戏引擎入门-lecture4游戏中的渲染系统_第60张图片
三角形无数的细化,
Meshshader–可以用一个算法,代码写起来不太好理解。
非常需要关注的前沿方向。

Games104现代游戏引擎入门-lecture4游戏中的渲染系统_第61张图片
Games104现代游戏引擎入门-lecture4游戏中的渲染系统_第62张图片
Games104现代游戏引擎入门-lecture4游戏中的渲染系统_第63张图片
Games104现代游戏引擎入门-lecture4游戏中的渲染系统_第64张图片

14 Nanite

Games104现代游戏引擎入门-lecture4游戏中的渲染系统_第65张图片

15 绘制系统四个点

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

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

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

(4)使用GPU计算。
Games104现代游戏引擎入门-lecture4游戏中的渲染系统_第66张图片

16 PILoT

单独来学习
Games104现代游戏引擎入门-lecture4游戏中的渲染系统_第67张图片

17 视频

你可能感兴趣的:(游戏引擎,游戏引擎)