001. Windows环境Vulkan学习笔记 起始篇

Posted xingang1005

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了001. Windows环境Vulkan学习笔记 起始篇相关的知识,希望对你有一定的参考价值。

 背景:由于公司需要用c++对现有项目进行重构,本人从事近6年的C#开发现需要快速转C++,但是看书学习内容太多记不住,所以打算从Vulkan入手写一些东西。

 

   为什么选择Vulkan而不是OpenGL或者别的?    1、因为个人感觉Vulkan会在未来几年取代OpenGL,会对自己以后的发展有好处  2、因为本身就是学习c++没必要纠结这个东西是否是当下热门的。

 

  准备做写什么:1、实现一些简单的模型载入纹理贴图,光照反射等  2、简单引擎,骨骼动画等。

   

    进度正题:

      一、搭环境

     需要的素材,VulkanSDK,GLFW,GLM

       1.下载安装VulkanSDK,下载windows版本

       2.下载GLFW下载win32位   将态库glfw3.lib、glfw3dll.lib、动态库glfw3.dll 分别放到VulkanSDK安装目录下的Third-Party的对应目录里。

        技术分享图片技术分享图片

        3. VulkanSDK中目前已经包含GLM在Third-Part | Include 目录中。如需最新版本可以下载GML

         SDK目录下的这几个模版文件拷贝到VS2017模版目录,如下图,不然创建时不会出现模版

      技术分享图片

      技术分享图片

 

    

从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(800, 600, "Vulkan window", nullptr, nullptr);

    uint32_t extensionCount = 0;
    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 0;
}
技术分享图片

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

技术分享图片

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

技术分享图片

 

 

 

         

      

以上是关于001. Windows环境Vulkan学习笔记 起始篇的主要内容,如果未能解决你的问题,请参考以下文章

Vulkan Tutorial 01 开发环境搭建之Windows

Spring4.0学习笔记001——搭建Spring开发环境

(图形学笔记 - Vulkan) 1.1.3 - Validation layers(建立vulkan的验证层)

(图形学笔记 - Vulkan) 1.1.3 - Validation layers(建立vulkan的验证层)

(图形学笔记 - Vulkan) 1.1.3 - Validation layers(建立vulkan的验证层)

Python 2.7.8 学习笔记(001)python manuals/the python tutorial -- 2. Using the Python Interpreter