vulkan 示例教程:介绍

2017-01-07 08:39:05来源:CSDN作者:nisigesazi人点击

Vulkan是由Khronos group开发的图形程序接口。在其他的图形API(如Opengl,Direct 3D)中,驱动程序往往要将高层图形程序接口转换成适合硬件的底层。当时的意图是为了减少开发者对图形硬件的更多细节进行管理。

随着之前的图形程序接口不断地改进,这些接口将越来越多的底层硬件提供给了程序员。因此开发人员需要在更接近底层硬件的接口和更方便(hand-holding)和安全的高层函数中进行权衡。和底层硬件接口相比,高层函数需要高的开销,并且性能底下。

Vulkan就是为了避免高层API的高开销而设计,然而代价就是:Vulkan程序员在编写Vulkan应用时,需要注意更多的“细节”。但是这个特点让程序员能够更加高效地管理应用资源和图形显示(GPU)硬件。这是因为程序员对于应用资源的使用模式会更容易掌握,所以不需要像其他API一样强制进行代价很高的假设。

并且,Vulkan也致力于成为比其他图形接口更加优秀的跨平台API,不仅在高端系统平台中,也在低端移动设备中。

关于本教程

目的

本教程的目标是能够让读者完成创建一个Vulkan示例应用的步骤,在这个过程中学习Vulkan的基础知识。本教程和LunarG的官方示例教程中的代码一一对应。在阅读本教程的同时,读者将会被引导至示例程序中的每一个步骤的代码,这些代码组合起来将会创建一个完整的Vulkan示例程序。在教程的最后,读者将会拥有一个完整的Vulkan示例程序,这个程序也可以当做进一步学习Vulkan的起点。

如何使用示例教程

本教程在阅读的同时和代码一一对应进行比较效率会更高。建议读者自己配好环境,以便于能够下载和编译Github的样例代码仓库,参照官方文档进行编译。示例代码可以在API-Samples文件夹中找到。完成示例的编译和运行后,就可以继续阅读教程了。

同时,参考vulkan.h头文件也很有用,这个文件可以在include目录中找到。

Vulkan规范文档也可以进行参考,在学习示例时并不严格要求参考规范文档,但是在学习示例教程时同时参考规范文档会对Vulkan接口的概念理解更深刻。

示例代码编写方式

每一个章节的样例代码主要针对该章节特定的主题,因此只会写出与该主题相关的详细代码。之前章节主题的代码将会被分主题写成一个函数,避免之前主题的代码混入本章节之中,读者能够随时进入到这些函数中回顾之前章节的内容。

示例程序代码中的主题相关部分按照以下格式通过注释进行划分。

init_instance(info, sample_title);init_enumerate_device(info);init_window_size(info, 500, 500);init_connection(info);init_window(info);init_swapchain_extension(info);init_device(info);.../* VULKAN_KEY_START */... 主题相关代码/* VULKAN_KEY_END */...destroy_device(info);destroy_window(info);destroy_instance(info);
在源代码文件中找到类似这样格式的注释,快速定位与主题相关的代码部分。

上一篇文章:vulkan 示例教程:目录



相关文章

    无相关信息

最新文章

123

最新摄影

微信扫一扫

第七城市微信公众平台