Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/database/8.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Directx 11 如何将一种颜色格式的2D纹理与另一种颜色格式的交换链相结合?_Directx 11 - Fatal编程技术网

Directx 11 如何将一种颜色格式的2D纹理与另一种颜色格式的交换链相结合?

Directx 11 如何将一种颜色格式的2D纹理与另一种颜色格式的交换链相结合?,directx-11,Directx 11,我有一个交换链,它的用法是DXGI\u usage\u RENDER\u TARGET\u OUTPUT。交换链的格式为DXGI_格式_R8G8B8A8_UNORM 然后我有一个单独的DXGI_格式的2D纹理。有没有办法在交换链的后缓冲区上渲染该纹理?当然,假设VGA卡可以处理YUV->RGB转换 如果有必要,我会提供更多的信息 编辑: 我计划用8位YUY2值(32位==2像素)填充YUV纹理。我应该使用顶点着色器还是像素着色器将其转换为浮动?如果是,那么我会询问一些如何操作的信息…交换链只能是

我有一个交换链,它的用法是DXGI\u usage\u RENDER\u TARGET\u OUTPUT。交换链的格式为DXGI_格式_R8G8B8A8_UNORM

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

如果有必要,我会提供更多的信息

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

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

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