vulkan第一天

 

2019-11-05

从今天起每天坚持学习图形学api

要学习的第一种为vulkan

通过网站http://geek-docs.com/vulkan/vulkan-tutorial/vulkan-tutorial-index.html并结合vulkan应用开发指南

本文主要写自己在学习的过程中的所见、所学、所思。

Vulkan是一个用于图形和计算设备的编程接口Vulkan是一个跨平台的2D和3D绘图应用程序接口(API),最早由科纳斯组织在2015年游戏开发者大会(GDC)上发表。科纳斯最先把VulkanAPI称为“次世代OpenGL行动”(next generation OpenGL initiative)或“glNext”,但在正式宣布Vulkan之后这些名字就没有再使用了。就像OpenGL,Vulkan针对实时3D程序(如电子游戏)设计,Vulkan并计划提供高性能和低CPU管理负担(overhead),这也是Direct3D12和 AMD 的 Mantle 的目标。Vulkan兼容 Mantle 的一个分支,并使用了 Mantle 的一些组件。(这一段复制来的)

为什么vulkan的速度快,但是应用难度加大?

因为:

Vulkan设备通常由一个处理器和一定数量的固定功能硬件模块组成,用于加速图形和计算操作。通常,设备中的处理器是高度线程化的,所以在极大程度上Vulkan里的计算模型是基于并行计算的。Vulkan还可以访问运行应用程序的主处理器上的共享或非共享内存。Vulkan也会给开发人员提供这个内存。

Vulkan是个显式的API,也就是说,几乎所有的事情你都需要亲自负责。驱动程序是一个软件,用于接收API调用传递过来的指令和数据,并将它们进行转换,使得硬件可以理解。在老的API(例如OpenGL)里,驱动程序会跟踪大量对象的状态,自动管理内存和同步,以及在程序运行时检查错误。这对开发人员非常友好,但是在应用程序经过调试并且正确运行时,会消耗宝贵的CPU性能。Vulkan解决这个问题的方式是,将状态跟踪、同步和内存管理交给了应用程序开发人员,同时将正确性检查交给各个层进行代理,而要想使用这些层必须手动启用。这些层在正常情况下不会在应用程序里执行。

vulkan做了什么?

答:Vulkan的当前版本定义了传输类别——用于复制数据;计算类别——用于运行着色器进行计算工作;图形类别——包括光栅化、图元装配、混合、深度和模板测试,以及图形程序员所熟悉的其他功能。Vulkan设备对每个分类的支持都是可选的,甚至可以根本不支持图形。因此,将图像显示到适配器设备上的API(这个过程叫作展示)不但是可选择的功能,而且是扩展功能,而不是核心API。

这是vulkan的第一天,明天看vulkan环境的搭建。

 

 

 

发布了7 篇原创文章 · 获赞 2 · 访问量 3595
展开阅读全文

没有更多推荐了,返回首页

©️2019 CSDN 皮肤主题: 大白 设计师: CSDN官方博客

分享到微信朋友圈

×

扫一扫,手机浏览