Vulkan vs OpenGL ES
2017-04-17 19:13
363 查看
Vulkan 简介
Vulkan是一个免费开放的、跨平台的、底层的图形API,在一定程度上比AMD Mantle、微软DirectX 12、苹果Metal更值得开发者关注。
Vulkan的最大任务不是竞争DirectX,而是取代OpenGL,所以重点要看和后者的对比。
在高分辨率、高画质、需要GPU发挥的时候,Vulkan、OpenGL的速度基本差不多,但是随着分辨率的降低,CPU越来越重要,Vulkan逐渐体现了出来,尤其是看看GTX 980 Ti,最多可以领先OpenGL 33%之多!
Vulkan 是和 DirectX 12 类似的跨平台底层 API,Vulkan 和 DirectX 12 都是基于 AMD 开源的 Mantle API,事实上两者的早期文档就是将 AMD 的 Mantle 文档修改一下名字。
自1992年问世以来,OpenGL已经成为了PC游戏迄今为止最常用的图形API之一。作为一种多语言、跨平台的应用程序编程接口,它已经被广泛用于GPU的交互和硬件加速。
使用至今,人们当然也发现了它的缺点。因为源代码是90年代的产物,对于目前在市面上大行其道的多核CPU(GPU)利用效率不佳,往往只能提供有限的单线程负载,所以帧率、能耗都难取得突破。
作为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/10、SteamOS、Ubuntu、Red Hat、Tizen等等,但是不支持iOS、OS X——苹果一度参与过Vulkan的开发,但最终单独搞了一套Metal,还是关起门来自己玩。
The Khronos Group --vulkan 开源集
https://github.com/KhronosGroup
Vulkan API
[align=center][/align]
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 文档。
Vulkan是一个免费开放的、跨平台的、底层的图形API,在一定程度上比AMD Mantle、微软DirectX 12、苹果Metal更值得开发者关注。
Vulkan的最大任务不是竞争DirectX,而是取代OpenGL,所以重点要看和后者的对比。
在高分辨率、高画质、需要GPU发挥的时候,Vulkan、OpenGL的速度基本差不多,但是随着分辨率的降低,CPU越来越重要,Vulkan逐渐体现了出来,尤其是看看GTX 980 Ti,最多可以领先OpenGL 33%之多!
Vulkan 是和 DirectX 12 类似的跨平台底层 API,Vulkan 和 DirectX 12 都是基于 AMD 开源的 Mantle API,事实上两者的早期文档就是将 AMD 的 Mantle 文档修改一下名字。
自1992年问世以来,OpenGL已经成为了PC游戏迄今为止最常用的图形API之一。作为一种多语言、跨平台的应用程序编程接口,它已经被广泛用于GPU的交互和硬件加速。
使用至今,人们当然也发现了它的缺点。因为源代码是90年代的产物,对于目前在市面上大行其道的多核CPU(GPU)利用效率不佳,往往只能提供有限的单线程负载,所以帧率、能耗都难取得突破。
作为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/10、SteamOS、Ubuntu、Red Hat、Tizen等等,但是不支持iOS、OS X——苹果一度参与过Vulkan的开发,但最终单独搞了一套Metal,还是关起门来自己玩。
The Khronos Group --vulkan 开源集
https://github.com/KhronosGroup
Vulkan API
[align=center][/align]
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 文档。
相关文章推荐
- OpenGL ES开发中遇到call to OpenGL ES API with no current context (logged once per thread) 问题原因
- OpenGL ES & SDL
- 学习OpenGL-ES: 2 - EGL解析
- OpenGL ES SL 3.0规范中以前的attribute改成了in varying改成了out
- Android Graphics System-2:apk and Skia/OpenGL|ES
- OpenCV2学习笔记(十七):VS2013中运行支持OpenGL的OpenCV工程
- VS2013使用OpenGL
- 针对vs创建空项目加载osg中opengl头文件未定义的错误
- Klimt 特点 与OpenGL和OpenGL|ES 对比及其关系
- openGL在vs中的配置及基本错误
- VS2008里配置OpenGL
- [Android实例] OpenGL ES基础教程(二)
- opengl-es2.0之相机MVP矩阵
- VS 2008 OpenGL 配置
- VS2010下OPENGL的配置使用
- 学习《Android3D游戏开发技术宝典:OpenGL.ES.2.0》一:初识OpenGL ES 2.0应用程序
- VS配置OpenGL环境
- 32 bit hardware buffers are not allowed in OpenGL ES
- How to develop OpenGL ES (GLES) 2.0 applications on Linux
- opengl es