【发布时间】:2014-06-08 20:06:21
【问题描述】:
我正在研究 Direct3D11 以显示视频输出;特别是,我试图弄清楚是否有办法为 Direct3D11 提供 YUV 表面并让它自动(即在硬件中)将其转换为 RGB 并以这种方式呈现。 DXGI_MODE_DESC 的文档指出:
由于 Direct3D 11 放宽了渲染目标创建规则 对于后台缓冲区,应用程序可以创建一个 DXGI_FORMAT_B8G8R8A8_UNORM_SRGB 渲染目标视图 DXGI_FORMAT_B8G8R8A8_UNORM 交换链,因此它们可以使用自动颜色 渲染交换链时的空间转换。
这个“自动色彩空间转换”指的是什么? Direct3D11 中是否有任何东西可以满足我的需求,或者必须通过预渲染或通过着色器执行此操作?
【问题讨论】:
-
AFAIK,这种“自动”色彩空间转换是指 sRGB 和线性到伽马空间的转换,而不是 YUV 到 RGB。另外,我自己考虑使用尽可能接近“硬件”的简单片段着色器。