Android N(7.0) Vulkan替代OpenGL,图形学

  Vulkan是一个跨平台的2D和3D绘图应用程序接口(API),最早由科纳斯(Khronos)组织在2015年游戏开发者大会(GDC)上发表。旨在替代OpenGL,提高图形性能。
  基于OpenGL的图形引擎,其渲染过程粗略可分为 主机端资源准备,设备端数据交互与管线准备 及 每帧循环的渲染 三个部分。 Vulkan的最大任务不是竞争DirectX,而是取代OpenGL,所以重点要看和后者的对比。
  Vulkan在很大程度上汲取了AMD Mantle的灵感,但是进行了大幅度的扩展和增强,构成了一个完善的开发体系,功能和性能都十分丰富,拥有最新图形技术、通用目的计算、预编译着色器、多核心多线程高效率、底层驱动过载、横跨桌面/移动/主机/嵌入式、底层GPU硬件控制、精炼API。Vulkan 是完全从零开始设计,以最小化驱动器中的 CPU 开销,并能让您的应用更直接地控制 GPU 操作。Vulkan 还允许多个线程同时执行工作,如命令缓冲区构建,以获得更好的并行化。
  Vulkan支持的操作系统包括:Linux, Windows XP to Windows 10, android等。Vulkan还可以支持主流的GPU,包括:AMD, NVIDIA, Adreno, PowerVR, Mali等桌面GPU和移动GPU。
  Vulkan的shading language环境: Vulkan不再使用GLSL作为shading language的输入,而是使用一个统一的中间代码(SPIR)作为输入。OpenGL/OpenGL ES或者游戏引擎使用的GLSL都会被一个SPIR-V解释器翻译成SPIR表示。未来其它的shading language或者通用计算的语言也会被翻译成SPIR作为Vulkan的输入。这可以使Vulkan驱动专注于shader的后端优化,而不是前端的语法解析,语义分析等。对于GLSL转SPIR,Khronos正在考虑实现一个编译器前端来帮助应用程序转换。

The Khronos Group ,vulkan 开源集- https://github.com/KhronosGroup
关于Vulkan的详细使用参考这个Demo- https://github.com/SaschaWillems/Vulkan
Vulkan标准参考Khronos官网- https://www.khronos.org/registry/vulkan/specs/1.0/refguide/Vulkan-1.0-web.pdf
OpenGL的替代者 Vulkan- https://blog.csdn.net/coloriy/article/details/79908631

  OpenGL还算是对初学者比较友好的API,但到了Vulkan,由于严格把pipeline、descriptor、buffer分开,初学者上手难度变大了,App开发者直接调用图形API的情况将会减少,更多地会依赖于图形引擎。因此,Vulkan标准的渐渐普及会加速开发者的层级分划,使用Vulkan的人将是专业研究图形引擎或作GPGPU算法引擎的人。
  对于有志于研究图形的初学者,可以直接学习Vulkan,不用去学习OpenGL了,Vulkan标准与GPU工作原理更为贴近,学习 Vulkan更有利于掌握图形显示的知识。

猜你喜欢

转载自blog.csdn.net/ShareUs/article/details/89500794