图形API的简单了解

本文图片来自:http://www.rastertek.com/choosing.html
大多数人都希望学习图形API,以便他们可以构建自己的3D或2D图形引擎。但是,随着最近发布的许多新API的选择,使用哪种API并非一帆风顺,尤其是某些API是专门为专业用户设计的。鉴于学习单个API是一项艰巨的任务,因此不用说学习者希望做出最佳选择,以免浪费时间。我编写了以下小型指南,以便您可以根据自己的喜好做出最明智的决定。

DirectX 12

在这里插入图片描述
DirectX 12是专家的API。它是专门为已经精通DirectX 11的开发人员编写的,这些开发人员由于提高的性能要求而需要对渲染管道进行更底层的控制。学习DirectX 12的人通常应该已经编写了一个非常复杂的DirectX 11引擎,并且对它的所有方面都有全面的了解。如果这不能描述您的情况,那么您更适合学习其他API之一。

DirectX 12的重点实际上在于能够并行化图形工作流程,以有效控制您可以使用的所有GPU。但这意味着编写大量代码以完成甚至可以用DirectX 11中的一行编写的简单事情。

DirectX 11

在这里插入图片描述
DirectX 11是领先的行业标准图形API。即使与DirectX 12一起,微软也同时发布了DirectX 11.3,他知道绝大多数编写图形引擎的人并不需要DirectX 12提供的这种低级控制。DirectX 11也具有与DirectX 12相同的功能列表,因此您不会错过任何功能。同样,在其他程序员对编码的支持方面,您会发现大多数网站和论坛都将专注于DirectX 11。

DirectX 10

在这里插入图片描述
DirectX 10以前是学习3D图形编程的最佳现代图形API。今天唯一的缺点是它不支持硬件细分,但这是一个小问题。该API是从头开始设计的,主要重点是利用新硬件,而次要重点是API内的组织。由于致力于使API井井有条,因此很适合学习3D图形
程。同样的组织也被延续到DirectX 11中。

DirectX 9及以下

在这里插入图片描述
在所有DirectX API中,DirectX 9的使用历史可能最长。从2002年开始一直使用到2011年,直到人们开始最终迁移到DirectX 11为止,它一直得到广泛使用。因此,您可以在网上找到大量的资源。但是,与此同时,它的组织方式不如DirectX 10和DirectX 11,并且在利用现代硬件方面存在一些限制。因此,就学习而言,我不再建议从这些较旧的DirectX API开始。

Vulkan

在这里插入图片描述
Vulkan是Khronos集团开发的最新跨平台图形API。就像DirectX 12一样,这是专家的API。它与DirectX 12提供的功能并行,并且在编程方面同样复杂。这不是适合初学者的API。如果您主要对跨平台API感兴趣,那么最好使用OpenGL 4开始学习过程。

OpenGL 4

在这里插入图片描述
OpenGL 4在功能和现代硬件利用率方面与DirectX 11等效,但它的主要优势是跨平台。同样,如果您主要在Linux等操作系统上进行开发,那么这是利用硬件加速的高级图形API的唯一选择。并且OpenGL 4与先前版本的变化并未使它的使用或学习变得更加复杂。因此,我建议将此作为跨平台图形开发的主要学习API。

OpenGL 3及以下

OpenGL 3.3与DirectX 10等效,可以处理跨平台。尽管这是一个功能强大且使用广泛的API(具有大量网络资源),但我仍然建议学习OpenGL4。将这两个API进行比较,您会发现它们之间的差异很小,因此学习最新版本是有意义的。

Mantle


Mantle还是由AMD创建的专家API。它是第一个发布的可对GPU进行低级控制的3D图形API,并且是推动微软和Khronos集团开发自己的低级API的推动因素。但是,它仅支持AMD显卡硬件,这在Nvidia主导的市场中受到了极大的限制。我个人看不到任何学习此API的价值。

Rastertek网站-历史教程

在这里插入图片描述
在Rastertek网站上,您会发现我撰写的绝大多数教程都在历史部分中。但是其中大多数将无法编译,因为Microsoft删除了DirectX SDK,并用Windows SDK替换了它。它还不赞成在这些教程中使用的数学库,因此不再可用。

但是,历史教程中的信息仍然很好,您需要做的只是更新代码的一小部分,以改用Windows SDK和相关库。您还将在DirectX 10和11 Series 2教程中看到如何使用较新的库。第二个系列的教程较少,但同时显示了您需要在较旧的教程中进行修改才能使其正常工作的所有内容。

  • 3
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值