【问题标题】:How to combine a 2D texture in one color format with the swap chain in other color format?如何将一种颜色格式的 2D 纹理与另一种颜色格式的交换链结合起来?
【发布时间】:2017-04-04 01:50:31
【问题描述】:

我有一个交换链,它的用法是 DXGI_USAGE_RENDER_TARGET_OUTPUT。交换链的格式是 DXGI_FORMAT_R8G8B8A8_UNORM。

然后我有一个单独的 DXGI_FORMAT_YUY2 格式的 2D 纹理。有没有办法在交换链的后台缓冲区上渲染该纹理?当然,假设 VGA 卡可以处理 YUV->RGB 转换。

如有需要,我会提供更多信息!

编辑: 我打算用 8 位 YUY2 值(32 位 == 2 像素)填充 YUV 纹理。我应该使用顶点着色器还是像素着色器将其转换为浮点数?如果是,那么我会询问有关如何执行此操作的一些信息...

【问题讨论】:

    标签: directx-11


    【解决方案1】:

    交换链只能是 RGBA8 或 RGBA16。您应该知道,交换链需要 RGBA8 中的 srgb 图像(伽马 2.2)和使用 RGBA16 的线性图像。

    这是您的交换链可以显示的唯一两种模式。有可以直接显示 YUV 表面的视频叠加功能,但我不熟悉它们,它不会是您交换链中的显示。在您的情况下,最简单的方法是编写一个像素或计算着色器来获取 YUV 数据并将其转换为交换链最终格式。

    【讨论】:

      猜你喜欢
      • 2013-08-15
      • 2014-12-30
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-02-18
      • 2015-12-19
      • 2013-03-26
      • 2019-01-29
      相关资源
      最近更新 更多