首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >将着色器资源视图使用到深度模板缓冲区资源的哪种格式?

将着色器资源视图使用到深度模板缓冲区资源的哪种格式?
EN

Stack Overflow用户
提问于 2016-08-13 14:11:07
回答 1查看 2.4K关注 0票数 4

深度模板缓冲区资源定义为DXGI_FORMAT_D24_UNORM_S8_UINT格式。

我假设要将着色器资源视图(SRV)创建到该资源中,需要将视图格式描述为:

  • DXGI_FORMAT_R24_UNORM_X8_TYPELESS,其中红色通道访问深度值
  • DXGI_FORMAT_R24G8_TYPELESS红色通道访问深度和绿色通道模板值

但是,创建这样的SRV失败时会出现以下错误:

D3D12错误: ID3D12Device::CreateShaderResourceView:对于资源格式D24_UNORM_S8_UINT,当生成D3D视图时,视图的格式名称不能是R24_UNORM_X8_TYPELESS。请参阅此资源格式的有效视图格式名称集的文档,确定该资源(或其一部分)将如何显示到着色器。STATE_CREATION错误#28: CREATESHADERRESOURCEVIEW_INVALIDFORMAT

通过查看API文档,我获得了以下信息:

查看资源时,资源视图描述必须指定与资源格式兼容的类型化格式。因此,这意味着不能使用名称中的任何_TYPELESS格式创建资源视图描述。但是,可以通过为视图指定类型化格式来查看无类型资源。

我真的不明白为什么不允许使用无类型格式,我应该使用哪种格式来代替

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2016-08-13 23:24:55

相反,您使用无类型组件创建资源,并在视图中使用所需的最终表示形式专门化资源。由于您已经给了资源模板一个uint表示,所以您将继续使用它。

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

https://stackoverflow.com/questions/38933565

复制
相关文章

相似问题

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