小猪佩奇TONY
码龄13年
关注
提问 私信
  • 博客:83,523
    视频:3
    83,526
    总访问量
  • 59
    原创
  • 25,211
    排名
  • 404
    粉丝
  • 0
    铁粉

个人简介:求知若渴,虚心若愚

IP属地以运营商信息为准,境内显示到省(区、市),境外显示到国家(地区)
IP 属地:上海市
  • 加入CSDN时间: 2012-03-22
博客简介:

小猪佩奇的博客

博客描述:
重视基础,重在坚持
查看详细资料
  • 原力等级
    当前等级
    4
    当前总分
    600
    当月
    23
个人成就
  • 获得534次点赞
  • 内容获得12次评论
  • 获得805次收藏
  • 代码片获得431次分享
创作历程
  • 2篇
    2025年
  • 30篇
    2024年
  • 25篇
    2023年
  • 2篇
    2022年
成就勋章
TA的专栏
  • Vulkan 学习
    12篇
  • Linux 内核
    3篇
  • 典型问题分析
    2篇
  • AI基础
    1篇
  • C语言基础
    9篇
  • OpenCL 学习
    2篇
  • OpenGL-ES
    9篇
  • C++ 学习
    6篇
  • 开源项目学习
    7篇
  • 计算机基础知识
    2篇
  • 工具使用
    1篇
  • 数学基础
    1篇
兴趣领域 设置
  • 数据结构与算法
    算法数据结构散列表深度优先
  • 人工智能
    opencv机器学习
创作活动更多

2024 博客之星年度评选报名已开启

博主的专属年度盛宴,一年仅有一次!MAC mini、大疆无人机、华为手表等精美奖品等你来拿!

去参加
  • 最近
  • 文章
  • 代码仓
  • 资源
  • 问答
  • 帖子
  • 视频
  • 课程
  • 关注/订阅/互动
  • 收藏
搜TA的内容
搜索 取消

Vulkan 学习(12)---- Vulkan pipeline 创建

渲染管线可以看作是一条生产流水线,定义了从输入顶点到输出图像的所有步骤,它包括一系列固定和可编程阶段,这些阶段按照顺序执行,以完成渲染任务。顶点输入阶段主要是从应用程序传递的顶端缓存区中读取顶点数据,并传递给后续阶段,顶点数据通常包括顶点位置、法线、颜色和纹理坐标等。如颜色、纹理坐标和法线等。开发者编写顶点着色器程序来定义每个顶点的处理逻辑,该阶段是必须启用的,是管线中唯一一个必不可少的阶段。)配置的结构体,用于将顶点数据组装成图元(如点、线、三角形),这些图元会被后续的管线阶段处理。
原创
发布博客 2025.01.07 ·
658 阅读 ·
29 点赞 ·
0 评论 ·
27 收藏

Linux 内核学习(3) --- 内核中断机制

linux 内核中,中断处理函数也是普通的C函数, 只不过执行函数要按照特性的类型声明,以便于内核能够按照标准方式传递处理程序的信息,读取到的内容从左到右,分别为:1、逻辑中断号,2、中断在各CPU发生的次数,3、中断所属设备类名称,4、硬件中断号,5、中断处理函数。分配不同的中断号,当检测到某个中断号到来之后,自动跳转到该中断对应的地址去执行,不同的中断有不同的入口地址。区别在于:中断服务程序是被内核调用来相应中断的,它运行在中断上下文中,中断上下文也称为原子上下文,不可以被。都是由 SGI 产生。
原创
发布博客 2025.01.01 ·
845 阅读 ·
13 点赞 ·
0 评论 ·
28 收藏

Vulkan 学习(11)---- Vulkan RenderPass 创建

Vulkan渲染通道(RenderPass) 定义了整个渲染管线一次执行的过程,包括了渲染所使用的所有资源和操作的描述(比如指定渲染管线的渲染目标,告诉管线要渲染到哪里RenderPass 本质上是一个渲染流程的完整描述(管理渲染流程),包括如何渲染这些数据的元数据和指令,但是不包括实际的数据(图像),通过与结合来获取实际的图像数据在Vulkan编程,RenderPass是必不可少的,它必须包含一个或者多个子通道(SubPass)每个子通道表示一个渲染阶段,并且都是使用RenderPass。
原创
发布博客 2024.12.22 ·
381 阅读 ·
3 点赞 ·
0 评论 ·
9 收藏

Vulkan 学习(10)---- Vulkan SwapChain 创建

Vulkan交换链(Swapchain)是Vulkan应用程序和窗口系统的一座桥梁,负责将渲染结果呈现给用户换个说法,交换链机制是一种图元绘制结果呈现的机制,它可以将绘制的结果渲染到平台相关的展示窗口/展示层当中交换链包含一组图像(一般作为渲染目标),这些图像被用于在屏幕上显示渲染的帧交换链中的图像个数和驱动层的实现是密切相关的。如果交换链中有两幅图像,那么称为双缓存,如果有三幅图像,称为三缓存。
原创
发布博客 2024.12.22 ·
725 阅读 ·
11 点赞 ·
0 评论 ·
16 收藏

OpenCL 学习(1)---- OpenCL 基本概念

和。
原创
发布博客 2024.09.30 ·
1359 阅读 ·
19 点赞 ·
0 评论 ·
8 收藏

OpenCL 学习(2)---- OpenCL Platform 和 Device

这个函数会得到于 platformID 关联的所有的 OpenCL 设备列表,如果参数 devices 设置为 null,每个平台可能关联到一组计算设备,应用程序通过这些计算设备执行内核程序,使用。来限制(0 < num_entries <= 设备数)设置为 0 和 nullptr 来查询返回值的大小。在得到当前支持platform 的前提下,设置。: 支持定位为核心规范的所有功能的一个子集。会返回设备数,返回的设备数可以用。:支持定位为核心规范的所有功能。会返回当前平台上可用的。
原创
发布博客 2024.09.22 ·
866 阅读 ·
17 点赞 ·
0 评论 ·
9 收藏

Vulkan 学习(9)---- vkSuraceKHR 创建

中用于渲染表面的对象,是一个平台无关的抽象类型,用于封装与窗口系统相关的表面信息,通过这个对象,是一个平台无关的图形API,这意味着它不能直接与特定的窗口系统(应用程序可以与不同操作系统的窗口系统(比如。对象时,不同的窗口系统需要使用不同的。应用程序在窗口系统中创建和管理表面(可以将渲染结果输出到窗口上。),并和图形硬件交换图像(对象是平台无关的,但是创建。的窗口系统)进行交互。引入了窗口系统集成(
原创
发布博客 2024.09.22 ·
424 阅读 ·
10 点赞 ·
0 评论 ·
4 收藏

Vulkan 学习(8)---- vkImageView 创建

,可以灵活控制图像视图中每个颜色分量的来源,这对于图像处理非常有用,比如转换颜色格式,调整颜色通道等。图像视图定义了图像格式和访问方式,允许渲染管线和图像进行交互,无论是作为。用于指定如何从源图像中的颜色分量映射到目标图像视图中的颜色分量。比如图像有深度和/或模板信息,你可以选择只包括颜色方面。用于指定需要包含在图像视图中图像。在交换链中,我们需要为每个图像(允许你选择图像的哪些层面和。)创建一个基本的图像视图(),以便将它们作为颜色附件。),或者包括深度方面 ((图像的特性的层面),
原创
发布博客 2024.09.22 ·
588 阅读 ·
4 点赞 ·
0 评论 ·
10 收藏

Vulkan 学习(7)---- vkImage 创建

表示图像布局,定义了图像在内存中的组织方式,不同的布局对不同的操作有不同的性能特性,最终目的还是为了提高设备对于该图片的操作效率。更加复杂,因为它们是多维的,有独特的布局和格式信息,可以作为过滤,深度或者模板测试等复杂操作的源或者目标*和。值决定了图像数据在内存中的排列方式,进而影响访问图像数据的效率和方式。可以保证图像在各个方面之间的有效转换,优化性能并避免数据冲突。表示图片资源的宽、高和深度(各维度上的)大小,的重要格式,它用于指定图像数据在内存中的存储布局。用于存储图像数据,支持。
原创
发布博客 2024.08.25 ·
508 阅读 ·
5 点赞 ·
0 评论 ·
10 收藏

Vulkan 学习(6)---- vkBuffer 创建

表示的是一个线性内存块,这说明它的内存布局是连续的,类似于数组,这种布局适合存储顺序访问的数据,比如 顶点数据和索引数据,也支持随机访问。也就是说,创建的资源只是占用了一个位置,创建了一个句柄,并没有对应存储资源数据的内存,后续要通过。获取缓冲区的内存需求,包括内存大小,对齐要求以及适合的内存类型,注意此API 是查询已经创建的。在设备内存绑定到资源上之前,需要确定使用什么类型的内存,以及资源需要多少内存。对象来表示,是一种用于存储通用数据的资源,可以用来存储顶点数据,索引数据,其中需要重点关注的是。
原创
发布博客 2024.08.25 ·
473 阅读 ·
3 点赞 ·
0 评论 ·
5 收藏

Vulkan 学习(5)---- Vulkan 内存分配

表示该内存类型上分配的内存为缓存类型,Host 端访问缓存的内存类型会比较快,但是非缓存内存总是同步内存(VK_MEMORY_PROPERTY_HOST_COHERENT_BIT ),它对物理设备是直接可见的,物理设备可以直接读取其中的内存区块,设备内存和物理设备之间的关系十分紧密,因此它的性能比宿主机内存更高。将内存管理的工作交给了开发者自己负责,如何分配内存,如何指定内存策略都是由开发者自己决定的,当然处理问题也是由开发者自己负责的。: 表示内存堆是设备本地的,这种内存通常是最快的,因为它和。
原创
发布博客 2024.08.25 ·
1130 阅读 ·
10 点赞 ·
0 评论 ·
24 收藏

Vulkan 学习(4)---- Vulkan 逻辑设备

创建逻辑设备时,需要指定你希望使用的队列族和队列、启用的扩展、以及一些其他特性,我们通过。但是逻辑设备创建的时候,可以只关联。在某些设备中,优先级越高意味着将会得到更多的执行机会,具体的队列调由设备自身管理,(物理设备)的访问,使得应用程序能够提交命令并管理资源,而无需与物理硬件打交道。配置的优先级的有效等级范围为[0,1] ,值越大,优先级越高。必须 是目标物理设备中有效的设备队列族索引,并且。前文创建实例的时候可以设置实例的扩展,在。索引对应的设备队列族中的队列数量。的拓展并不一致,获取。
原创
发布博客 2024.08.18 ·
1049 阅读 ·
11 点赞 ·
0 评论 ·
20 收藏

OpenGL-ES 学习(8) ---- FBO

通过绘制到窗口系统提供的帧缓冲区,然后将帧缓冲区对应的区域复制到纹理来实现渲染到纹理,但是此方法只有在纹理尺寸小于或等于帧缓冲区尺寸才有效。本身不能用于渲染,只有添加了纹理或者纹理缓冲区之后才可以作为渲染目标,而且它仅且提供了三类附着,分别是。来实现渲染到纹理,但是与上下文和窗口系统提供的可绘制表面切换开销也很大,因此,引入了帧缓冲区对象。指的是帧缓冲对象,实际上是一个可以添加缓冲区容器,可以为其添加纹理或者渲染缓冲区对象(这里需要说明的是,在不可以共享的资源中,,可以用作FBO中的颜色、深度和模板附着。
原创
发布博客 2024.08.18 ·
1297 阅读 ·
11 点赞 ·
0 评论 ·
8 收藏

Vulkan 学习(3)---- Vulkan 物理设备和队列组

,每个队列组这种包含一个或者多个队列,这些队列用于处理不同的任务,比如图形渲染,计算任务和传输操作。的物理硬件,通常是系统的一部分-- 显卡、加速器、数字信号处理器或者其他的组件。U执行的关键机制,理解队列组和设备队列的工作原理,有助于更好好的使用。系统里有固定数量的物理设备,每个物理设备都有自己的一组固定的功能。中指定的数量小于系统中的物理设备数量,则。如果所有物理设备成功写入,则会返回。下面函数用于枚举出物理设备所有的。中写入的物理设备不是所有,中,设备队列是一个重要概念,Vulkan 物理设备 (
原创
发布博客 2024.08.11 ·
900 阅读 ·
17 点赞 ·
0 评论 ·
16 收藏

Vulkan 学习(2)---- Vulkan Instance

的功能扩展,它们允许硬件制造商、平台开发者和第三方提供额外的功能和特性,这些功能和特性不包含在核心。参数是最为重要的核心参数 ,当创建实例时,该参数用于指定此实例环境中 Vulkan 的核心版本号。Layer 主要的特点是模块化,可以根据需要加载和卸载,开发者可以选择在应用程序初始化时启用哪些层。库实例涉及向驱动程序提供应用程序的一些细节,比如应用程序的信息和引擎信息等。这几个值随便设置,甚至可以不设置,空值都可以,这些参数不影响实例的创建。Vulkan 的 Layer 层是一种重要的机制,允许开发者在。
原创
发布博客 2024.08.11 ·
949 阅读 ·
30 点赞 ·
0 评论 ·
28 收藏

C 语言学习(5) ---- 汇编语法基础

其低16位形成了一个原始的 8086 寄存器 AX,读者可以通过寄存器名称 AL 访问 AX 的低字节,通过 AH 访问 AX 的高字节。是一个32位的寄存器,用于处理 32 位的数据,而 AX 是一个 16 位的寄存器,用于处理 16 位的数据。基于原始的 8086 指令集,寄存器是16位宽,而32bit 的。为了保证向后兼容性,新指令集中使用的寄存器是旧的寄存器的超集。正如前面所提到的,不同的汇编器对汇编程序有不同的语法,表示。在汇编中指定寄存器的操作数,需要是以寄存器的名称,比如。
原创
发布博客 2024.08.04 ·
1292 阅读 ·
20 点赞 ·
0 评论 ·
19 收藏

C++ 学习(2) ---- std::cout 格式化输出

C++ 通常使用cout输出数据,和printf()函数相比,cout实现格式化输出数据的方式更加多样化;一方面,cout 作为ostream类的对象,该类中提供有一些成员方法,可实现对输出数据的格式化;另一方面,为了方面用户格式化输出数据,C++ 标准库专门提供了一个 <iomanip> 头文件,该头文件中包含有大量的格式控制符,也就是流操作算子,使用上更加方便;
原创
发布博客 2024.08.04 ·
3056 阅读 ·
19 点赞 ·
0 评论 ·
30 收藏

OpenGL-ES 学习(7) ---- VBO EBO 和 VAO

但是如果每次都要绘制相同的图元,就可以把 顶点的值缓存到GPU内存中,不必每次都执行设定加拷贝的过程,这里就可以使用。的编程中,用于绘制图元的顶点数据是从 CPU 传递到显存中的,具体的方式通过。不仅顶点的坐标可以缓存到GPU显存中,不同的顶点构成的。同时缓存了顶点和顶点颜色数据,但是没有使用。这些调用操作,高效的在顶点属性配置之间切换。标志指定的缓冲区对象用于保存顶点数组。缓存进行绘制的代码如下(实际也使用了。VAO 是指顶点数组对象,主要用于管理。对于每个顶点来说,顶点坐标位于前面,
原创
发布博客 2024.07.20 ·
936 阅读 ·
7 点赞 ·
0 评论 ·
13 收藏

Vulkan 学习(1)---- Vulkan 基本概念和发展历史

用于处理两个或者更多的动作指令同时发生的情况,此时的指令之间可能会产生争夺资源或者依赖于某些内存,该指令用于设置同步事件或者等待事件,插入流水线屏障对象,渲染通道子通道的依赖。的SDK,其中带有很多不同的资源和工具,可以辅助Vulkan程序的开发,这些工具和资源包括Vulkan的加载器,验证层,跟踪和回放工具。描述符集合指的是资源和着色器之间的接口,可以将着色器绑定到资源,比如图像或者缓存,可以将资源内存关联或者绑定到准备使用的着色器的实例上。的系统可以直接查询系统信息,并返回可用的物理设备的数量。
原创
发布博客 2024.07.07 ·
2740 阅读 ·
14 点赞 ·
0 评论 ·
27 收藏

OpenGL-ES 学习(6)---- 立方体绘制

顶点的坐标体系如下图所示,三维坐标的中心原点位于立方体的中心,但是要特别注意的是,前后方向表示的是Z轴,上下方向表示的是Y轴。会得到经过插值后的每个片元的颜色,并将这个颜色设置为最终的显示,实现的是一个渐变色的效果,数组中表示不同顶点的绘制顺序,每三个顶点构成一个三角形,最后由。这里为立方体的每个顶点定义不同的颜色,同时在。实现了对顶点内容和顶点Index的缓冲。个面,所以绘制立方体本质上就是绘制这。实现了旋转的效果,同时使用。Note: 这里还使用了。
原创
发布博客 2024.06.23 ·
890 阅读 ·
11 点赞 ·
0 评论 ·
4 收藏
加载更多