• 【Unity优化】图形优化系列01:渲染管线、CPU、GPU优化概述


    图形优化没有银弹,与具体游戏、目标硬件和操作系统有关。

    三步:发现、定位、优化。

    渲染管线

    1)CPU搜集需要被渲染的对象,及其渲染状态

    2)CPU向GPU发送渲染指令

    3)GPU处理渲染指令

    CPU流程

    1)搜集场景中需要被渲染的对象;不被渲染的对象被剔除(culled)

    2)获取对象的信息(网格和渲染状态),封装进一个叫 DrawCall 的指令

    3)渲染状态相同的对象,会被合并进一个DC,这个过程叫合批(batching)

    4)于是每个DC都包含一个叫 batch 的数据包(batch还包含了DC以外的信息)

    CPU向GPU发送渲染指令

    1)如果指令用于改变渲染状态,则发送名为 SetPassCall 的指令。

    2)如果不需要改变渲染状态(沿用上个渲染状态),则发送 DrawCall。

    3)着色器中包含 Pass,而 batch 中的每个 Pass 都需要一个新的 SetPassCall 的指令。

    GPU流程

    1)GPU按顺序处理CPU发过来的指令。

    2)如果当前指令是 SetPass,则更新渲染状态。

    3)如果当前指令是 DrallCall,则渲染网格(GPU管线)。

    问题综述

    1)只有当CPU和GPU都完成了他们的任务,才能渲染完成一帧。

    2)两种基础原因:低效的管线、数据量过大

    3)优化是种平衡,提升一方面的性能,可能导致另一方面的问题。

    4)调试工具:Profiler Window、Frame Debugger

    5)先确保有渲染问题,图形优化才有意义;然后再明确是CPU还是GPU问题;最后再明确是哪个环节或部分出问题。

  • 相关阅读:
    MySQL存储树形数据优化技笔记
    收集18个高大上的浏览器小技巧
    收集18个高大上的浏览器小技巧
    盘点15个不起眼但非常强大的 Vim 命令
    盘点15个不起眼但非常强大的 Vim 命令
    为什么开发者应该摒弃敏捷?(转)
    为什么开发者应该摒弃敏捷?(转)
    MySQL 中事务、事务隔离级别详解
    pandas数据对齐
    Bokeh绘图
  • 原文地址:https://www.cnblogs.com/hearthstone/p/13357938.html
Copyright © 2020-2023  润新知