什么是间接渲染?

什么是间接渲染?

什么是间接渲染?它对图形性能有什么样的影响?

另外,它是 Linux 特有的术语吗?或者它可以在其他操作系统的环境中使用吗?

答案1

间接渲染是指在本地计算机上渲染远程应用程序。它通过 X11 协议传输图形数据。其性能取决于传输数据的网络连接以及本地显卡的性能。

它适用于任何具有 GFX 卡和正在运行的 X-Server 的系统(Windows 或 Linux)

答案2

间接渲染基本上意味着整个渲染管道通过 GLX/X11 运行。这是一种权衡,通常会导致更多的资源消耗以及更大的延迟,有时还会导致较低的渲染速度

为了便于说明,我将在这里进行简化描述。

直接渲染:

应用程序 --> LibGL --> 驱动程序 --> 硬件

间接渲染

应用程序 --> LibGL --> Xorg --> 驱动程序 --> 硬件

间接渲染的优点是它减少了一些与驱动程序相关的错误,不需要用户级别访问视频卡(安全功能),并且允许通过网络进行渲染。

间接渲染的缺点是它的管道延迟更长,并且管道使用更多资源(特别是内存带宽和处理器时间)。

间接渲染通常会导致较低的性能,特别是对于处理器开销高或依赖低延迟渲染管道的应用程序。

在极少数情况下,间接渲染在处理直接渲染管道中的短队列缓冲区时会更快。就像打印缓冲区会加快打印速度一样,这可能是由于应用程序中的错误或限制所致,这些应用程序依赖于传出的异步渲染调用的流出速率。这只是极少数具有长渲染管道且几乎没有延迟依赖性的程序。这不是您的典型程序,如果间接渲染实际上更快,则这是程序渲染队列处理中的一个错误。

但是在某些情况下,您的系统会读取间接渲染,因为所有软件渲染都是间接的。即使在没有达到典型带宽和延迟瓶颈的渲染中,这种情况也非常慢,因为它使用 CPU 执行大多数绘制功能,而 CPU 本质上不擅长用于渲染的批量矢量和矩阵数学。截至撰写本文时,LLVMPipe 是最常见的软件渲染驱动程序。

答案3

间接渲染是在 OpenGL 指导下提供绘图的系统,当然,实际上该请求的大多数参数都来自由缓冲区对象提供的 GPU 缓存。

例如,glDrawArrays()进行粗略排序,顶点数和起始顶点。当使用异常绘制标题时glDrawArraysIndirect(),起始顶点和要渲染的顶点数最好在支持对象中处理。

答案4

间接渲染与直接渲染相反,意味着您使用某种软件渲染,而不是使用显卡 GPU。结果是 3D 渲染效果不佳。

间接渲染意味着没有硬件图形加速。

相关内容