为什么渲染线程能够提升渲染效率?
demi 在 周一, 08/23/2021 - 09:53 提交
独立的渲染线程是指执行准备渲染数据、提交渲染指令过程的线程。这一过程相比起逻辑线程,通常执行时间较长。使用独立的线程可以提高并行度,减少GPU的等待。
GPU渲染是一种利用图形处理器(GPU)来生成图像的技术。相比于传统的中央处理器(CPU)渲染,GPU渲染能够并行处理大量的计算任务,使得图像渲染速度更快、更高效。它被广泛应用于游戏开发、动画制作、虚拟现实以及科学可视化等领域,通过硬件加速实现复杂的图形和视觉效果。
独立的渲染线程是指执行准备渲染数据、提交渲染指令过程的线程。这一过程相比起逻辑线程,通常执行时间较长。使用独立的线程可以提高并行度,减少GPU的等待。
众所周知,由于不同的设备配置不同。导致其CPU和GPU处理能力有高有低。同样的游戏想要在所有设备上运行流畅且画面精美,是不可能的。这就需要我们针对不同的设备能力进行画质调节,以保证游戏的流畅运行。
基于UE的手游客户端的性能主要由这七大部分构成:CPU逻辑,CPU渲染,图形API(提交),GPU渲染,内存,带宽,加载时间。这几个基本元素又会合力衍生出一些新的性能指标,例如功耗(往往同gpu负载和带宽紧密相关)。
CPU内部流水线结构拥有并行计算能力,一般用于显示内容的计算。而GPU的并行计算能力更强,能够通过计算将图形结果显示在屏幕像素中。内存中的图形数据,经过转换显示到屏幕上的这个过程,就是渲染。而负责执行这个过程的,就是GPU。
当场景中的可渲染对象很多,而当前会被渲染的对象相较甚少的时候,我们通常会启用一个 culling 的过程。Culling 会想办法剔除一些当前不必渲染的对象,避免这些对象提交到 GPU ,让 GPU 承担剔除的过程。这样可以减少 CPU 到 GPU 的带宽。
评价一款游戏的性能好坏,我们通常会用到「帧率」(每秒钟的渲染帧数)作为主要参考指标。当然,手游这块功耗也是一个重要因素,但主要还是看帧率。像MOBA、FPS类的游戏,帧率肯定是越高越好,出于功耗与显示设备的限制,一般跑满也就在60fps左右。而像其他的棋牌、放置类游戏,帧率只要有30fps就足够了。
手机自带的开发者选项中,有很多可以使用的工具,他们可以用来分析自己的应用的性能、绘制、anr等情况。
通常来说,计算机系统中 CPU、GPU、显示器是以上面这种方式协同工作的。CPU 计算好显示内容提交到 GPU,GPU 渲染完成后将渲染结果放入帧缓冲区,随后视频控制器会按照 VSync 信号,逐行读取帧缓冲区的数据,经过可能的数模转换传递给显示器显示。
手游运行在移动端的TBDR架构上,所以手游的渲染优化在硬件的角度上讲有其独特之处......
GPU提供非通用计算能力,在3D图形处理时,GPU所采用的核心技术有:硬件T&L(几何转换和光照处理)、立方环境材质贴图和顶点混合、纹理压缩和凹凸映射贴图、双重纹理四像素256位渲染引擎等。