DirectX12交换链

用IDXGISwapChain接口表示交换链

这个接口不仅存储了前台缓冲区和后台缓冲区两种纹理,而且还提供了修改缓冲区大小(IDXGISwapChain::ResizeBuffers)和呈现缓冲区内容(IDXGISwapChain::Present)的方法。

使用两个缓冲区(前台和后台)的情况称为双缓冲,除此之外还有使用3个缓冲区叫做三重缓冲。

DirectX12深度缓冲

深度缓冲区也是一种纹理,所以一定要用明确的数据格式来创建它。深度缓冲可用的格式包括以下几种。

  • DXGI_FORMAT_D32_FLOAT_S8X24_UINT
    该格式共占用64位;
    取其中的32位指定一个浮点型深度缓冲区;
    另有8 位(无符号整数)分配给模板缓冲区(stencil buffer),并将该元素映射到[0, 255]区间;
    剩下的24 位仅用于填充对齐(padding)。

  • DXGI_FORMAT_D32_FLOAT
    指定一个32 位浮点型深度缓冲区

  • DXGI_FORMAT_D24_UNORM_S8_UINT
    指定一个无符号24位深度缓冲区,并将该元素映射到[0, 1]区间;
    另有8 位(无符号整型)分配给模板缓冲区,将此元素映射到[0, 255]区间。

  • DXGI_FORMAT_D16_UNORM
    指定一个无符号16 位深度缓冲区,把该元素映射到[0, 1]区间。

DirectX12交换链、深度缓冲相关推荐

  1. 初始Vulkun(7):交换链

    08/02/2020,03/22/2021 文章目录 交换链 显卡是否支持交换链(VK_KHR_swapchain) 逻辑设备需要扩展交换链 配置交换链环境 获取surface的设置细节 保持与sur ...

  2. Vulkan教程 - 06 交换链

    Swap chain(交换链) 现在到了Vulkan教程第十章了,学习交换链.Vulkan没有默认帧缓冲的概念,因此它需要一个基础设施,能够在我们通过屏幕看到内容之前,持有我们想要渲染的东西的缓冲.该 ...

  3. Vulkan入门(四)-Surface和交换链.md

    文章目录 参考资料 简述 一. Window Surface 1.1 创建窗口Surface 二. Swap Chain-交换链 2.1 检查GPU是否支持交换链 2.2 使能设备扩展 2.3 获取关 ...

  4. Vulkan学习--5.创建一个窗口表面和交换链

    • 创建一个窗口,窗口表面和交换链 1.检测交换链是否支持 2.启用交换链扩展 3.选择适当的表面格式 4.查找最佳的可用呈现模式 5.设置交换范围 6.创建窗口表面 7.创建交换链 8.查询交换链支 ...

  5. [Vulkan教程]绘制一个三角形/呈现/交换链(Swip chain)

    文章目录 检查交换链支持 启用设备扩展 查询交换链支持详情 为交换链选择正确的设置 表面格式 呈现模式 交换范围 创建交换链 检索交换链中的图像 Vulkan没有默认缓冲区的概念,因此需要一个东西提供 ...

  6. Vulkan填坑学习Day06—交换链

    Vulkan 交换链 Vulkan 交换链,在这一章节,我们了解一下将渲染图像提交到屏幕的基本机制.这种机制称为交换链,并且需要在Vulkan上下文中被明确创建.从屏幕的角度观察,交换链本质上是一个图 ...

  7. Vulkan 交换链详解

    大家好,接下来将为大家介绍Vulkan 交换链详解. 在这一章节,我们了解一下将渲染图像提交到屏幕的基本机制.这种机制称为交换链,并且需要在Vulkan上下文中被明确创建.从屏幕的角度观察,交换链本质 ...

  8. Vulkan【6】创建一个交换链

    创建一个交换链 本节的代码是 05-init_swapchain.cpp 本节描述如何创建交换链,它是最终显示给用户的图像缓冲区列表.这是建立呈现所需的所有缓冲区所需的第一个步骤之一. 这是一个关于交 ...

  9. Vulkan Cookbook 第二章 14 使用R8G8B8A8格式和邮箱呈现模式创建交换链

    使用R8G8B8A8格式和邮箱呈现模式创建交换链 译者注:示例代码点击此处 要创建交换链,需要获取大量附加信息并准备想到多的参数.为了呈现准备阶段所需的所有步骤的顺序以及如何使用所获得的信息,我们将创 ...

最新文章

  1. 解决虚拟机vmware安装64位系统“此主机支持 Intel VT-x,但 Intel VT-x 处于禁用状态”的问题...
  2. SAP Fiori Elements 框架里 Smart Table 控件的工作原理介绍
  3. 无为职业学校计算机班,致盐亭职中2000级计算机三班全体同学的一封信
  4. java输出日志_java代码中如何正确使用loggger日志输出
  5. Postman中json内字符串转义问题
  6. chmod 更改文件的权限
  7. C++网络编程实例(socket)
  8. 实时任务多核分区调度算法—近似率 asymptotic approximation ratio的概念和作用
  9. uchome 数据字典详解
  10. python定义矩形类_Python3面向对象—点和矩形类
  11. 程炳皓:我不恨陈一舟 开心网做不好是我自己的问题
  12. java金额小数位,java 数字转大写金额,小数部分太简单略
  13. Bit blit----From Wikipedia
  14. 京东首页案例(流式布局)
  15. VS Code 常用快捷键代码大全
  16. 计算机共享打印机怎么弄,电脑共享打印机怎么设置,手把手教你设置共享打印机...
  17. 执行股票交易接口get提交方法如何获取三大指数的股票列表?
  18. 磁盘阵列是什么,主要做什么用?
  19. 防止域名被劫持的七种方法域名被劫持怎么办
  20. mysql数据库的介绍与初始配置

热门文章

  1. WinXP系统应用技巧集锦
  2. Python经典面试题:说说Python中xrange和range的区别?
  3. AutoLisp从入门到放弃(十五)
  4. egg extend ts_胜者组新“四大天王”,DYG、AG级别更高,TS被踢出群聊
  5. Linux操作系统期末考试试题及答案-选择题
  6. vscode 的终端不识别npm 命令
  7. ORACLE RAC ONE NODE技术介绍
  8. 八(7)Elasticsearch02
  9. ladder BFS
  10. 详解 Windows自带的MPIO(多路径)