1、简介
Vulkan 是新一代图形和计算 API,用于高效、跨平台访问 GPU。
2、代码示例
2.1 简单测试(glfw+glm)
- glfw配置 GLFW是一个开源的多平台库,用于OpenGL,OpenGL ES和 桌面上的 Vulkan 开发。它提供了一个简单的 API 来创建 窗口、上下文和表面,接收输入和事件。 GLFW是用C语言编写的,支持Windows,macOS,X11和Wayland。 GLFW在zlib / libpng许可证下获得许可。 https://www.glfw.org/
- glm配置 OpenGL Mathematics (GLM) 是基于 OpenGL 着色语言 (GLSL) 规范的图形软件的标头C++数学库。 GLM 提供的类和函数的设计和实现具有与 GLSL 相同的命名约定和功能,因此任何了解 GLSL 的人都可以在 C++ 中使用 GLM。 此项目不仅限于 GLSL 功能。基于 GLSL 扩展约定的扩展系统提供了扩展功能:矩阵变换、四元数、数据包、随机数、噪声等...... https://github.com/g-truc/glm
准备好GLFW和GLM的sdk代码。
- 头文件夹:
D:\Program Files\My3rdPartyGit\glm-0.9.9.8;
D:\Program Files\My3rdPartyGit\glfw-3.3.6\include;
D:\VulkanSDK\1.3.261.1\Include;
- 库文件夹:
D:\Program Files\My3rdPartyGit\glfw-3.3.6\lib\x64\Debug;
D:\VulkanSDK\1.3.261.1\Lib;
- 库文件:
glfw3.lib;
vulkan-1.lib;
新建一个控制台的测试项目如下:
// ConsoleApplication16.cpp : 此文件包含 "main" 函数。程序执行将在此处开始并结束。
//
#include "pch.h"
#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\n";
glm::mat4 matrix;
glm::vec4 vec;
auto test = matrix * vec;
while (!glfwWindowShouldClose(window))
{
glfwPollEvents();
}
glfwDestroyWindow(window);
glfwTerminate();
return 0;
}
编译后运行如下:
结语
如果您觉得该方法或代码有一点点用处,可以给作者点个赞,或打赏杯咖啡;
╮( ̄▽ ̄)╭
如果您感觉方法或代码不咋地//(ㄒoㄒ)//,就在评论处留言,作者继续改进;
o_O???
如果您需要相关功能的代码定制化开发,可以留言私信作者;
(✿◡‿◡)
感谢各位大佬童鞋们的支持!
( ´ ▽´ )ノ ( ´ ▽´)っ!!!