gpt4 book ai didi

c++ - 在 DXGI 格式之间转换 RGBA 数据

转载 作者:行者123 更新时间:2023-11-28 05:17:20 26 4
gpt4 key购买 nike

我需要将 DXGI_FORMAT_R32G32B32A32_TYPELESS 类型的 ID3D11Texture2D 纹理有效地转换为 DXGI_FORMAT_B8G8R8A8_TYPELESS 类型(或任何其他 32 位 RGBA 类型)的纹理。基本上将每个像素纹理的 128 位减少到每个像素 32 位。看起来像 ID3D11DeviceContext::CopyResource-method 不能处理这样的格式转换。我应该使用着色器来实现吗?如果是,着色器是否可以与 CopyResource 方法一起使用,或者我是否需要设置完整的渲染管道?尝试在 CPU 上进行转换,但速度太慢。

最佳答案

一般来说,进行这些转换的最快方法是使用 GPU 将源格式纹理的“全屏四边形”渲染到目标格式的渲染目标。这些限制将基于支持呈现目标格式的 Direct3D 硬件功能级别。例如,在现代驱动程序的所有功能级别上,您可以指望 DXGI_FORMAT_B8G8R8A8_UNORM 被支持作为渲染目标,而不是 DXGI_FORMAT_B8G8R8A8_SNORM

参见 MSDNDirect3D Feature Levels

For a CPU-based fallback for all possible DXGI format conversions, see DirectXTex.

关于c++ - 在 DXGI 格式之间转换 RGBA 数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42343338/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com