一些挑战
适配当代硬件
结合CPU和GPU
![[Games104笔记]4/4 渲染系统1 『渲染数据组织』_游戏引擎](https://file.cfanz.cn/uploads/png/2022/06/15/1/925S2KA4W2.png)
限制对CPU带宽和内存占用的访问
![[Games104笔记]4/4 渲染系统1 『渲染数据组织』_javascript_02](https://file.cfanz.cn/uploads/png/2022/06/15/1/e25Y75eIJO.png)
![[Games104笔记]4/4 渲染系统1 『渲染数据组织』_csdn博客_03](https://file.cfanz.cn/uploads/png/2022/06/15/1/36495IZUFR.png)
投影,光栅化
![[Games104笔记]4/4 渲染系统1 『渲染数据组织』_游戏引擎_04](https://file.cfanz.cn/uploads/png/2022/06/15/1/775638Vcd5.png)
![[Games104笔记]4/4 渲染系统1 『渲染数据组织』_csdn博客_05](https://file.cfanz.cn/uploads/png/2022/06/15/1/64GcTZGcLf.png)
CG基础学习笔记(Lecture3-4)_泥烟的博客-CSDN博客
javascript:void(0)
着色
![[Games104笔记]4/4 渲染系统1 『渲染数据组织』_聚类_07](https://file.cfanz.cn/uploads/png/2022/06/15/1/YUf6676eG2.png)
![[Games104笔记]4/4 渲染系统1 『渲染数据组织』_javascript_08](https://file.cfanz.cn/uploads/png/2022/06/15/1/W8fbfZBcbU.png)
CG基础学习笔记(Lecture7~9 初学shading)_泥烟的博客-CSDN博客
javascript:void(0)
SIMD (Single Instruction Multiple Data)
单指令多数据
SIMT (Single Instruction Multiple Threads)
单指令多线程
![[Games104笔记]4/4 渲染系统1 『渲染数据组织』_聚类_10](https://file.cfanz.cn/uploads/png/2022/06/15/1/02Tc7b61e0.png)
GPU 构成
![[Games104笔记]4/4 渲染系统1 『渲染数据组织』_csdn博客_11](https://file.cfanz.cn/uploads/png/2022/06/15/1/e1CXM638W2.png)
GPC (图形处理集群) 计算、栅格化、阴影和纹理处理......
SM (流式多处理器) 运行CUDA内核的GPU的一部分
Texture Units 纹理处理单元,它可以获取和过滤纹理。
CUDA Core 允许不同处理器同时工作数据的并行处理器
Warp 一组线程
尽可能减少CPU和GPU之间的数据传输, 减少资源传输的成本
尽可能单向
![[Games104笔记]4/4 渲染系统1 『渲染数据组织』_csdn博客_12](https://file.cfanz.cn/uploads/png/2022/06/15/1/D9O155PZV5.png)
注意缓存效率. 充分利用硬件的并行计算,尽量避免冯·诺依曼的瓶颈
![[Games104笔记]4/4 渲染系统1 『渲染数据组织』_聚类_13](https://file.cfanz.cn/uploads/png/2022/06/15/1/eVe8X3Z9FO.png)
应用程序的性能受到的限制
![[Games104笔记]4/4 渲染系统1 『渲染数据组织』_javascript_14](https://file.cfanz.cn/uploads/png/2022/06/15/1/R23TT94Y08.png)
※submesh
相同材质,mesh分类管理
![[Games104笔记]4/4 渲染系统1 『渲染数据组织』_聚类_15](https://file.cfanz.cn/uploads/png/2022/06/15/1/W2Y208e7H5.png)
![[Games104笔记]4/4 渲染系统1 『渲染数据组织』_javascript_16](https://file.cfanz.cn/uploads/png/2022/06/15/1/8J607YB6d3.png)
![[Games104笔记]4/4 渲染系统1 『渲染数据组织』_游戏引擎_17](https://file.cfanz.cn/uploads/png/2022/06/15/1/0cB2e9Ba28.png)
资源库
![[Games104笔记]4/4 渲染系统1 『渲染数据组织』_csdn博客_18](https://file.cfanz.cn/uploads/png/2022/06/15/1/U2BM414787.png)
实例化:使用句柄重用资源
![[Games104笔记]4/4 渲染系统1 『渲染数据组织』_游戏引擎_20](https://file.cfanz.cn/uploads/png/2022/06/15/1/5M57YW6680.png)
批处理绘制
![[Games104笔记]4/4 渲染系统1 『渲染数据组织』_游戏引擎_21](https://file.cfanz.cn/uploads/png/2022/06/15/1/0b57Mf097C.png)
几种包围盒
轴对称, 贴着物体, 凸包...
![[Games104笔记]4/4 渲染系统1 『渲染数据组织』_javascript_22](https://file.cfanz.cn/uploads/png/2022/06/15/1/C8H22ZC88e.png)
※BVH
动态的事物很多
BVH针对的是可见物件的层次结构,而八叉树针对的是场景空间下哪些物件应当归于子空间中
![[Games104笔记]4/4 渲染系统1 『渲染数据组织』_聚类_23](https://file.cfanz.cn/uploads/png/2022/06/15/1/R00b33XS8I.png)
PVS
可见度集
![[Games104笔记]4/4 渲染系统1 『渲染数据组织』_聚类_24](https://file.cfanz.cn/uploads/png/2022/06/15/1/12X26QJd8V.png)
![[Games104笔记]4/4 渲染系统1 『渲染数据组织』_javascript_25](https://file.cfanz.cn/uploads/png/2022/06/15/1/2Dd4P766JY.png)
![[Games104笔记]4/4 渲染系统1 『渲染数据组织』_javascript_26](https://file.cfanz.cn/uploads/png/2022/06/15/1/1H5190d9Id.png)
GPU剔除
![[Games104笔记]4/4 渲染系统1 『渲染数据组织』_javascript_27](https://file.cfanz.cn/uploads/png/2022/06/15/1/cfR2129Oea.png)
图像压缩
![[Games104笔记]4/4 渲染系统1 『渲染数据组织』_游戏引擎_28](https://file.cfanz.cn/uploads/png/2022/06/15/1/7V1X2f87e4.png)
通用的块压缩
![[Games104笔记]4/4 渲染系统1 『渲染数据组织』_javascript_29](https://file.cfanz.cn/uploads/png/2022/06/15/1/U8c2bff45U.png)
几种创作方式的比较
![[Games104笔记]4/4 渲染系统1 『渲染数据组织』_游戏引擎_30](https://file.cfanz.cn/uploads/png/2022/06/15/1/7UR9H339BX.png)
基于聚类的网格管道
surf:基于材料的子网格,由许多三角形簇组成集群
![[Games104笔记]4/4 渲染系统1 『渲染数据组织』_csdn博客_31](https://file.cfanz.cn/uploads/png/2022/06/15/1/c9135cYP44.png)
![[Games104笔记]4/4 渲染系统1 『渲染数据组织』_聚类_32](https://file.cfanz.cn/uploads/png/2022/06/15/1/1Q6555HZ59.png)
聚类 的GPU剔除
![[Games104笔记]4/4 渲染系统1 『渲染数据组织』_游戏引擎_33](https://file.cfanz.cn/uploads/png/2022/06/15/1/05564DKP8G.png)
无缝边界的分层LOD集群, 不需要硬件支持,而是在预先计算的BVH树上使用分层集群选择
![[Games104笔记]4/4 渲染系统1 『渲染数据组织』_csdn博客_34](https://file.cfanz.cn/uploads/png/2022/06/15/1/acefY53LC6.png)
Tips:
1.游戏引擎的设计与硬件结构设计有着深刻的联系。
2.采用submesh设计来支持多材料模型
3.使用剔除算法绘制尽可能少的对象
4.随着GPU功能的增强,越来越多的工作被转移到GPU中,即GPU驱动








