Vulkan vs OpenGL ES

Vulkan 简介html

 

Vulkan是一个免费开放的、跨平台的、底层的图形API,在必定程度上比AMD Mantle、微软DirectX 十二、苹果Metal更值得开发者关注。android

Vulkan的最大任务不是竞争DirectX,而是取代OpenGL,因此重点要看和后者的对比。git

 

在高分辨率、高画质、须要GPU发挥的时候,Vulkan、OpenGL的速度基本差很少,可是随着分辨率的下降,CPU愈来愈重要,Vulkan逐渐体现了出来,尤为是看看GTX 980 Ti,最多能够领先OpenGL 33%之多!github

Vulkan 是和 DirectX 12 相似的跨平台底层 API,Vulkan 和 DirectX 12 都是基于 AMD 开源的 Mantle API,事实上二者的早期文档就是将 AMD 的 Mantle 文档修改一下名字。编程

自1992年问世以来,OpenGL已经成为了PC游戏迄今为止最经常使用的图形API之一。做为一种多语言、跨平台的应用程序编程接口,它已经被普遍用于GPU的交互和硬件加速。多线程

使用至今,人们固然也发现了它的缺点。由于源代码是90年代的产物,对于目前在市面上大行其道的多核CPU(GPU)利用效率不佳,每每只能提供有限的单线程负载,因此帧率、能耗都难取得突破。ide

 

做为OpenGL官方组织,Khronos在今年三月份推出了新一代API规范Vulkan(昵称“火山”或者“福尔康”),一样采用跨平台设计,但最重要的贡献是大幅下降绘制命令开销(draw call overhead),改善多线程性能,渲染性能更快,背后的理念和DX12和Mantle都是一致的。工具

另外,Vulkan还会统一桌面的OpenGL和移动平台的OpenGL ES,并且谷歌已经明确了Android将会支持Vulkan。性能

 

Vulkan在改善功耗、多核优化提高绘图调用上之于前辈OpenGL有着很是明显的优点。开发工具

Khronos组织正式发布了Vulkan 1.0标准规范,咱们终于有了一个开放开源的、跨平台的、底层的图形和计算API。

Vulkan在很大程度上汲取了AMD Mantle的灵感,可是进行了大幅度的扩展和加强,构成了一个完善的开发体系,功能和性能都十分丰富,拥有最新图形技术、通用目的计算、预编译着色器、多核心多线程高效率、底层驱动过载、横跨桌面/移动/主机/嵌入式、底层GPU硬件控制、精炼API。

硬件方面,凡是支持OpenGL ES 3.1/4.x的均可以支持,而在操做系统方面,它支持Android(版本待定)、Windows XP/7/8/十、SteamOS、Ubuntu、Red Hat、Tizen等等,可是不支持iOS、OS X——苹果一度参与过Vulkan的开发,但最终单独搞了一套Metal,仍是关起门来本身玩。

 

The Khronos Group --vulkan 开源集

https://github.com/KhronosGroup

 

Vulkan API


Android 7.0 将一项新的 3D 渲染 API Vulkan™ 集成到平台中。就像 OpenGL™ ES 同样,Vulkan 是 3D 图形和渲染的一项开放标准,由 Khronos Group 维护。

Vulkan 是彻底从零开始设计,以最小化驱动器中的 CPU 开销,并能让您的应用更直接地控制 GPU 操做。Vulkan 还容许多个线程同时执行工做,如命令缓冲区构建,以得到更好的并行化。

Vulkan 开发工具和库都已卷入 Android 7.0DK。它们包括:

  • 标头
  • 验证层(调试库)
  • SPIR-V 着色程序编译器
  • SPIR-V 运行时着色器编译库

Vulkan 仅适用于已启用 Vulkan 硬件的设备上的应用,如 Nexus 5X、Nexus 6P 和 Nexus Player。咱们正在与合做伙伴密切合做,以尽快使 Vulkan 能面向更多的设备。

如需了解详细信息,请参阅 API 文档

相关文章
相关标签/搜索