从初学者那里寻找关于这个主题的建议和答案,我就是 - 为什么开始学习 OpenGL 或 Vulkan,在大多数情况下,一般答案是:
OpenGL 已经被移植并且现在可以工作了,甚至可以粗略地说是在一个茶壶上,而 Vulkan 是一个新的规范,还有很多尚不支持。
一切似乎都是如此,但我有一个问题,为什么会这样?仅仅因为 Vulkan 是新的,而傻瓜还没有为 Vulkan 编写驱动程序吗?
实际上,从理论上讲,对于开发人员来说,为 Vulkan 编写驱动程序似乎比为 OpenGL 编写驱动程序更容易。或者不是吗?
或者 Vulkan 规范可能不适合旧的、过时的“假人”和视频卡,因此 Vulkan 将永远无法在那里工作?
Vulkan 的实现难度要高一个数量级,而且对硬件功能的要求可能要高一个数量级。此外,它不仅在深度(例如,它提供计算着色器和用于光线追踪的工具),而且在宽度(例如,交换链的创建和使用 SPIR-V 格式的工作都被塞在那里)。并且自古以来就存在于 OpenGL 中的所有简化,主要是固定功能管道,都在其中不存在。例如,在 ES 版本中,OpenGL 是为具有最少功能的最简单的设备而设计的。