本文作者:StubbornHuang
版权声明:本文为站长原创文章,如果转载请注明原文链接!
原文标题:计算机图形学 – 如何选择合适的图形API
原文链接:https://www.stubbornhuang.com/1862/
发布于:2021年12月15日 14:30:42
修改于:2021年12月16日 10:48:32

开始学习计算机图形学除了学习计算机图形学数学基础、理论基础之外,还需要选择一个合适的图形开发API。随着最近发布的许多新的图形开发API,新手往往会在选择哪个图形API学习的问题上产生困惑。鉴于学习单个 API 是一项非常艰巨的任务,不言而喻,学习者希望尽可能做出最佳选择,以免浪费时间。我编写了以下小指南,以便您可以对可能更喜欢学习的内容做出最明智的决定。
学习图形API最好不要从 Vulkan 或 D3D 12 开始,而应从 OpenGL 或 D3D 11 开始。
1 DirectX 12

DirectX 12是专家的 API。它专为已经掌握 DirectX 11 的开发人员编写,这些开发人员由于性能要求的提高而需要对渲染管道进行更底层的控制。学习 DirectX 12 的人通常应该已经编写了一个非常复杂的 DirectX 11 引擎,并且对它的所有方面都有透彻的了解。如果这不能描述您的情况,那么您更适合学习其他 API 之一。
DirectX 12 的重点实际上是能够并行化您的图形工作流程,以有效控制您可以使用的所有 GPU。但这样做意味着编写大量代码来完成在 DirectX 11 中可以用一行编写的简单事情。
2 DirectX 11

DirectX 11是领先的行业标准图形 API。即使在 DirectX 12 的同时,微软也发布了 DirectX 11.3,因为他们知道绝大多数编写图形引擎的人不需要 DirectX 12 提供的如此低级的控制。DirectX 11 还具有与 DirectX 12 相同的功能列表,因此您不会遗漏任何内容。此外,在对其他程序员编码的支持方面,您会发现大多数网站和论坛都将专注于 DirectX 11。
3 DirectX 10

DirectX 10以前是学习 3D 图形编程的最佳现代图形 API。它今天唯一的缺点是它不支持硬件镶嵌,但这只是一个小问题。API 是从头开始设计的,主要关注利用新硬件,次要关注 API 内的组织。由于专注于使 API 井井有条,因此非常适合学习 3D 图形编程。同样的组织也被延续到 DirectX 11中。
4 DirectX 9及以下版本

在所有 DirectX API 中,DirectX 9可能拥有最长的使用历史。从 2002 年一直到 2011 年,当人们开始最终迁移到 DirectX 11 时,它一直被广泛使用。因此,您可以在网上找到数量惊人的资源。然而,同时它不像 DirectX 10 和 DirectX 11 那样组织良好,并且在利用现代硬件方面存在一些限制。因此,在学习方面,我不建议再从这些较旧的 DirectX API 开始学习。
5 Vulkan
Vulkan 是 Khronos 小组开发的最新跨平台图形 API。就像 DirectX 12 一样,这是一个专家的 API。它与 DirectX 12 提供的功能相似,并且在编程方面同样复杂。这不是适合初学者的 API。如果您主要对跨平台 API 感兴趣,那么最好从OpenGL 4开始学习。
6 OpenGL 4

OpenGL 4 在功能和现代硬件利用率方面与 DirectX 11 等效,但其主要优势是跨平台。同样,如果您主要在 Linux 等操作系统上进行开发,那么这是使用硬件加速的高级图形 API 的唯一选择。与之前版本相比,OpenGL 4 中的更改并没有使其使用或学习变得更加复杂。出于这个原因,我推荐它作为跨平台图形开发的主要学习API。
7 OpenGL3.3及以下版本

OpenGL 3.3 相当于 DirectX 10,可以处理跨平台。虽然这是一个非常强大且广泛使用的 API(有很多网络资源),但我仍然建议学习 OpenGL 4。比较这两个 API,你会发现它们之间的差异很小,所以学习最现代的版本是有意义的。不建议再学习OpenGL3.3以下版本。
8 Mantle
Mantle 也是 AMD 创建的专家 API。它是第一个发布的用于对 GPU 进行低级控制的 3D 图形 API,并且是推动 Microsoft 和 Khronos 集团开发自己的低级 API 的催化剂。然而,它只支持 AMD 图形硬件,这在由 Nvidia 主导的市场中是非常有限的。我个人认为学习这个API没有任何价值。
参考链接
当前分类随机文章推荐
- 书籍翻译 – Fundamentals of Computer Graphics, Fourth Edition,第3章 Raster Images中文翻译 阅读1785次,点赞3次
- 计算几何 - 二维笛卡尔坐标系中,计算二维点绕任意中心点旋转任意角度的结果 阅读867次,点赞0次
- 计算机图形学 - 3D数学入门之坐标系 阅读834次,点赞0次
- 工具网站推荐 - 欧拉角四元数在线可视化转化网站/三维在线旋转变换网站 阅读8875次,点赞6次
- 默认的左手坐标系与右手坐标系的比较 阅读3733次,点赞2次
- 计算几何 - 求解两个三维向量之间的三维旋转矩阵 阅读934次,点赞0次
- 左手坐标系与右手坐标系 阅读2915次,点赞0次
- 计算机图形学 - 如何选择合适的图形API 阅读1172次,点赞0次
- 书籍翻译 - Fundamentals of Computer Graphics, Fourth Edition 虎书第四版中文翻译 阅读3819次,点赞10次
- 书籍翻译 - Fundamentals of Computer Graphics, Fourth Edition,第1章 Introduction中文翻译 阅读3665次,点赞15次
全站随机文章推荐
- Python - 列表list遍历方法总结 阅读341次,点赞0次
- C++ - 在两个互有依赖关系的类中使用std::shared_ptr和std::weak_ptr进行内存管理 阅读476次,点赞0次
- 资源分享 - Game Development Tools 英文高清PDF下载 阅读1733次,点赞0次
- 资源分享 - Game AI Pro 360 - Guide to Tactics and Strategy 英文高清PDF下载 阅读1569次,点赞0次
- Duilib - pos和padding属性设置的顺序 阅读2282次,点赞0次
- 资源分享 - Computational Geometry - Algorithms and Applications, Second Edition 英文高清PDF下载 阅读1503次,点赞0次
- WordPress - 使用插件的方式作出类似向主题function.php中添加代码的功能 阅读2383次,点赞0次
- FFmpeg - 修改视频帧率,将60FPS的视频修改为30FPS的视频,视频时间保持不变 阅读247次,点赞0次
- Modern OpenGL - 与着色器Shader相关的API函数总结以及如何创建、编译与使用Shader 阅读525次,点赞0次
- Pac - OneDriver/OneNote Pac规则 阅读4939次,点赞3次
评论
164