随记:渲染优化的手段与本质

  • 原理:对于CPU而言,我们需要做的就是尽可能的减少渲染指令,所谓的渲染指令就是图形系统给到应用层的一个与硬件无关的API调用,在运行时通过相关驱动的转换成为GPU硬件的一个调用,而每一次这样的调用都会消耗一定的CPU时钟周期,关于dx指令耗时测试可以参阅

    命令缓冲区.png

    运行态到内核态.png

  • 减少渲染命令

    • 我们最常见的就有动/静态合批、GPUInstance、Unity推出的SRPBatcher。而我们还需要做的统一着色模型,我觉得这是一个大的前提,而PBR材质规范可以很大程度的帮我们实现这一特性。
  • 剔除

    • 常见的剔除的方式有视锥体剔除,遮挡剔除,背面剔除,小三角形剔除等。剔除是一个比较综合的影响,在CPU端进行剔除,可以减少无效的渲染命令,而对于GPU而言,剔除则可以减少顶点变换执行次数,也能一定程度减少像素的处理和计算(GPU也会通过EarlyZTest优化部分)。
  • 内存与带宽

    • 常见的优化带宽的方式有:整体来说可以优化渲染的分辨率,对于图片有mipmap,对于模型有Lod,上面的剔除也能减少物体的渲染,从而优化带宽。对于移动端来说减少RT切换以及正确的配置RT切换的参数对于带宽来说影响也是非常大。而内存就有我们常见的时间换空间方案,我们图片设置压缩格式。
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容