在Windows上,OpenGL与DirectX有何不同?

我没有掌握图形编程的经验.我在读图形编程时遇到了这个疑问.

根据我的理解,因为Windows不像直接硬件访问那样提供DOS,所以创建了DirectX.这意味着DirectX是实现直接(ish)硬件访问的唯一可靠方法.我错了吗?

如果我没有错,那么OpenGL必须使用DirectX本身或在DirectX之上实现.

那么这不是说Windows OpenGL真的是DirectX吗?

请注意,我的疑问仅限于标题所说的内容,而且我不感兴趣为什么一个比另一个更好等.

From what I understand,because Windows didn’t offer DOS like direct hardware access,Direct X was created.

你是对的,Windows没有像直接硬件访问那样提供DOS.实际上没有带内存保护的操作系统.

是的,创建DirectX是为了提供一种API来加速访问某些类型的硬件. DirectX是用于加速硬件访问的API,而不是THE(唯一的).

That means Direct X is the only sure way to achieve direct(ish) hardware access. Am I wrong?

你错了,因为没有人和没有人阻止你实现另一个加速硬件访问的轨道.负责引导访问硬件的软件称为驱动程序.驱动程序以特权模式运行,这意味着地址空间保护不适用于它们.也就是说,因为驱动程序必须能够与硬件通信.

驱动程序通过API与常规程序通信,即所谓的用户空间. API可以是标准化的,然后可以严格指定,也可以是完全有利的.

DirectX是一个指定的API,该规范由Microsoft写下.

OpenGL以类似的方式是一个API,但它不是由单个实体指定,而是以某种形式标准化,由几个贡献者协作.

专有API的一个例子是3Dfx的Glide,其中很大一部分是受OpenGL的启发.事实上,有一个名为“minigl”的兼容性包装器,它实现了Half-Life 1引擎在3Dfx / Glide系统上工作所需的OpenGL子集.

GPU供应商的驱动程序开发人员遵循API的规范,为DirectX,OpenGL或某些专有接口编写驱动程序.每个API都可以访问驱动程序,从而访问硬件.并且单个资源可能有多个API.驱动程序可以实现DirectX 3D,OpenGL以及其他任何并行操作,并将它们全部提供给用户空间.

所以不,如果装有GPU驱动程序,OpenGL不会构建在DirectX之上. Windows Vista及更高版本附带了一个构建在DirectX之上的OpenGL-1.4仿真,但它不支持着色器,顶点缓冲对象以及所有其他的口哨和铃声.一旦安装了支持OpenGL的GPU驱动程序,这就完全取代了OpenGL-1.4仿真与实际的低级实现.

相关文章

文章浏览阅读2.2k次,点赞6次,收藏20次。在我们平时办公工作...
文章浏览阅读1k次。解决 Windows make command not found 和...
文章浏览阅读3.2k次,点赞2次,收藏6次。2、鼠标依次点击“计...
文章浏览阅读1.3w次。蓝光版属于高清版的一种。BD英文全名是...
文章浏览阅读974次,点赞7次,收藏8次。提供了更强大的功能,...
文章浏览阅读1.4w次,点赞5次,收藏22次。如果使用iterator的...