首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >Direct3D 12中的W-缓冲区(Ing)

Direct3D 12中的W-缓冲区(Ing)
EN

Stack Overflow用户
提问于 2020-04-24 11:33:12
回答 1查看 227关注 0票数 0

在D3D10上,Docs是一个列表,它显示了从D3D9到D3D10的不推荐特性。它说,W缓冲不再支持,我们应该使用高精度的深度缓冲区/Z-缓冲区。我怀疑在Direct3D 11和12中也没有(完全)支持它。但是在Direct3D 12中有什么方法可以使用W缓冲区吗?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2020-04-24 20:17:06

Direct3D 9中的“W缓冲”功能是传统固定功能管道的一部分。在Direct3D 10及更高版本中,您只能使用可编程着色器管道(或用于DirectX 11+ DirectCompute着色器管道)。因此,“w缓冲”硬件功能是不相关的。当人们使用16位深度缓冲时,这也是Direct3D 9时代硬件的一个更大的问题。

在可编程着色器模型中,由您的着色器使用常规z或线性化深度值计算深度值,并设置适当的深度/模板状态。请注意,您需要使用SV_DepthGreaterSV_DepthLessEqual而不是SV_Depth来避免“早期z拒绝”优化。

有关该主题的良好讨论,请参见这篇博客文章这个职位

TL;DR:大多数人只使用DXGI_FORMAT_D32_FLOAT,不用担心。

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

https://stackoverflow.com/questions/61407405

复制
相关文章

相似问题

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