开源 3D 建模软件 Blender 团队发布了 Blender Vulkan - 状态报告 ,向社区展示当前的 Vulkan 支持进展。很可惜的是,目前并没有活跃的开发者致力于 Blender 中的 Vulkan 集成。
为什么要在 Blender 中支持 Vulkan?
Blender 希望以 Vulkan 来代替当前的 OpenGL ,一是因为 Vulkan 正在取代 OpenGL (实际上 Vulkan 在 2015 年发布时被命名为 OpenGL Next),自 Vulkan 1.0 推出以来,OpenGL 标准没有进行任何核心更改,它的开发已经停滞。
其次, OpenGL 驱动程序内部工作方式不同,对 NVIDIA 和 AMD 的优化也不同,驱动出问题可能导致 Blender 出现性能下降。而作为低级 API 的 Vulkan 则解决了这个问题,它更适合实际硬件的工作方式,对驱动的开发也更友好。
目前为止做了什么?
然而到目前为止,对 Vulkan 的支持仅仅是设计了一个能够将 Vulkan 添加到 Blender 的系统。这个系统包括 Blender 2.8 引入的绘图管理器,该绘图管理器的结构与 Vulkan 的数据类型和结构类似。其次是将 Blender 和 GPU 之间的所有通信都进行了抽象,兼容不同的 GPU 后端,无论是用于 OpenGL、Vulkan 或 Metal。最后是完成了对 Vulkan 平台的 Blender GLSL 编译。
现在需要做什么?
当前最重要的任务是赶紧实现 GPU Vulkan 后端。这是最艰巨的工作,GPU 数据类型需要得到 Vulkan 特定实现。包括但不限于(后端、计算、上下文、帧缓冲区、索引缓冲区、查询、着色器、状态、存储缓冲区、纹理、顶点数组、顶点缓冲区、调试)。
实现 GPU Vulkan 后端之后,还需要实现 GHOST_ContextVK 和选择器,让用户可以选择使用 OpenGL 或 Vulkan 启动 Blender。看起来确实还有一段漫长的路要走。