- 博客(11)
- 资源 (4)
- 收藏
- 关注
原创 Vulkan学习笔记(8):绘制三角形之交换链重建
交换链重建机制 本文详细介绍了Vulkan中交换链重建的必要性和实现方法。当窗口尺寸改变或交换链与表面不兼容时,需要重建交换链及相关对象。核心内容包括: 创建recreateSwapChain函数集中处理交换链、图像视图和帧缓冲区的重建 分离清理逻辑到cleanupSwapChain函数 通过VK_ERROR_OUT_OF_DATE_KHR和VK_SUBOPTIMAL_KHR识别交换链状态变化 修复了栅栏死锁问题,调整栅栏重置时机 添加显式窗口尺寸变化处理机制 该机制确保应用程序能正确处理窗口调整大小等场景
2026-02-10 08:20:41
854
原创 Vulkan学习笔记(7):绘制三角形之绘制
摘要 本文介绍了Vulkan中帧缓冲区和命令缓冲区的创建过程。帧缓冲区通过绑定图像视图作为附件与渲染通道配合使用,需要为交换链中的每个图像创建单独的帧缓冲区。命令缓冲区则用于记录和执行绘图指令,需要先创建命令池来管理内存分配。文章详细说明了创建帧缓冲区数组和命令缓冲区的步骤,包括相关参数配置和资源清理。这些组件是实现Vulkan渲染管线的基础,为后续绘制操作做好准备。
2026-02-09 21:18:58
867
原创 Vulkan学习笔记(6):绘制三角形之图形管线基础
本文介绍了Vulkan图形渲染管线的基本流程,重点讲解了顶点着色器和片段着色器的实现方法。渲染管线包括输入装配、顶点处理、光栅化、片段处理等阶段,其中可编程阶段允许开发者自定义着色器代码。文章通过绘制彩色三角形的示例,详细说明了GLSL着色器语言的编写要点,包括顶点位置处理、颜色输出等核心功能,并解释了SPIR-V字节码格式的优势。最后展示了如何通过修改着色器实现从单色到渐变色的视觉效果提升。
2026-02-09 20:36:41
1058
原创 Vulkan学习笔记(5):绘制三角形之展示
由于Vulkan是与平台无关的API,它无法直接与窗口系统进行交互。为了建立Vulkan与窗口系统之间的连接,从而将渲染结果展示在屏幕上,我们需要使用WSI(窗口系统集成)扩展。在本章中,我们将讨论第一个扩展——。该扩展提供了一个对象,它代表一种抽象的展示表面,用于展示渲染后的图像。在我们的程序中,这个表面将由先前通过GLFW创建的窗口提供支持。是一个实例层扩展,实际上我们已经启用了它,因为它包含在函数返回的列表中。该列表还包含了其他一些我们将在后续章节中使用的WSI扩展。
2026-02-08 09:06:41
928
原创 Vulkan学习笔记(4):绘制三角形之Vulkan初始化
选择了要使用的物理设备后,我们需要设置一个逻辑设备来与之交互。逻辑设备的创建过程与实例创建过程类似,需要描述我们想要使用的功能。既然我们已经查询了可用的队列族,现在还需要指定要创建哪些队列。如果您有不同的需求,甚至可以从同一个物理设备创建多个逻辑设备。首先添加一个新的类成员来存储逻辑设备句柄。接下来,添加一个从initVulkan调用的函数。
2026-02-06 10:33:24
723
原创 Vulkan学习笔记(3):搭建开发环境
本文介绍了配置Vulkan开发环境的完整流程。首先需要安装Vulkan SDK并验证显卡支持,然后通过CMake和vcpkg工具链搭建跨平台开发环境。具体步骤包括:安装Git和CMake工具、建立项目目录、使用vcpkg安装GLFW和GLM库、创建CMake项目文件,最后生成Visual Studio构建系统并运行测试程序。文中提供了详细的配置说明和代码示例,重点展示了如何通过CMake集成Vulkan SDK和第三方库,为后续Vulkan应用程序开发奠定基础。整个配置过程支持Windows、Linux和M
2026-02-05 11:37:27
1020
原创 Vulkan学习笔记(2):Vulkan介绍
Vulkan是为现代图形架构设计的跨平台GPU抽象层,解决了传统API的多线程支持不足、驱动开销大等问题。绘制三角形需要8个核心步骤:从实例创建到主循环渲染,涉及逻辑设备、交换链、图形管线等关键组件。Vulkan API采用结构化设计,函数和类型有统一前缀规范,并支持验证层进行开发调试。该教程将从简入手,后续章节将逐步展开每个步骤的详细实现。
2026-02-04 18:18:23
643
原创 Vulkan学习笔记(1):教程介绍
本教程介绍Vulkan图形API的基础知识,这是Khronos组织推出的新一代跨平台图形接口,相比OpenGL和Direct3D能提供更高性能和更低驱动开销,但需要开发者自行处理更多底层细节。教程面向具备C++17和3D图形基础的开发者,从环境配置到渲染第一个三角形的完整流程逐步讲解,涵盖Vulkan的核心概念和API使用方法。教程提供电子书版本和完整代码示例,采用CC BY-SA 4.0许可协议,鼓励社区贡献。Vulkan适合追求极致性能的图形开发者,而游戏开发者可继续使用更高级的引擎或API。
2026-02-04 17:45:40
854
原创 我为什么从.NET转向Java
我为什么从.NET转向Java自从开始学习计算机以来,所接触的软件基本上都是Microsoft的产品,记得最开始使用的操作系统是MS-DOS 3.1,开发工具是基本DOS的Turbo Pascal、Turbo C、MASM、Borland C++等,进入Windows和.NET平台后,便是清一色的Microsoft工具:Visual Basic和Visual C++,直到现在最新的Visual
2007-04-04 18:27:00
2229
原创 学习OpenGL - 1
我想开发一个2D行业矢量图形编辑程序,从资料上了解到OpenGL比较适合开发类似于CAD的图形软件,就准备用VS 2005 + OpenGL写。以前没有学过Computer Graphics,于是就买了《Interactive Computer Graphics》、《曲线与曲面的数学》、《CAGD曲线与曲面》慢慢啃。看了一个多星期,了解了一些Spline、Bezier、B-Spline、Non-U
2006-12-14 09:11:00
1197
原创 COM学习-1
今天又拿起了讲COM的书,记得开始学习COM是好多年以前的事情了,那时看过《COM技术内幕》和MSDN上的一些文章,脑子里就一个感觉:乱!又没这方面的项目可做,看了一段就放下了。最近感觉还是比较闲,又拿起来,准备重温一下。基本概念以前也基本知道,感觉除了COM的线程模型不太好理解,在看过了《》之后感觉清醒了一些,总算能明白一点了。 但要用COM做东西,感觉要差一些。今天看看了《COM原理与应用
2006-09-22 20:27:00
855
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅