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


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 vs OpenGL ES的更多相关文章

  1. 短视频图像处理 OpenGL ES 实践

    2017年,短视频正以其丰富的内容表现力和时间碎片化的特点,快速崛起,而短视频最具可玩性之处就在支持人脸识别的动态贴图和各种不同效果的美颜.滤镜等.那短视频动态贴纸.滤镜.美颜等功能究竟是如何实现的呢 ...

  2. 还在使用OpenGL ES做渲染,你Out了,赶紧来拥抱Vulkan吧~

    背景介绍 Vulkan是Khronos组织制定的"下一代"开放的图形显示API.是与DirectX12能够匹敌的GPU API标准. Vulkan是基于AMD的Mantle API ...

  3. 海思3559A QT 5.12移植(带webengine 和 opengl es)

    海思SDK版本:Hi3559AV100_SDK_V2.0.1.0 编译器版本:aarch64-himix100-linux-gcc 6.3.0(这个版本有点小问题,使用前需要先清除本地化设置) $ e ...

  4. OpenGL ES: (1) OpenGL ES的由来 (转)

    1. 电脑是做什么用的? 电脑又被称为计算机,那么最重要的工作就是计算.看过三体的同学都知道, 电脑中有无数纳米级别的计算单元,通过 0 和 1 的转换,完成加减乘除的操作. 2. 是什么使电脑工作? ...

  5. OpenGL ES 学习笔记 - Overview - 小旋的博客

    移动端图形标准中,目前 OpenGL ES 仍然是比较通用的标准(Vulkan 则是新一代),这里新开一个系列用于记录学习 OpenGL ES 的历程,以便查阅理解. OverView OpenGL ...

  6. 【AR实验室】OpenGL ES绘制相机(OpenGL ES 1.0版本)

    0x00 - 前言 之前做一些移动端的AR应用以及目前看到的一些AR应用,基本上都是这样一个套路:手机背景显示现实场景,然后在该背景上进行图形学绘制.至于图形学绘制时,相机外参的解算使用的是V-SLA ...

  7. OpenGL ES 3.0: 图元重启(Primitive restart)

    [TOC] 背景概述 在OpenGL绘制图形时,可能需要绘制多个并不相连的图形.这样的情况下这几个图形没法被当做一个图形来处理.也就需要多次调用 DrawArrays 或 DrawElements. ...

  8. opengl es中不同的绘制方式

    opengl es中不同的绘制方式 转载请保留出处:http://xiaxveliang.blog.163.com/blog/static/297080342013467344263/ 1. GL_P ...

  9. OpenGL ES无法获取贴图数据原因

    最近在做一个项目,要从贴图中获取图像数据,查了很多资料,也琢磨很久,获取到的数据都是0.终于在一次偶然的机会,发现了端倪,成功了. 不得不说这"一分灵感"真的很重要 以下是在获取贴 ...

随机推荐

  1. 【CentOS 7】scp示例

    1,从远端拷贝到本地 /tmp路径 root@raspberrypi:/download/api_weather# scp root@123.207.xxx.xxx:/xxx/* /tmp 2,从本地 ...

  2. 基于tensorflow实现mnist手写识别 (多层神经网络)

    标题党其实也不多,一个输入层,三个隐藏层,一个输出层 老样子先上代码 导入mnist的路径很长,现在还记不住 import tensorflow as tf import tensorflow.exa ...

  3. ubuntu下修改nginx的进程数

    1. 进入nginx配置文件:vim /etc/nginx/nginx.conf2. 将events下的worker_processes 修改为 你希望的数字,保存文件并退出3. 重启nginx: s ...

  4. SharpDevelop 笔记

    1. 下载地址: http://jaist.dl.sourceforge.net/project/sharpdevelop/ 2. 使用 VS2012 去掉编译不通过的 Test ,其它可以运行调试. ...

  5. python实现将json数据以json格式写入txt文件

    json.dumps中indent参数是设置json缩进量的 举例: tmp = { "aaa" : "111", "bbb" : '222 ...

  6. python下graphviz安装

    参考链接:https://blog.csdn.net/u013250416/article/details/72790754 1.安装Graphviz 在graphviz的官网(网址:http://w ...

  7. 【转】Verilog HDL常用建模方式——《Verilog与数字ASIC设计基础》读书笔记(四)

    Verilog HDL常用建模方式——<Verilog与数字ASIC设计基础>读书笔记(四) Verilog HDL的基本功能之一是描述可综合的硬件逻辑电路.所谓综合(Synthesis) ...

  8. Maven解读:项目依赖管理如何优化

    Github地址:https://github.com/zwjlpeng/Maven_Detail Maven最大的好处莫过于其强大的依赖管理系统,在Pom配置文件中指定项目需要的Jar包的坐标,Ma ...

  9. 在虚拟机中安装Ubuntu详细过程

    参考:http://blog.csdn.net/u013142781/article/details/50529030

  10. vue开发完成后打包后图片路径不对

    用vue做了一个小的移动端项目,从头到尾做下来,感觉自己好多东西都没弄清楚过.也学到了很多,已整理笔记在自己电脑上,但是比较零散,空了再来仔细整理整理. 于是,上周五模拟好数据(接口还未写),准备打包 ...