[Games104笔记]4/4 渲染系统1 『渲染数据组织』


一些挑战

适配当代硬件

结合CPU和GPU

限制对CPU带宽和内存占用的访问

投影,光栅化

CG基础学习笔记(Lecture3-4)_泥烟的博客-CSDN博客https://blog.csdn.net/qq_39391544/article/details/122374926

着色

CG基础学习笔记(Lecture7~9 初学shading)_泥烟的博客-CSDN博客https://blog.csdn.net/qq_39391544/article/details/123038165

SIMD (Single Instruction Multiple Data)

单指令多数据

SIMT (Single Instruction Multiple Threads)

单指令多线程

GPU 构成

GPC  (图形处理集群)    计算、栅格化、阴影和纹理处理......

SM  (流式多处理器)      运行CUDA内核的GPU的一部分

Texture Units   纹理处理单元,它可以获取和过滤纹理。

CUDA Core  允许不同处理器同时工作数据的并行处理器

Warp  一组线程

尽可能减少CPU和GPU之间的数据传输, 减少资源传输的成本

尽可能单向

注意缓存效率. 充分利用硬件的并行计算,尽量避免冯·诺依曼的瓶颈

应用程序的性能受到的限制

※submesh

相同材质,mesh分类管理

资源库

实例化:使用句柄重用资源

 

 批处理绘制

几种包围盒

轴对称, 贴着物体, 凸包...

※BVH

动态的事物很多

BVH针对的是可见物件的层次结构,而八叉树针对的是场景空间下哪些物件应当归于子空间中

PVS

可见度集

GPU剔除
 

图像压缩

通用的块压缩

 几种创作方式的比较

基于聚类的网格管道

surf:基于材料的子网格,由许多三角形簇组成集群
 

 

聚类 的GPU剔除

无缝边界的分层LOD集群, 不需要硬件支持,而是在预先计算的BVH树上使用分层集群选择

Tips:

1.游戏引擎的设计与硬件结构设计有着深刻的联系。

2.采用submesh设计来支持多材料模型

3.使用剔除算法绘制尽可能少的对象

4.随着GPU功能的增强,越来越多的工作被转移到GPU中,即GPU驱动

posted @ 2022-05-10 21:07  泥烟  阅读(69)  评论(0编辑  收藏  举报