当前位置: 首页 > news >正文

Vulkan入门系列9 - Uniform Buffer 资源描述符

一:概述

        我们现在可以通过使用Vertex Buffer的形式,将顶点的任意属性传递到顶点着色器,但全局变量如何传递给着色器呢?从这一篇文章开始,我们将进入3D图形绘制阶段,这需要一个模型视图投影矩阵。我们可以将其作为顶点数据放到Vertex buffer中,但这会浪费内存,并且每当发生矩阵变换时,我们都需要更新顶点缓冲区。这些矩阵变换可能在每一帧中都会发生(如改变相机视角位置等)。

        在Vulkan中解决这个问题的正确方法是使用资源描述符。描述符是一种让着色器自由访问像缓冲区和图像等资源的方式。我们将设置一个包含变换矩阵的缓冲区,并让顶点着色器通过描述符访问它们。描述符的使用包括三个部分:

        1. 在管线创建期间指定描述符布局。
        2. 从描述符池中分配描述符集。
        3. 在渲染期间绑定描述符集。

        描述符布局指定将被管线访问的资源类型,就像渲染通道(render pass)指定将被访问的附件(attchment)类型一样。描述符集合将实际要访问的缓冲区或图像资源绑定到该描述符上面,就像帧缓冲区将实际要访问的图像视图绑定到渲染通道附件上一样。然后,描述符集合被绑定用于绘制的命令上,就像绘制时绑定顶点缓冲区和帧缓冲区一样。

        有许多类型的描述符,但在本章中我们将使用统一(Uniform)缓冲区对象(UBO)。我们将在未来的章节中查看其他类型的描述符,但基本过程是相同的。假设我们有一个 C 结构体,里面包含我们希望顶点着色器使用的数据:

struct UniformBufferObjec

相关文章:

  • 北京网站建设多少钱?
  • 辽宁网页制作哪家好_网站建设
  • 高端品牌网站建设_汉中网站制作
  • Eval绕过限制参数限制
  • 数据库交互的艺术:JDBC与数据库连接池的探索之旅
  • vue2+OpenLayers 地图上添加渐变色(6)
  • 负载均衡相关概念介绍(一)
  • java后端都要学那些知识
  • 3D 技术对我们的生活有哪些影响?
  • 【Java】解析方法的调用关系
  • Linux Shell编程--数组
  • Linux服务管理(五)Apache服务优化
  • 贷齐乐hpp+php特性注入
  • Gerrit 使用教程
  • C++ | stack/queue
  • 【安卓】Service的基本用法
  • 排序算法【希尔排序】
  • python识别车辆标志
  • 《剑指offer》分解让复杂问题更简单
  • 【翻译】babel对TC39装饰器草案的实现
  • 【跃迁之路】【733天】程序员高效学习方法论探索系列(实验阶段490-2019.2.23)...
  • 4. 路由到控制器 - Laravel从零开始教程
  • Docker入门(二) - Dockerfile
  • eclipse(luna)创建web工程
  • ECMAScript6(0):ES6简明参考手册
  • JavaScript DOM 10 - 滚动
  • javascript面向对象之创建对象
  • Python连接Oracle
  • SSH 免密登录
  • 产品三维模型在线预览
  • 从重复到重用
  • 检测对象或数组
  • 前端之React实战:创建跨平台的项目架构
  • 系统认识JavaScript正则表达式
  • 用element的upload组件实现多图片上传和压缩
  • 3月27日云栖精选夜读 | 从 “城市大脑”实践,瞭望未来城市源起 ...
  • 仓管云——企业云erp功能有哪些?
  • 如何在 Intellij IDEA 更高效地将应用部署到容器服务 Kubernetes ...
  • ​二进制运算符:(与运算)、|(或运算)、~(取反运算)、^(异或运算)、位移运算符​
  • #我与虚拟机的故事#连载20:周志明虚拟机第 3 版:到底值不值得买?
  • (Note)C++中的继承方式
  • (Python第六天)文件处理
  • (八)Flask之app.route装饰器函数的参数
  • (苍穹外卖)day03菜品管理
  • (附源码)springboot优课在线教学系统 毕业设计 081251
  • (剑指Offer)面试题41:和为s的连续正数序列
  • (十二)python网络爬虫(理论+实战)——实战:使用BeautfulSoup解析baidu热搜新闻数据
  • (一)十分简易快速 自己训练样本 opencv级联haar分类器 车牌识别
  • (一)使用Mybatis实现在student数据库中插入一个学生信息
  • .net core webapi 部署iis_一键部署VS插件:让.NET开发者更幸福
  • .net core 控制台应用程序读取配置文件app.config
  • .Net MVC4 上传大文件,并保存表单
  • .net企业级架构实战之7——Spring.net整合Asp.net mvc
  • .NET中两种OCR方式对比
  • 。Net下Windows服务程序开发疑惑
  • /var/lib/dpkg/lock 锁定问题
  • [ NOI 2001 ] 食物链
  • [5] CUDA线程调用与存储器架构