首页 > 其他分享 >Vulkan/FrameBuffer

Vulkan/FrameBuffer

时间:2023-12-02 14:11:23浏览次数:26  
标签:渲染 对象 缓冲 图像 附件 FrameBuffer Vulkan 通道

帧缓冲(Framebuffer)代表由渲染管线进行渲染的一组图像。它们影响管线的最后几个阶段:深度模板测试,颜色混合,逻辑运算,多重采样等等。一个帧缓冲对象总是附着在一个渲染通道上并且可以用在多个具有相似模板编排的渲染通道中。

调用vkCreateFramebuffer创建帧缓冲对象。

VkFramebufferCreateInfo中,与帧缓冲兼容的渲染通道对象由renderpass指定。对于帧缓冲来说,两个兼容的渲染通道是指它们引用的附件是相同的。

绑定到帧缓冲对象的图像由pAttachments传递,它是一个VkImageview指针,数量由attachmentCount指定。该数量和渲染通道内指定的附件数量相同,并且图象视口和渲染通道内附件一一对应,子通道使用索引引用的附件就是对应到pAttachments中。如果你知道某个特别的渲染通道不适用某些附件,但是你依然希望帧缓冲于其兼容,那么pAttachments某些值可能需要设置为VkNullHandle

即使帧缓冲内每个图像都有自己的宽度、高度和层数,你也必须指定帧缓冲的维度大小,包括widthheightlayers。你可以通过maxFramebufferWidth查看帧缓冲宽度限制,类似的高度和层数也可以通过着这种方法查看。

如果你不需要这缓冲对象,使用vkDestroyFramebuffer销毁。

销毁一个帧缓冲对象并不影响任何附着在帧缓冲对象上的图像数据。图像可以同时绑定到多个帧缓冲中,也可在一个帧缓冲中绑定到多个附件上,以此用多种方式使用图像数据。然而,即使图像没有销毁,你应该确保不再使用已销毁的帧缓冲对象。

标签:渲染,对象,缓冲,图像,附件,FrameBuffer,Vulkan,通道
From: https://www.cnblogs.com/FastEarth/p/17871535.html

相关文章

  • Visual Studio 2022:Vulkan 环境配置
    (前置)安装VulkanSDK,并确认安装目录,此后记为%VulkanDir%(例如:C:/VulkanSDK/1.3.261.1)VisualStudio中新建C++项目,进入“项目”>>“[项目名]属性”,上方两个选项设置为“所有配置”“所有平台”C/C++>>常规>>附加包含目录:添加%VulkanDir%/Include(替换%VulkanDir%为实际目录,下同)......
  • 【小沐学Vulkan】Vulkan开发环境配置
    1、简介https://www.vulkan.org/Vulkan是新一代图形和计算API,用于高效、跨平台访问GPU。Vulkan是一个跨平台的2D和3D绘图应用程序接口(API),最早由科纳斯组织在2015年游戏开发者大会(GDC)上发表。号称是glNext。旨在提供更低的CPU开销与更直接的GPU控制,其理念大致与Direct3D12......
  • 构造Vulkan图形管线:VkGraphicsPipeline
     创建Pipeline构造信息:它包括:基本构造信息VkStructureType构建Pipeline额外需要的结构:constvoid*pNext构建Pipeline时指定的Flags:VkPipelineCreateFlags多个ShaderStage信息:VkPipelineShaderStageCreateInfo*(数组)......
  • 嵌入式Linux ------ 一次简单的FrameBuffer驱动开发
    Linux一次简单的FrameBuffer驱动开发设施版本CPUAllwinnerF1C200slinux6.4.0-rc4显示器1.28inch16-grayscaleOLED128x128驱动ICSSD1327Orangepi5声明本驱动仓库位于:https://github.com/AllwinnerSuniv/suniv-epd/tree/main/ssd1327本驱动代......
  • Vulkan Descriptor绑定过程
    如果shader中的资源是这么排布的://vslayout(set=0,binding=0,std140)uniformUBO{mat4projection;mat4view;mat4model;}ubo;layout(location=0)invec3inPos;layout(location=0)outvec3outUVW;//fslayout(set=0,binding=1)uni......
  • t113-c-framebuffer-画点篇
    本来今天是要结合udp的例子传输数据的,但是被一个数学逻辑搞了半天,记录一下避坑吧。代码#include<stdio.h>#include<sys/types.h>#include<sys/stat.h>#include<fcntl.h>#include"linux/fb.h"#include<sys/ioctl.h>#include<sys/mman.h>#include<......
  • Vulkan Video实现GPU加速视频编码/解码
    正文字数:929 阅读时长:2分钟Vulkan是一套跨平台的图形API,由Khronos组织牵头进行制定,普遍被看作是OpenGL的后继者,目前版本已经来到1.2.175,仍然在不停地进行更新,其在非Windows平台上面已经逐渐变成了首选使用的图形API。在未来,Vulkan甚至会提供模拟DirectX等其他图形API的功能,有很大......
  • Framebuffer 应用编程中涉及的 API 函数
    论  坛:http://bbs.100ask.net/(学术答疑)公 众 号:百问科技版本日期作者说明V12020韦东山摘自《嵌入式Linux应用开发完全手册》本节程序的目的是:打开LCD设备节点,获取分辨率等参数,映射Framebuffer,最后实现描点函数。5.2.1open函数在Ubuntu中执行“man2open”,可以看到o......
  • OpenGL不够用?为何还要开发Vulkan?
    相信不少朋友和我一样有这样的疑问既然已经有广泛应用的OpenGL图形接口,为什么Khronos还要花费精力重新开发一套Vulkan图形API接口呢?查询相关资料后,总结为一句话为了更高的性能、更低的驱动程序开销。对于许多图形开发者来说,OpenGL是一个非常熟悉和广泛使用的图形API接口。然而......
  • QT显示插件(LinuxFB)及其依赖的驱动(DRM/framebuffer)记录
    关键词:Framebuffer、linuxfb、DRM等等。 QT在Linux中支持多种显示插件,包括EGLFS、LinuxFB、DirectFB、Wayland等。可以通过--platfrom选项指定选择何种插件。比如:./analogclock--platformlinuxfb。QT支持多种显示插件,显示插件打开Linux内核fb设备,Linux内核中GPU/Display驱动......