dav*_*ave -2 c++ directx vulkan
我是计算机图形学和游戏开发的新手,想知道什么更容易学习 - Directx 12或Vulkan?
更简单的是我指的是函数名,类名,命名约定,如何设置/启动vulkan项目vs directx 12等.
对于新手来说,这两者都不是合适的API.这两个API都让应用程序员接触到GPU的私密细节,使您完全负责"无锁"风格的同步,内存管理,包括所有边缘情况,如资源不足的情况,完全描述的状态等. API适用于专业图形程序员,他们本质上希望通过某种程度的供应商中立抽象直接与视频驱动程序进行对话.
图形编程已经是一个具有挑战性的学科,特别是在调试方面.您可以在一千行代码中弄乱一个数字,最后得到一个空白屏幕,并且必须解决出错的问题.一旦您超越了琐碎的着色器,使用GPU着色器编程在上下文中进行调试尤其具有挑战性.使用Direct3D 12/Vulkan,您可以将挑战进一步增加到停止您的应用程序的驱动程序崩溃,基于时间的同步问题,即使变量的微小差异也会发生变化,或者更糟糕的是,除非您使用不同的屏幕分辨率或在另一台PC上完全失败.
Direct3D 11是在Windows平台上学习图形编程和游戏开发的良好API.Direct3D 9仅适用于传统系统或新兴市场,这些市场往往具有非常具体和特殊的硬件要求.所有现代Windows平台都支持Direct3D 11,包括通用Windows平台(UWP); Windows 7,8.1或10上的Windows Win32桌面应用程序; 和Xbox One.如果您有兴趣,我建议您查看适用于DirectX 11的DirectX工具包.
你当然可以在其他平台上学习图形编程和游戏开发的基础知识,但我不能说那里最好的选择.我可以建议的一件事是你决定你的激情是游戏开发还是图形编程.你现在可能还不太了解真正的判断,但这些都是行业中不同的道路.如果您有想要制作的游戏愿景,那么请查看Unity或虚幻引擎等内容,以便您可以专注于游戏开发方面.如果您对图形或游戏相关技术(音频和媒体,引擎,模拟,实时交互式behvaior等)更感兴趣,那么学习Direct3D 11就像开始一样好.