Games104笔记---LE4--渲染系统1:渲染基础

目录

游戏引擎渲染的挑战:

渲染流水线:

GPU架构:

指令:

GPU运算单元:

CPU向GPU传输数据:

缓存效率:

GPU性能边界:

手机渲染架构:

当代硬件渲染架构:

渲染数据组织:

mesh系统:

材质系统:

实例化渲染:

裁剪:

包围盒:

空间划分:

PVS:

GPU Culling:

纹理压缩:

块压缩算法:

建模工具:

程序化生成:

Cluster Based 渲染:

PILOT引擎:

作业:

学习资料:


笔记导航:

LE7--渲染系统4:渲染管线,后处理:https://blog.csdn.net/m0_56399931/article/details/124790469

LE6--渲染系统3:游戏中的地形/天空/云渲染:LE6--渲染系统3:yo地形/天空/云渲染_This is MX的博客-CSDN博客

LE5--渲染系统2:光照、材质、Shadow:Games104笔记---LE5--渲染系统2:光照、材质、Shadow_This is MX的博客-CSDN博客

LE4--渲染系统1:渲染基础:Games104笔记---LE4--渲染系统1:渲染基础_This is MX的博客-CSDN博客_渲染系统

LE3--基础架构2:数据组织与管理:Games104笔记---LE3--基础架构2:数据组织与管理_This is MX的博客-CSDN博客

LE2--基础架构1:引擎架构分层整体Pipeline:Games104笔记---LE2--基础架构1:引擎架构分层整体Pipeline_This is MX的博客-CSDN博客

LE1--现代游戏引擎导论:Games104笔记---LE1--现代游戏引擎导论_This is MX的博客-CSDN博客

这个部分看一下games101和opengl会好很多

游戏引擎渲染的挑战:

(1)要做到数以万计的物体具有数十种效果

(2)需要了解CPU和GPU的复杂组合处理的现代计算机架构

(3)需要达到稳定的帧率

(4)限制CPU带宽和内存的占用

渲染流水线:

Shader预备知识一-------渲染的基本工作流程_This is MX的博客-CSDN博客

这个其实很全了,但是比较简略,但是适合入门

GPU架构:

指令:

SIMD:单指令多数据操作

SIMT:单指令多线程操作。并行计算中使用的一种执行模型,其中单指令、多数据(SIMD)与多线程相结合

GPU运算单元:

GPC:用于计算、光栅化、着色和纹理的专用硬件块

CPU向GPU传输数据:

缓存效率:

我们要尽可能的提高缓存命中效率,因为如果不命中需要进内存里面进行获取,这个操作是非常消耗的。

GPU性能边界:

手机渲染架构:

当代硬件渲染架构:

渲染数据组织:

mesh系统:

我们可以需要分开存顶点数据和索引数据,并且每个顶点都要有法线数据。

材质系统:

常见的光照模型 Phone,Bilin-Phone,PBR

光照模型也需要贴图控制

Shader用来表达这个光照模型

多材质系统

那我们怎么表现多材质呢,我们可以将各个部分的数据存储到同一个buffer的不同的连续位置,我们再用的时候就只需要offset就能够使用。

实例化渲染:

相同的纹理、材质、网格渲染,对渲染命令进行合并提交

对材质进行排序对相同的材质只提交一次渲染命令

裁剪:

我们会将不在摄像机视锥体的图元进行裁剪

包围盒:

空间划分:

我们如果使用空间划分,就可以减少很多的复杂度,不用每个都去问询。

PVS:

PVS可以大大的提高裁剪速度和资源加载的效率

GPU Culling:

Earlyz

就是将深度测试提前到光栅化的片元着色器之前,这样片元就会提前被舍弃,但是这个操作其实还是有一些问题的,比如说如果渲染的排序是从后往前渲染这个的优化效果就很拉,并且如果手动写入深度值或者开启了alphatest或者舍弃片元的操作,那么gpu就会关闭early-z直到下次clear z-buffer后才会重新开启

Hiz

全名Hierarchical Z,和z-perpass一样也是一种软件技术,据说这项技术最早是在《刺客信条:大革命》中使用的。其核心原理是利用上一帧的深度图和摄像机矩阵,来对当前帧的场景做剔除,对于剔除后的物体进行绘制新的深度图和GBuffer,然后再用新的深度图和当前摄像机矩阵再对当前帧的场景做剔除,对剔除后的物体进行绘制更新刚刚的深度图和GBuffer。之所这种看起来十分复杂的方法能提高效率,是因为每一帧的绘制都已上一帧的绘制结果为基础。我们假设相邻两针差距不会特别大,那么以上一帧的深度图作为结果来对当前帧可见的物体进行筛选,可以得到绝大部分。

纹理压缩:

这个可以看这个:

图形学入门---纹理压缩_This is MX的博客-CSDN博客

纹理压缩一般不能选择压缩得最小的方法,因为无法随机访问。

块压缩算法:

建模工具:

Maya,blender, Zbrush

程序化生成:

Cluster Based 渲染:

将精细的模型分成多个多个mesh块,进行渲染。并且基于mesh块,我们以前只能对单个物体进行裁剪,但是现在我们也能够对单个物体的mesh块进行裁剪。

PILOT引擎:

https://github.com/BoomingTech/Pilot

作业:

Games 104: 现代游戏引擎:从入门到实践

学习资料:

Games104

1.UE预计算遮挡剔除(PVS)全解析 - 知乎

  • 3
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值