自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(13)
  • 收藏
  • 关注

原创 Vulkan学习笔记【八】 Uniform Buffers

typetypeisthen现在,我们已经可以传递顶点属性给顶点着色器,但对于一些所有顶点都共享的属性,比如顶点的变换矩阵,将它们作为顶点属性为每个顶点都传递一份显然是非常浪费的。Vulkan 提供了资源描述符()来解决这一问题。描述符是着色器中访问缓冲和图像数据的一种方式。我们可以将变换矩阵存储在一个缓冲中,然后通过描述符在着色器中访问它。描述符布局(descriptor layout)用于指定可以被渲染管线访问的资源类型,就类似渲染流程指定可以被访问的附着类型。

2023-12-24 16:28:01 1112 1

原创 Vulkan学习笔记【七】缓冲

第一个顶点索引位于绑定索引缓冲区内的firstIndex × indexSize + offset的偏移量,其中offset是vkCmdBindIndexBuffer指定的偏移量,indexSize是indexType指定的类型的字节大小。我们只使用一次指令缓冲,并等待从函数返回,直到复制操作完成执行,使用VK_COMMAND_BUFFER_USAGE_ONE_TIME_SUBMIT_BIT告诉驱动程序我们的意图。然后,我们将使用缓冲区复制命令将数据从暂存缓冲区移动到实际的顶点缓冲区。

2023-10-05 12:46:20 356

原创 Vulkan学习笔记【六】 多帧并行渲染和窗口缩放

从理论上讲,在应用程序的生命周期内,交换链图像格式可能会发生变化,例如,当将窗口从标准范围移动到高动态范围监视器时。在chooseSwapExtent中,我们已经查询了新的窗口分辨率,以确保交换链图像具有(新的)正确的大小,因此不需要修改chooseSwapExtent(请记住,在创建交换链时,我们已经必须使用glfwGetFramebufferSize以像素为单位获得表面的分辨率)。如果交换链不是最优的,您也可以决定这样做,但在这种情况下,我选择继续进行,因为我们已经获得了一个映像。

2023-09-30 19:36:37 496

原创 Vulkan学习笔记【五】 渲染

之前我们已经介绍了一些有关帧缓冲的内容,并且配置了渲染流程信息。接下来,我们对帧缓冲进行配置。我们在创建渲染流程对象时指定使用的附着需要绑定在帧缓冲对象上使用。帧缓冲对象引用了用于表示附着的 VkImageView 对象。对于我们的程序,我们只使用了一个颜色附着。但这并不意味着我们只需要使用一张图像,每个附着对应的图像个数依赖于交换链用于呈现操作的图像个数。我们需要为交换链中的每个图像创建对应的帧缓冲, 在渲染时,渲染到对应的帧缓冲上。

2023-09-17 23:35:05 728 1

原创 Vulkan学习笔记【四】 配置渲染管线

图形管道是将网格的顶点和纹理一直到渲染目标中的像素的操作序列。下面是一个简单的概述:input assembler 获取顶点数据,顶点数据的来源可以是应用程序提交的原始顶点数据,或是根据索引缓冲提取的顶点数据。vertex shader 对每个顶点进行模型空间到屏幕空间的变换,然后将顶点数据传递给图形管线的下一阶段。tessellation shaders 根据一定的规则对几何图形进行细分,从而提高网格质量。通常被用来使类似墙面这类不光滑 表面看起来更自然。

2023-09-10 22:36:18 704 1

原创 Vulkan学习笔记【三】 渲染表面配置

由于Vulkan是一个平台无关的API,因此它不能自己直接与窗口系统接口。为了在Vulkan和窗口系统之间建立连接并将结果显示到屏幕上,我们需要使用WSI(窗口系统集成)扩展。在本章中,我们将讨论第一个,即VK_KHR_surface。它是一个VkSurfaceKHR对象,该对象表示要呈现渲染图像的抽象表面类型。我们程序中的surface将由我们已经用GLFW打开的窗口支持。

2023-08-27 23:16:47 732 1

原创 Vulkan学习笔记【二】 设备选择

当使用Vulkan创建图形应用程序时,需要创建一个VkDevice对象,该对象是与物理图形设备之间的接口。在创建VkDevice之前,需要创建一些队列(VkQueue),这些队列是用来将图形命令发送到GPU的。每个VkQueueFamily代表一组具有相似性质的队列,例如渲染队列、计算队列等。在创建VkDevice时,需要选择一个或多个VkQueueFamily作为设备队列。通过选择适当的VkQueueFamily,可以将不同类型的图形命令提交到GPU中。

2023-08-20 00:38:01 326 1

原创 Vulkan学习笔记【一】 创建窗口与实例

Vulkan 是作为一个跨平台的图形 API 设计的。以往许多图形 API 采用固定功能渲染管线设计,应用程序按照一 定格式提交顶点数据,配置光照和着色选项。随着显卡架构逐渐成熟,提供了越来越多的可编程功能,这些功能被集成到原有的 API 中。造成驱动程序要做的工 作越来越复杂,应用程序开发者要处理的兼容性问题也越来越多。随着移动浪潮到来,人们对移动 GPU 的要求也 越来越高,但以往的图形 API 不能够进行更加精准地控制来提升效率,对多线程的支持也非常不足,导致没有发挥 出图形硬件真正的潜力。

2023-08-13 14:34:06 668 1

原创 剑指 Offer 09. 用两个栈实现队列

剑指 Offer 09. 用两个栈实现队列题目描述:用两个栈实现一个队列。队列的声明如下,请实现它的两个函数 appendTail 和 deleteHead ,分别完成在队列尾部插入整数和在队列头部删除整数的功能。(若队列中没有元素,deleteHead 操作返回 -1 )我的解法也是最笨的解法:考虑要使用两个栈实现一个队列,栈的特点是先进后出,队列的特点是先进先出,添加队尾比较简单,直接添加到栈中就行了,最麻烦的就是怎么获取队首元素,因为往栈中添加元素的时候,前面的元素在栈底,获取队首元素时要将上

2021-11-19 19:50:07 87

原创 剑指 Offer 05. 替换空格

剑指 Offer 05. 替换空格题目描述: 请实现一个函数,把字符串 s 中的每个空格替换成"%20"。示例:输入:s = "We are happy."输出:"We%20are%20happy.我的第一反应下的解答思路:既然要将字符串中的空格替换掉,首先就是要找到字符串中所有空格的索引,先将这些索引值存储起来,然后按照索引的位置将字符串分隔成若干个子串,然后用"%20"将这些子串拼接起来。实现:#include<iostream>#include<string&gt

2021-11-19 13:53:30 71

原创 剑指 offer 06. 从尾到头打印链表

剑指 offer 06. 从尾到头打印链表问题: 输入一个链表的头节点,从尾到头反过来返回每个节点的值(用数组返回)。辅助栈法题目中最明显的字眼就是是从尾到头,所以我一开始就想到用栈来存储链表中的值。首先遍历链表中的每一个节点。最开始head是链表的头指针,每一次遍历将head更新为head->next,并将head->value也就是这个节点的值存到预设的栈中;整个遍历过程的终止条件为head == NULL。遍历完后栈中,因为栈的特点是先入后出,所以从栈顶到栈尾存到值的顺序就是链表中

2021-11-18 22:37:44 626

原创 一起学习OpenGL[第二章我们的第一个OpenGL程序]

一起学习OpenGL[第二章我们的第一个OpenGL程序]第一章 OpenGL简介文章目录一起学习OpenGL[第二章我们的第一个OpenGL程序]前言一、创建OpenGL窗口1.视口2.随着运行时间改变窗口颜色二、使用着色器三、绘制三角形前言本章主要编程实现一个最基础的OpenGL程序,目前大家可能对于OpenGL几乎不怎么了解,最开始学习的时候大家都是这样,因此以编程实现作为一种方法慢慢的学习OpenGL是一种非常不错的方法,然后再回过头来看就会加深对OpenGL的理解,因此目前大家不要担

2021-10-03 21:17:00 578

原创 一起学OpenGL[第一章OpenGL简介]

一起学OpenGL[第一章OpenGL简介][简介] 介绍OpenGL的基本概念以及相关配置环境文章目录一起学OpenGL[第一章OpenGL简介]前言一、OpenGL是什么?二、图形管线和渲染模式1.图形管线2.渲染模式3.基元、管线和像素三、环境配置前言OpenGL是一种接口,应用程序通过它来访问和控制其所在运行设备的图形子系统。一、OpenGL是什么?OpenGL是一种接口,应用程序通过它来访问和控制其所在运行设备的图形子系统。OpenGL接受程序发出的指令,然后发送给底层图形硬件,

2021-10-02 21:09:15 354

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除