对于新手来说,什么更容易编程 - directx 12 或 vulkan
whats easier to program in for newbies - directx 12 or vulkan
我是计算机图形学和游戏开发的新手,想知道什么更容易学习 - Directx 12 还是 Vulkan?
我指的是更简单的函数名称、class 名称、命名约定、如何 setup/initiate vulkan 项目与 directx 12 等
两者都不适合新手 API。 API 都向应用程序程序员公开了 GPU 的私密细节,使您完全负责 'lock-free' 风格的同步、内存管理,包括所有边缘情况,如低资源场景,完整描述状态等。这些 API 是为专业的图形程序员设计的,他们基本上希望通过某种程度的供应商中立抽象直接与视频驱动程序对话。
Graphics programming is already a challenging discipline particularly when it comes to debugging. You can mess up a single number in a thousand lines of code and end up with a blank screen and have to work out what went wrong. It's particularly challenging to debug in context with GPU shader programming once you move beyond trivial shaders. With Direct3D 12/Vulkan, you can multiply the challenges even further with driver crashes that stop your application, timing-based synchronization issues that change based on even tiny differences in variables, or worse it works perfectly fine unless you use a different screen resolution or completely fails on a different PC.
Direct3D 11 是 API 在 Windows 平台上学习图形编程和游戏开发的好工具。 Direct3D 9 仅适用于传统系统或新兴市场,它们往往具有非常具体和特殊的硬件要求。所有现代 Windows 平台都支持 Direct3D 11,包括通用 Windows 平台 (UWP); Windows Windows 7、8.1 或 10 上的 Win32 桌面应用程序;和Xbox One。如果您有兴趣,我建议您看看 DirectX Tool Kit for DirectX 11.
UPDATE DirectXTK is also a good place to start because once you have learned it on DirectX 11, you can transition over to the DirectX 12 version and have a leg-up on the basics.
你当然可以在其他平台上学习图形编程和游戏开发的基础知识,但我不能说那里有最好的选择。我可以建议的一件事是你决定你的热情是真的 游戏开发 还是 图形编程 。您现在可能还不够了解,无法真正做出全面判断,但这些是行业中截然不同的路径。如果您有想要制作的游戏愿景,请查看 Unity 或 Unreal Engine 之类的东西,这样您就可以专注于 游戏开发 方面。一般来说,如果您对图形或游戏相关技术(音频和媒体、引擎、模拟、实时交互行为等)更感兴趣,那么学习 Direct3D 11 是一个很好的起点。
我是计算机图形学和游戏开发的新手,想知道什么更容易学习 - Directx 12 还是 Vulkan?
我指的是更简单的函数名称、class 名称、命名约定、如何 setup/initiate vulkan 项目与 directx 12 等
两者都不适合新手 API。 API 都向应用程序程序员公开了 GPU 的私密细节,使您完全负责 'lock-free' 风格的同步、内存管理,包括所有边缘情况,如低资源场景,完整描述状态等。这些 API 是为专业的图形程序员设计的,他们基本上希望通过某种程度的供应商中立抽象直接与视频驱动程序对话。
Graphics programming is already a challenging discipline particularly when it comes to debugging. You can mess up a single number in a thousand lines of code and end up with a blank screen and have to work out what went wrong. It's particularly challenging to debug in context with GPU shader programming once you move beyond trivial shaders. With Direct3D 12/Vulkan, you can multiply the challenges even further with driver crashes that stop your application, timing-based synchronization issues that change based on even tiny differences in variables, or worse it works perfectly fine unless you use a different screen resolution or completely fails on a different PC.
Direct3D 11 是 API 在 Windows 平台上学习图形编程和游戏开发的好工具。 Direct3D 9 仅适用于传统系统或新兴市场,它们往往具有非常具体和特殊的硬件要求。所有现代 Windows 平台都支持 Direct3D 11,包括通用 Windows 平台 (UWP); Windows Windows 7、8.1 或 10 上的 Win32 桌面应用程序;和Xbox One。如果您有兴趣,我建议您看看 DirectX Tool Kit for DirectX 11.
UPDATE DirectXTK is also a good place to start because once you have learned it on DirectX 11, you can transition over to the DirectX 12 version and have a leg-up on the basics.
你当然可以在其他平台上学习图形编程和游戏开发的基础知识,但我不能说那里有最好的选择。我可以建议的一件事是你决定你的热情是真的 游戏开发 还是 图形编程 。您现在可能还不够了解,无法真正做出全面判断,但这些是行业中截然不同的路径。如果您有想要制作的游戏愿景,请查看 Unity 或 Unreal Engine 之类的东西,这样您就可以专注于 游戏开发 方面。一般来说,如果您对图形或游戏相关技术(音频和媒体、引擎、模拟、实时交互行为等)更感兴趣,那么学习 Direct3D 11 是一个很好的起点。