美文网首页vulkan
1.Vulkan 环境配置

1.Vulkan 环境配置

作者: MiAo鲜声 | 来源:发表于2018-11-27 22:39 被阅读0次

    环境:

    VS2017

    Windows 10

    GTX 940M

    首先我们要配置库

        因为我实在是太懒了,不愿意重新配一遍,所以大约讲讲流程吧。环境配   这个vulkan环境配置应该能查到,如果查不到,可以来问我,我不一定会看见。。。

    Lunarg SDK: 

    vulkan的开发者库,实在是爽爆了,里面还带了好多实用的工具,不像OPENGL一样吃屎,出了错干瞪眼,只能一点点找。

    这里是 Lunarg SDK下载网址 ,下完了后安装,他会自动给你的系统添加环境变量,你就不用手动添加环境变量了,安装完成后你还会发现里面自带第三方库 GLM 和 SDL2 ,也就是下面我们要介绍的两个库。

    定位到 vulkan sdk 的安装目录下的  \Bin 文件夹

    运行里面的cube.exe如果运行成功了那么说明 :

    你的vulkan sdk安装成功了

    vulkan 运行库也安装成功了

    你的显卡驱动也支持到位了。

    如果没有运行成功,大多数原因可能是你的显卡驱动需要升级了

    要去核弹厂去升级你的核弹驱动

    如果还不行去找Demos文件夹里的VS工程打开编译一下,如果编译成功了,说明完全没问题,没成功的自行找原因。

    记住:只要链接vulkan-1.lib就好了,跟vulkan-1.lib在一起的各种VK_Layer*.lib不要链接,否则你会在vkCreateInstance函数崩溃,而且找不到原因。


    GLFW:一个创建窗口的库

    这个是个跨平台的窗口库,我们此教程用的是这个库,

    为什么用这个库,因为之前学OPENGL的时候,官方推荐用的这个库,所以比较熟悉一些,不想再学新的了。

    两种安装glfw库的方式:


    第一种是下载源文件,自己cmake一下,把Debug版本的glfw3.lib修改成glfw3d.lib就能放在一起了,Debug选glfw3d.lib,Release版本选择glfw3.lib


    第二种是直接下载二进制文件,他给你直接编译好了,直接拿来用好了。

    glfw所需要的lib

    Perfect ! 是不是很完美呢?


    GLM:一个数学库(Lunarg SDK自带的第三方库)

    里面提供了方便的数学操作,各种矩阵运算,方便。但是我不打算用,我想自己写一个,用自己的安心点,细节底层自己都了解,出了问题好解决。

    SDL2:一个创建窗口的库(Lunarg SDK自带的第三方库)

    和 glfw 一样用来创建窗口的,恩。不过我不打算用


    我们都准备好了我们需要的库,接下来要在VS中配置。

    VS菜单->项目->属性

    打开属性页

    vs属性页

    大家肯定都被VS的项目配置弄迷糊过,在这里给大家讲清楚include ,lib ,dll等等这些东西都该放在那里


    包含目录 :应该填 存放我们要引入的头文件 的 路径 , 这个告诉编译器应该从哪里找头文件,一般把库的include路径添加进去就好

    库目录 :应该填 存放我们要引入的lib文件路径 ,这个告诉编译器应该从哪里找lib

    链接lib

    附加依赖项 : 应该填 要链接的lib ,编译器会从我们之前填的库目录里找附加依赖项,Debug用 glfw3d.lib,Release用glfw3.lib

    正当你开开心心运行自己的代码的时候,突然蹦出来了找不到 dll 给你浇了一头冷水。你以为这样就结束了?No,你还要给编译器指定编译环境的dll目录。

    就在下图里添加

    dll目录配置

    环境 :填 dll 所在的路径

     填的是这个 Path=%Path%;D:\VULKAN\1.1.85.0\Source\li

    其实我也不确定对不对,如果还报dll找不到的错误话,自己去找找解决方法吧。

    我们总结一下vs环境配置:

    一共需要配置四个地方

    头文件

    lib目录

    lib文件

    dll目录

    测试代码:

    可以把里面glm还有sdl的代码去掉,如果不想用的话。

    #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;

    }

    #至于linux驱动下的环境配置,哦吼吼,显卡驱动是一个大难关。还好我用的ubuntu里面自己给安装,之前用了别的方法,没成功。

    [ubuntu安装英伟达显卡驱动-百度经验](https://jingyan.baidu.com/article/d7130635c5a86113fdf47532.html)

    下一节:Instance

    相关文章

      网友评论

        本文标题:1.Vulkan 环境配置

        本文链接:https://www.haomeiwen.com/subject/hmbnqqtx.html