操作系统:Windows8.1

显卡:Nivida GTX965M

开发工具:Visual Studio 2017


相信很多人在开始学习Vulkan开发的起始阶段都会在开发环境的配置上下一些功夫,那么本问将会引导大家快速的完成Vulkan在Windows下的开发环境,并使用几个常用的开发工具库。

Vulkan SDK


开发Vulkan应用程序所需的最重要的组件就是SDK。它包括核心头文件、标准的Validation layers及调试工具集、和驱动Loader,如果现在这些关键词不是很明白的话,不要紧,我会在后续的教程上向大家说明。

首先下载SDK,登录LunarG网站 the LunarG website ,选择Windows平台下的最新SDK下载安装,特别留意的是这个SDK包括了很多的内容,诸如Samples、Documents,这些资料非常有助于学习。

继续安装并注意SDK安装的位置,安装完成后我们首先验证您的PC 显卡驱动程序是否支持Vulkan,进入安装SDK的目录,打开Bin32目录运行cube.exe演示程序,您将会看到以下内容。

如果您收到了异常信息,请确保您的显卡驱动程序是最新的,且硬件驱动支持Vulkan运行时,具体细节可以到各显卡厂商官网确认。

此目录中还有另外两个程序对开发有价值,vkjson_info.exe程序生成一个JSON文件,并在使用Vulkan根据具体的硬件参数有选择性的开启功能。

当然这里也有一个地址,可以查看显卡对VulkanSDK api版本的不同支持情况。http://vulkan.gpuinfo.org/

glslangValidator.exe程序将用于将着色器从可读的GLSL编译为字节码。我们将在着色器模块一章中深入介绍这一点。 Bin32目录还包含Vulkan加载程序和验证层的二进制文件,而Lib32目录包含库。 Doc目录包含有关Vulkan SDK的有用信息以及整个Vulkan规范的脱机版本。最后,包含Vulkan头文件的Include目录。

GLFW


Vulkan不包含用于创建窗口来渲染内容的工具,出于跨平台的考虑,Sample中使用了SDL来作为窗口系统的实现方案,本教程将使用GLFW库创建一个支持Windows的窗口,他的优势在于将Vulkan中的其他一些平台订制的内容抽象出来。

可以在GLFW官方下载最新的版本 ,在本教程中我们将使用32位库

下载后将头文件目录GLFW,静态库glfw3.lib、glfw3dll.lib、动态库glfw3.dll 分别放到VulkanSDK安装目录下的Third-Party的对应目录里。

GLM


Vulkan不包括用于数学计算的实用工具库,因此我们引入GLM库 ,该库专为图形API为设计,并且大量应用与OpenGL程序。

注,VulkanSDK中目前已经包含GLM在Third-Part | Include 目录中。

GLM仅包含一个头文件,所以只需要下载最新版本,同上文GLFW一样放置到VulkanSDK | Third-Part |Include 目录下即可。

Setting up Visual Studio


从Vulkan模版中新建测试程序,注意在新项目创建完成后,Vulkan VS模版会自动创建一个基于SDL窗口的程序,在此可删除掉 或替换为下文的测试代码。

如图所示。

新建测试C++文件,并添加如下测试代码。

#define GLFW_INCLUDE_VULKAN
#include <GLFW/glfw3.h> #define GLM_FORCE_RADIANS
#define GLM_FORCE_DEPTH_ZERO_TO_ONE
#include <glm/vec4.hpp>
#include <glm/mat4x4.hpp> #include <iostream> int main() {
glfwInit(); glfwWindowHint(GLFW_CLIENT_API, GLFW_NO_API);
GLFWwindow* window = glfwCreateWindow(, , "Vulkan window", nullptr, nullptr); uint32_t extensionCount = ;
vkEnumerateInstanceExtensionProperties(nullptr, &extensionCount, nullptr); std::cout << extensionCount << " extensions supported" << std::endl; glm::mat4 matrix;
glm::vec4 vec;
auto test = matrix * vec; while (!glfwWindowShouldClose(window)) {
glfwPollEvents();
} glfwDestroyWindow(window); glfwTerminate(); return ;
}

会遇到编译错误GLFW,现在添加具体的库引用如图。

再次运行程序,恭喜你可以看到第一个Vulkan程序运行起来了。

工程代码请在 Githubcheckout。

Vulkan Tutorial 开发环境搭建之Windows的更多相关文章

  1. Scala学习1————scala开发环境搭建(windows 10)

    Scala开发环境搭建 先讲几点我学习scala的目的或者原因吧: JVM在企业中的霸主地位,Scala也是JVM上的语言,很有可能未来会从Java过度到Scala也不是不可能. 先进的函数式编程和面 ...

  2. Android开发环境搭建(windows OS)之补充

    这几天搭建了个安卓开发环境,也想玩玩安卓开发.在查询CSDN,CNBLOG,视频网站之后终于把开发环境搭建起来了,发现所有的指导都比较离散,比如有些只说安装方法,有些只说下载方法.本文来个集大成,算是 ...

  3. Vulkan Tutorial 01 开发环境搭建之Windows

    操作系统:Windows8.1 显卡:Nivida GTX965M 开发工具:Visual Studio 2017 相信很多人在开始学习Vulkan开发的起始阶段都会在开发环境的配置上下一些功夫,那么 ...

  4. 微信小程序的开发环境搭建(Windows版本)

    前言: 小程序是指微信公众平台小程序,小程序可以帮助开发者快速的开发小程序,小程序可以在微信内被便捷地获取和传播:是一种不需要下载安装即可使用的应用小程序,和原有的三种公众号是并行的体系.2017年1 ...

  5. Android开发环境搭建 for windows (linux类似) 详细可参考“文件”中“Android开发环境搭建.pdf ”

    ADT-Bundle for Windows 是由Google Android官方提供的集成式IDE,已经包含了Eclipse,你无需再去下载Eclipse,并且里面已集成了插件,它解决了大部分新手通 ...

  6. 最新 Cocos2d-x 3.2 开发环境搭建(windows环境下)

    本篇是基于Cocos2d-x-3.2和vs2012的环境下配置. 1.先从官方站点(www.cocos2d-x.org)下载 Cocos2d-x-3.2文件. 2.因为Cocos2d-x 3.0以上的 ...

  7. 最新Cocos2d-x3.2开发环境搭建(windows环境下)

    原文地址:http://cache.baiducontent.com/c?m=9d78d513d9921cfe05ac837f7d16c067690297634d9dc7150ed58449e3735 ...

  8. Node.js【2】开发环境搭建(Windows、Linux&amp;Mac)

    安装方式有非常多种,以下仅仅是我喜欢的一种方式,安装的路径不一定要跟我一样. 眼下最新的版本号是v0.10.28 Windows 1.下载(放到E:\node\nodejs): http://node ...

  9. Mono开发环境搭建(Windows)

    一.下载 1.登录http://www.mono-project.com/下载 2.开发工具Xamarin Studio(好像是免费) http://www.monodevelop.com/downl ...

随机推荐

  1. smokeping安装部署最佳实践

    1.1安装smokeping [root@linux-node2 ~]# cat /etc/redhat-release              #查看服务器信息 CentOS release 6. ...

  2. 老李推荐:第2章3节《MonkeyRunner源码剖析》了解你的测试对象: NotePad窗口Activity之NoteEditor简介

    老李推荐:第2章3节<MonkeyRunner源码剖析>了解你的测试对象: NotePad窗口Activity之NoteEditor简介   我们在增加和编辑一个日记的时候会从NotesL ...

  3. Java ---理解MVC架构

    之间的文章,我们主要是介绍了jsp的相关语法操作,我们可以通过请求某个jsp页面,然后由相对应的servlet实例给我们返回html页面.但是在实际的项目中,我们很少会直接的请求某个页面,一般都是请求 ...

  4. android开发之 包含EditText组件 禁止自动获取焦点弹出输入法

    在EditText标签的外层Layout中加入focusableInTouchMode属性   android:focusableInTouchMode="true" 即可.

  5. C#设计模式:责任链模式

    设计模式是面向对象编程的基础,是用于指导程序设计.在实际项目开发过程中,并不是一味将设计模式进行套用,也不是功能设计时大量引入设计模式.应该根据具体需求和要求应用适合的设计模式.设计模式是一个老话题了 ...

  6. c# 逆波兰式实现计算器

    语文不好,不太会组织语言,希望不要太在意. 如题,先简要介绍一下什么是逆波兰式  通常我们在写数学公式的时候  就是a+b+c这样,这种表达式称为中缀表达式,逆波兰式又称为后缀表达式,例如a+b 后缀 ...

  7. vue-router2 使用

    VUE-ROUTER2  API http://router.vuejs.org/zh-cn/api/router-link.html   1,安装vue-router npm install vue ...

  8. netcore实践:跨平台动态加载native组件

    缘起netcore框架下实现基于zmq的应用. 在.net framework时代,我们进行zmq开发由很多的选择,比较常用的有clrzmq4和NetMQ. 其中clrzmq是基于libzmq的Int ...

  9. 日志框架SLF4J

    1.什么是SLF4J SLF4J:Simple Logging Facade for Java,为java提供的简单日志Facade.Facade门面,更底层一点说就是接口.它允许用户以自己的喜好,在 ...

  10. 第三章 PL/SQL编程

    3.1 PL/SQL基础知识    3.1.1 什么是PL/SQL?        PL/SQL是结合Oracle过程语言和结构化查询语言的一种扩展语言        3.1.1.1 PL/SQL体系 ...