Vulkan::0.0::开始于VulKanSDK(Getting Started with the Vulkan SDK)

前记:本人学生一枚,由于原来用Unity写Shader热爱计算机图形学,专业是软件工程,后来热爱OpenGL,听老师介绍说有个图形接口叫VulKan非常棒,就到VulKan官网上学习,这是我看官方文档后进行的简单翻译和总结,如果在此期间有一些图形学必要的基础知识我会非常负责的将其简单通俗易懂的讲解(前提是我会的,哈哈)。由于本人的所有图形学都是自学所以讲解必定会有疏漏,如果有疏漏请留言告诉我,我也希望我能获得大家的指导。

我是基于Windows平台,VulKan是下一代OpenGL(next OpenGL)。关于什么是OpenGL请阅读:https://blog.csdn.net/AvatarForTest/article/details/79199807

或者百度。


1.下载SDK

请到https://vulkan.lunarg.com/网站下载SDK;

注:

1.SDK就是开发包,说白了就是源码。当你在写程序时,比如c++程序时会有【.h】头文件和【.cpp】源文件。SDK就是将你写的代码进行打包,打包之后也就是我们经常能看到的【.lib】(静态库)和【.dll】(动态库)文件,我们叫库文件,这里面就是已经编译完【.cpp】文件之后的程序代码。问题来了我们为什么需要这些库文件?给我头文件和源文件不就好了吗?这样是可行的,但是一个项目可能有成百上千个头文件和源文件加进来特别费劲,而且如果都加进来后每次运行调试一下就要重新编译,这对于成百上千个文件来说编译是很费时间的,而且有时候代码作者可能不太希望别人看他的源码实现(本人是开源派,哈哈),所以会发布SDK。有了SDK我们只需要指定一下包括头文件的目录和包括库文件的目录就可以直接调用写代码了。

2.对于一个SDK最重要的是三个文件夹:【1.Bin文件夹 2.Include文件夹 3.lib文件夹】,Bin文件夹一般存放着动态库,而且此文件夹目录一般需要放到环境变量的Path下,Include文件夹就是包括头文件的文件夹,lib文件夹一般就是包括静态库。


2.安装

没啥说的装就好,简单。

注:1.默认安装目录:【C:\VulkanSDK\<version number>】

        2.安装之后Bin文件夹会自动加入到环境变量Path中

        3.环境变量中会增加一个叫【VULKAN_SDK】的变量名,值是VulKanSDK的路径。和【VK_SDK_PATH】的变量名,值是VulKanSDK的路径。也就是不需要我们手动配置环境变量了,VulKan都做好了。

        4.如果电脑为32位,VulKan loader(VulKan中的一个概念) 会被安装在【C:\Windows\System32】文件名为【vulkan-1.dll】。64位的电脑会在安装32位的基础上再装一个64位的同名文件,位置在【C:\Windows\SysWOW64】

        5.(这一条不知道对不对)当你安装了多个版本的VulKan,VulKan会以设置在环境变量中的Path第一个匹配的为当前有效版本


3.验证安装

打开【开始】菜单,或者按下【Win】建,找到VulKan快捷文件夹下的【VulKan Cube】,点击打开如果看到一个在旋转的盒子就说明安装成功。或者打开Vulkan安装路径下的【<VulKan Path>\Bin32\vkcube.exe】,效果是一样的。


4.安装SDK包含内容

文件夹描述
Bin64位的Bin(32位电脑没有这个文件夹)
Bin3232位的Bin
Config用来设置Vulkan Layer(层)的开启与关闭等。 (Layer是VulKan的一个概念,是将不同功能分成不同的层,到时候想要使用不同的功能只需要开启对应层就行)(2020/6/8 更新 修正原先叫不准的概念)
DemosVulKan Cube(那个旋转小盒子)程序和VulKan Info(控制台上输出VulKan的一些信息)程序的Visual studio版本项目
Documentation本地文档
glslang用于将GLSL或HLSL语言的Shader转换成SPIR-V。(GLSL和HLSL分别是OpenGL标准的着色语言和Direct3D标准着色语言。SPIR-V是Vulkan标准着色语言,严格上讲SPIR-v是一个二进制文件而不是人类可读文件) (2020/6/8 更新 修正原先错误的概念)
Include头文件夹
LayerFactory使用VulKan Layer Factory来创建layers所使用的源文件和Visual Studio 项目。(目前还不知道是啥)
Lib64位库文件(32位电脑不会有这个文件夹)
Lib3232位库文件
RunTimeInstaller用于安装 Vulkan 运行时
SamplesVulKan C++ 的例子
shadercshaderc的源码,命令行工具用于编译Shaders
Source\layers用于调试的源码
Source\lib64位用于Demos中的项目debug调试的库文件(32位电脑不会有这个文件)
Source\lib3232位用于Demos中的项目debug调试的库文件
Source\loadervulkan-1.dll(loader)的源码
spirv-toolsspirv-tools的源文件和头文件,该工具用于将SPIR-V二进制文件转换成GLSL或HLSL等人类可读形式。(2020/6/8 更新 修正原先叫不准的概念)
Templates用于使用VisualStudio新建VulKan项目模板(省去OpenGL麻烦的配置,棒棒的)
Third-Party第三方库,包含GLM(一个用于计算向量和矩阵运算的头文件,一般是【.hpp】扩展名文件,此文件的意思是声明和实现都写在当前的文件夹了),和SDL(好像是用来些游戏脚本的API)
Tools64位工具(32位电脑没有当前的文件夹)
Tools3232位工

5.运行Demo文件夹中的项目

先空着,其实也简单就是双击【.sln】文件直接编译【解决方案】,如果报【...v120...】啥的Bug的话,就说明你使用的是高版本的              VisulaStudio,百度简单配置一下就好。


6.开启认可和功能(Enable Validation and Utility Layers)

先空着,官方文档给出了一个使用【VulKan Configurator】工具开启一个功能将日志信息写进一个.txt文件中的例子


7.使用VisualStudio新建VulKan项目

在VulKanSDK安装路径下有一个【Templates】的文件夹,点进去选择你的VisualStudio的对应版本,一般会有五个压缩包文件。将这五个压缩包直接复制粘贴到如下路径:(正常安装VisualStudio会有下面的这个路径)

C:\Users\username\Documents\Visual Studio 201x\Templates\ProjectTemplates\Visual C++ Project

然后打开VisualStudio,新建项目就会有如图新增选项:

名称描述
VulKan Program新建一个没有依赖的VulKan项目,但是VulKan loader和一些必要的layers(包含的功能项)还是会包含生成的。这个项目使用C语言的Vulkan调用生成和销毁一个单一的VulKan的实例。
Vulkan Windowed Program新建的VulKan会依赖SDL和GLM,创建包含一个空窗口并初始化VulKan于这个窗口中,之后等待用户关闭此窗口。这个项目使用C语言的VulKan调用
Vulkan C++ Program新建一个没有依赖的VulKan项目,但是VulKan loader和一些必要的layers(包含的功能项)还是会包含生成的。这个项目使用C++语言的Vulkan调用生成和销毁一个单一的VulKan的实例。
Vulkan C++ Windowed Program新建的VulKan会依赖SDL和GLM,创建包含一个空窗口并初始化VulKan于这个窗口中,之后等待用户关闭此窗口。这个项目使用C++语言的VulKan调用
Vulkan Layer使用【VulKan Layer Factory】的framework创建一个VulKan的layer

 

注:1.新建的VulKan项目直接运行可能会直接闪退,打断点后发现是下面这句直接丢出异常,导致不能实例化VulKan。

instance = vk::createInstance(instInfo);

后来发现对于使用此方法创建的项目,引用的是Release版本的库,不是Debug版本的库。两种方法,第一种直接将Debug改成Release。第二种方法是将库改成Debug版本,但是目前没有找到类似xxxd.lib的文件,等以后知道在哪里了,再补上,2333。

2.我在另一台电脑上配置时Debug和Release都可以运行,具体不太清楚,先记上。

3.由于我有两台电脑,配置另外一台电脑时,又发现一个问题,当编译时报错,一堆头文件找不到还有就是WindowsSDK的某某版本找不到,提示【Retarget Projects/Solution】。所以右键解决方案,点击【Retarget solution】选一个windows SDK Version,我的是10.0.17763.0.

4.关于std::cout<<"...xxx..."<<std::endl。VisualStudio不显示黑色的控制窗口,以至于看不到输出结果。

方案::右键工程点击【Properties(属性)】到【Linker】->【System】->【SubSystem】设置成【Console】

  • 3
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值