首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >DirectX中的“无类型”DXGI纹理格式是什么?

DirectX中的“无类型”DXGI纹理格式是什么?
EN

Stack Overflow用户
提问于 2020-09-21 07:57:10
回答 1查看 1.5K关注 0票数 3

在directX:格式化中有多种纹理格式

大多数都很清楚,但是什么是“无类型”纹理呢?例如,对于BC6H,有

代码语言:javascript
复制
DXGI_FORMAT_BC6H_TYPELESS,
DXGI_FORMAT_BC6H_UF16,
DXGI_FORMAT_BC6H_SF16,

UF16是无符号浮点数,SF16是有符号浮点数,至少编码器是https://learn.microsoft.com/en-us/windows/win32/direct3d11/bc6h-format (也许解码器也是?)似乎关心的格式是签名还是无签名。

但是什么是“无型”呢?这样的纹理是如何编码和解码的?

EN

回答 1

Stack Overflow用户

发布于 2020-09-21 19:03:19

DXGI格式的“无类型”变体适用于特殊情况,在这种情况下,可以更改数据的解释方式。这允许您为硬件创建具有正确内存布局(即使用_TYPELESS格式)的资源(即实际的“位包”),然后可以使用所需的特定类型创建多个视图对象。这有效地允许您在有限的情况下执行等效的"C++强制转换“。

使用无类型的最常见的情况是处理深度/模板格式,对着色器进行RGB处理,在DirectCompute中实现BC编解码器。这不是您经常使用的东西,但是当您选择放松类型验证时,就会派上用场了。

有关使用无类型DXGI格式的一些示例,请参见AdaptiveTessellationCS40BasicCompute11CascadedShadowMaps11MultithreadedRendering11,和VarianceShadows11.的directx-sdk-样本 GitHub。

对于Xbox开发,还有几种情况_TYPELESS会派上用场,因为它是一种统一内存访问( Unified,UMA)体系结构,但这会扭曲“股票”Direct3D的验证规则。

参见MicrosoftDirect3D 11.3规范

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

https://stackoverflow.com/questions/63988220

复制
相关文章

相似问题

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