Vulkan Tutorial 01 开发环境搭建之Windows
操作系统: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 01 开发环境搭建之Windows的更多相关文章
- Scala学习1————scala开发环境搭建(windows 10)
Scala开发环境搭建 先讲几点我学习scala的目的或者原因吧: JVM在企业中的霸主地位,Scala也是JVM上的语言,很有可能未来会从Java过度到Scala也不是不可能. 先进的函数式编程和面 ...
- Android开发环境搭建(windows OS)之补充
这几天搭建了个安卓开发环境,也想玩玩安卓开发.在查询CSDN,CNBLOG,视频网站之后终于把开发环境搭建起来了,发现所有的指导都比较离散,比如有些只说安装方法,有些只说下载方法.本文来个集大成,算是 ...
- Vulkan Tutorial 开发环境搭建之Windows
操作系统:Windows8.1 显卡:Nivida GTX965M 开发工具:Visual Studio 2017 相信很多人在开始学习Vulkan开发的起始阶段都会在开发环境的配置上下一些功夫,那么 ...
- 微信小程序的开发环境搭建(Windows版本)
前言: 小程序是指微信公众平台小程序,小程序可以帮助开发者快速的开发小程序,小程序可以在微信内被便捷地获取和传播:是一种不需要下载安装即可使用的应用小程序,和原有的三种公众号是并行的体系.2017年1 ...
- Android开发环境搭建 for windows (linux类似) 详细可参考“文件”中“Android开发环境搭建.pdf ”
ADT-Bundle for Windows 是由Google Android官方提供的集成式IDE,已经包含了Eclipse,你无需再去下载Eclipse,并且里面已集成了插件,它解决了大部分新手通 ...
- 最新 Cocos2d-x 3.2 开发环境搭建(windows环境下)
本篇是基于Cocos2d-x-3.2和vs2012的环境下配置. 1.先从官方站点(www.cocos2d-x.org)下载 Cocos2d-x-3.2文件. 2.因为Cocos2d-x 3.0以上的 ...
- 最新Cocos2d-x3.2开发环境搭建(windows环境下)
原文地址:http://cache.baiducontent.com/c?m=9d78d513d9921cfe05ac837f7d16c067690297634d9dc7150ed58449e3735 ...
- Node.js【2】开发环境搭建(Windows、Linux&Mac)
安装方式有非常多种,以下仅仅是我喜欢的一种方式,安装的路径不一定要跟我一样. 眼下最新的版本号是v0.10.28 Windows 1.下载(放到E:\node\nodejs): http://node ...
- Mono开发环境搭建(Windows)
一.下载 1.登录http://www.mono-project.com/下载 2.开发工具Xamarin Studio(好像是免费) http://www.monodevelop.com/downl ...
随机推荐
- PostgreSQL 日常SQL记录
平时用的比较多的SQL语句,有时候会忘掉一点点,在这里记录一下: 1.创建表的同时,插入数据: create table test as select generate_series(1, 10000 ...
- Linux SVN 切换用户
1. 临时切换 在所有命令前强制加上--username 和 --password 例如:svn up --username zhangsan --password 123456 2. 永久切 ...
- iOS开发之Documentation.build/Script-BC552B3A15.sh:
/Users/hbbhao/Library/Developer/Xcode/DerivedData/AWLive-dmbegyhgamayzudqqdentwngdpkr/Build/Intermed ...
- 旧书重温:0day2【5】shellcode变形记
紧接上一篇,结合第一篇 //这篇文章主要成功溢出一个带有缓冲区溢出的小程序,其中我们的shellcode被strcpy截断了所以我们需要变形shellcode,这个实验中也出现了很多意想不到的拦路虎, ...
- Django 之Ajax
必备知识:json 什么是json 定义 JSON(JavaScript Object Notation, JS 对象标记) 是一种轻量级的数据交换格式. 它基于 ECMAScript (w3c制定的 ...
- 前端之JavaScript 02
一.函数 // 最基础的函数定义 function f1() { console.log('hello world!'); } f1(); // hello world! // 带参数的函数 func ...
- sublime上配置markdown
等等等等 简书一个不错的教程:Sublime Text3的Markdown配置 补充说明:第一步可以直接找 Tools-->install package control. ^.^ ...
- Supervisor进程监控
安装 yum install -y python-setuptools easy_install supervisor echo_supervisord_conf > /etc/supervis ...
- Redis常见面试题总结
Redis面试题总结(1) 2018年02月28日 17:42:21 LSX丨笔头先生 阅读数:3568更多 个人分类: 面试题总结 (1)什么是redis? Redis 是一个基于内存的高性能k ...
- SQLite3的运用
1.导入库文件:libsqlite3. 2..m文件的代码: // // ViewController.m // SQLite3的运用 // // Created by PengYunjing on ...