2

我需要将 RGB 纹理转换为视频编解码器可以理解的 NV12 格式(Y 平面紧跟 UV 平面)。 DXGI_FORMAT_NV12使用 R8 为 Y 和 R8G8 为 UV 提供了一个简单的视图格式映射,所以我使用两个像素着色器和 NV12 纹理。不幸的是,这只适用于 Windows 8。我可以在 Windows 7 上以某种方式创建一个同时具有 R8 和 R8G8 着色器资源视图的纹理吗?还是有另一种方法可以渲染 YUV 数据?

4

1 回答 1

0

使用以下 D3DFORMAT创建CreateOffscreenPlainSurface()

(D3DFORMAT)MAKEFOURCC('N', 'V', '1', '2') //842094158

我的 git repo 中提供了更详细的源代码:

https://github.com/sailfish009/sample_direct3d_nv12

于 2018-03-13T06:21:44.733 回答