性能优化思路

- 影响游戏性能第一可能的瓶颈就是CPU
- Unity6下最大的优化思路就是:充分利用现代图形API,将一些CPU上的性能瓶颈转移到GPU上计算,也就是通常所说的GPU driven
- 到目前Unity6版本为止,Unity的GPU driven已经实现了T20与T21两个层级,同时Unity6也针对于GPU上的性能做了进一步优化
Unity给出的渲染优化细节

主要是针对于引擎通用渲染(Common)、URP、HDRP,3个方面
并从渲染构建、计算加速、像素处理、光线追踪加速,4个维度去实现
渲染构建层面
- 现在有了更底层的Render Graph,用来优化渲染资源的生命周期,提高渲染资源的利用率与Catch命中,从而降低渲染的带宽压力
- 优化Volume框架的CPU性能,则可以提高在低端硬件上的效率,并允许更精确的控制Quality的设置
- GPU Resident Drawer功能,则简化了Batch Render Group API的使用,通过减少DrawCall调用次数来释放CPU的处理时间
- Split Graphics Jobs,可以减少主线程与GFX工作线程之间的同步,从而显著降低CPU端的延迟
- URP则进一步完善了Forward+管线的性能,支持了更多光源的着色处理
- HDRP则通过Hybrid Tiled/Cluster Renderer使得一些不同的加速结构在同一管线下得到了各自加速的应用
计算加速方面
- 通过GPU Occlusion Culling实现了异步回度的Hierarchical-Z Culling,可以替换GPU烘焙方式的遮挡剔除,同时进一步降低OverDraw对性能的影响
- 而Batched GPU Skinning,则将蒙皮计算做成了Render层面的合批,有效地提高了大量SkinRenderer渲染效率
- HDRP管线在计算加速方面,则完全实现了一套基于ComputeShader加速计算的程序化天空与水体系统
在像素处理的通用层面
- Unity通过Spatial Temporal Post Processing从空间和时间层面的采样技术,产生高质量抗锯齿的后处理图像,使屏幕后处理的性能得到了进一步提升
- URP管线下基于VRS实现的注视点渲染,大大提升了XR/VR平台的渲染性能,对于注视点之外的像素,采用更粗粒度的像素渲染,极大地减少了像素处理数量
- Native Render Pass与Raster Pass Merging功能,则充分利用了现代图形管线优势,实现了Sub Pass的合并,减少了渲染资源复制到内存和从内存复制的频率
至于光线追逐的加速结构,在Unity6中也暴露出了更多的接口,添加了更多的功能(HDRP管线)