Skip to content

FuXiii/VulkanTriangle

Repository files navigation

Vulkan Triangle

该项目是使用纯 Vulkan 接口在 WindowsLinuxmacOS 平台下渲染一个三角形的示例程序。只用于学习,禁止用于商业。

说明

不需要配置任何环境,直接使用 CMake 导出工程编译即可。

将会输出 VulkanTriangle.exe 可执行程序。

Note

Linux 需要配置如下依赖库:

sudo apt install libx11-dev       //cmake
sudo apt install libxrandr-dev    //glfw 
sudo apt install libxinerama-dev  //glfw 
sudo apt install libxcursor-dev   //glfw 
sudo apt install libxi-dev        //glfw 
sudo apt install libwayland-dev   //build 
sudo apt install build-essential  //build
sudo apt install freeglut3-dev    //build 

作者

FuXii

开源项目

日志

2026/4/30

增加对 Push Constants 使用,使得三角形大小随时间变化。

更新 triangle.vert 使用 Push Constants 改变三角形大小。

适配 Linux 窗口大小发生变化。

2025/8/14

移除 CMakeLists.txt 中的 target_link_directories 的使用。冗余。

README.md 增加 Linux 环境下的配置说明。

2024/11/25

动态适配 Swapchain 纹素的格式和空间,而不是单独选配某些格式。
TODO: 当所有的 Swapchain 格式都不支持 Color Attachment 时,考虑找到支持拷贝的格式,并使用拷贝显示渲染结果

2024/11/22

增加动态适配 Swapchain 纹素的格式和空间,而不是写死。
Note:需要判断 Surface 打头第一个格式是否支持 COLOR_ATTACHMENT

2024/11/18

尝试适配 Swapchain 大小改变。

优化代码结构

2024/11/15

MacOS 系统成功编译。

2024/11/14

动态判断加载 LayerExtension

适配了一版 苹果 系统,还未进行测试,不知是否可行。

2024/11/13

成功适配 Deepin V23

安装如下

libx11-dev
libxrandr-dev 
libxinerama-dev
libxcursor-dev
libxi-dev
freeglut3-dev

VK_LAYER_KHRONOS_validation 验证层找不到,非必须,目前暂时注释掉,修改意见: 增加 vkEnumerateInstanceLayerProperties(...) 的使用。

vkGetPhysicalDeviceSurfaceCapabilitiesKHR(...) 获取到的 VkSurfaceCapabilitiesKHR::minImageCount 不为 0VkSurfaceCapabilitiesKHR::maxImageCount0

test

增加了如下判断

vk_swapchain_create_info_khr.minImageCount = std::max(vk_surface_capabilities_khrminImageCount, vk_surface_capabilities_khr.maxImageCount);

About

A very simple and complete example of a Vulkan triangle

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors