图形管道的哪些部分是使用 CPU 和 GPU 完成的?

Afr*_*ief 5 opengl directx graphics rendering real-time

管道的哪些部分是使用 CPU 完成的,哪些部分是使用 GPU 完成的?

阅读有关图形管道的维基百科,也许我的问题并不能准确代表我要问的内容。

参考这个问题,哪些“步骤”是在CPU中完成的,哪些是在GPU中完成的?

编辑:
我的问题更多的是[从文件]显示地形+3D模型所需的逻辑高级步骤的哪些部分正在使用CPU/GPU而不是哪些函数。

Sig*_*erm 3

管道的哪些部分是使用 CPU 完成的,哪些部分是使用 GPU 完成的?

据我所知...
完全取决于硬件、驱动程序和opengl实现。您可以在 OpenGL 中执行的所有操作都有效,但您无法 100% 确定处理发生在何处 - 它很方便地对您隐藏(这实际上是 OpenGL 的优点之一)。
有全软件 OpenGL 模拟器,例如 - mesa3d(未经认证)。将此类 opengl32.dll(如果您在 Windows 上)放入程序文件夹中,所有内容都将在 CPU 上运行。

通常,光栅化(管道的最后阶段 - alpha 混合、放置像素、ztest)是在硬件中完成的。使用旧显卡,其余功能可能会在 CPU 上运行。顶点变换、顶点操作,甚至标准光照都可以在 CPU 上完成(并且它们很长一段时间都是在 CPU 上完成)——具体取决于显卡。然而,我必须承认,没有硬件 TL(变换和光照)支持的显卡已经相当陈旧了。AFAIK,如果卡仅支持 DirectX 7 的完整硬件加速(特定于 Windows 平台),则转换和照明始终在 CPU 上执行。

不过,可能有依赖于平台的方式来获取 openGL 中的显卡功能。

附注:DirectX 为您提供了有关显卡功能的更多信息,以及控制在何处发生事件的方法(即,即使显卡支持硬件加速,您也可以选择软件 T&L - 在某些情况下这可能是必要的)。这会带来一些损失 - DirectX 不如 OpenGL 灵活,更难使用,更难实验,它比 OpenGL 可用的平台更少,并且担心哪些功能受支持、哪些不支持需要开发时间。