首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >Direct3D11是否包括颜色空间转换?

Direct3D11是否包括颜色空间转换?
EN

Stack Overflow用户
提问于 2014-06-05 22:40:20
回答 1查看 3.3K关注 0票数 2

我正在研究用于显示视频输出的Direct3D11;特别是,我试图弄清楚是否有一种方法可以将YUV表面赋予Direct3D11,并让它自动(即在硬件中)转换为RGB并将其表示为RGB。描述的文档声明:

由于Direct3D 11为后台缓冲区提供了轻松的呈现目标创建规则,应用程序可以从DXGI_FORMAT_B8G8R8A8_UNORM交换链创建DXGI_FORMAT_B8G8R8A8_UNORM_SRGB呈现目标视图,以便在呈现交换链时使用自动颜色空间转换。

这个“自动颜色空间转换”指的是什么?在Direct3D11中有什么东西可以做我想要做的事情,还是必须通过预渲染或者通过着色器来执行呢?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2014-06-08 12:06:21

在DX11中创建纹理时,可以选择许多格式,这些格式将通知着色器有关数据结构的信息。这些格式属于DXGI_FORMAT枚举。它们基本上是ARGB颜色格式的各种配置,因此允许您指定例如B8G8R8A8或R16G16B16A16。然而,没有选择的YUV格式。

你能做的最好的事情就是把你的YUV数据传递给着色管道,“假装”它们是RGB。然后在像素着色器中执行对真实RGB格式的转换。这个解决方案应该是足够有效的,因为转换将在GPU上执行,对纹理中的每个可见像素并行执行。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/24071360

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档