OpenGL和Direct3D:来自程序员&x27;从另一个角度来看,他们的立场是什么?

OpenGL和Direct3D:来自程序员&x27;从另一个角度来看,他们的立场是什么?,opengl,graphics,directx,direct3d,Opengl,Graphics,Directx,Direct3d,我对图形编程非常陌生,并试图理解“图形编程是如何工作的”。从我到目前为止所读到的内容来看,我仍然不清楚OpenGL和Direct3D等api的位置以及它们的实际实现者 驱动程序直接与硬件对话。所以NVIDIA/AMD等编写驱动程序,其他人需要在上面实现这些API?但我在Nvidia网站上看到了“OpenGL驱动程序”,这意味着OpenGL实际上是一个直接与图形硬件对话的驱动程序级API?那么Nvidia/AMD实现了这些API 我可以理解在OpenGL/Direct3D之上编写的游戏引擎等,但从

我对图形编程非常陌生,并试图理解“图形编程是如何工作的”。从我到目前为止所读到的内容来看,我仍然不清楚OpenGL和Direct3D等api的位置以及它们的实际实现者

驱动程序直接与硬件对话。所以NVIDIA/AMD等编写驱动程序,其他人需要在上面实现这些API?但我在Nvidia网站上看到了“OpenGL驱动程序”,这意味着OpenGL实际上是一个直接与图形硬件对话的驱动程序级API?那么Nvidia/AMD实现了这些API


我可以理解在OpenGL/Direct3D之上编写的游戏引擎等,但从程序员的角度看,我无法准确理解这些API的具体位置。

Direct3D本身完全由Microsoft实现。然而,它指定了一个更低级别的API(响应),然后由Nvidia/AMD作为设备驱动程序的一部分实现。所以基本上D3D是应用程序代码和驱动程序代码之间的垫片。图形体系结构的最新进展导致D3D提供的中间层越来越薄,以减少CPU开销

Windows下的OpenGL实现方式类似:Microsoft提供面向应用程序的OpenGL API实现,但将其转发给设备驱动程序实现


众所周知,Windows下OpenGL实现的质量因供应商而异。出于这个原因,Firefox和Chrome都通过执行WebGL,将OpenGL API调用转换为Direct3D API调用,从而获得更稳定的代码路径。

这确实提供了信息,但OpenGL呢?在最后一句话中,你是说DXGI DDI正在变薄,对吗?@Sreekar:我想他指的是微软特有的部分Direct3D,即介于驱动程序和应用程序之间的部分。趋势是使应用程序尽可能成为应用程序和硬件之间的抽象,另见AMD Mantle或Apple Metal.modified。其他人必须填写Linux的详细信息。@Antoine和Alexander谢谢你……现在我对这些事情已经非常清楚了:)请看我的回答:我非常不同意——虽然你的回答非常详细,但它不包括Direct3D。