Direct3D9的扩展纹理格式

在WinXP下,即使GPU支持D3D10+,也只能用D3D9的API。但实际上各个厂商都对D3D9做了一些扩展,把部分D3D10+的特性暴露给了D3D9 API。以下是一些特殊的纹理格式,通过FOURCC的方式来使用。通过CheckDeviceFormat可以检测是否支持该格式,在CreateTexture的时候传入即可。下表的源头是各厂商的GPU文档,经过Unity的Aras整理而来:

Usage列:DS=DepthStencil,RT=RenderTarget;Resource列:tex=texture,surf=surface。越绿表示越多硬件支持。

In WinXP, even a GPU supports D3D10+ can only uses D3D9 API. Actually, most GPU vendors have their extensions, some D3D10+’s features are exposed to D3D9 API. For example, here’s a list of special texture formats, which are used through FOURCC. You can use CheckDeviceFormat to detect whether its available, and pass it to CreateTexture. The original source of the table below is vendors GPU document. Aras from Unity assemble them up:

Usage column: DS=DepthStencil, RT=RenderTarget; Resource column: tex=texture, surf=surface. More green means more hardware support.

FormatUsageResourceDescriptionNVIDIA GeForceATI RadeonIntel
Shadow mapping
D3DFMT_D16DStexSample depth buffer directly as shadow map.3+HD 2xxx+965+
D3DFMT_D24X8DStex3+HD 2xxx+965+
Depth Buffer As Texture
DF16DStexRead depth buffer as texture. 9500+G45+
DF24DStex X1300+ 
INTZDStex8+HD 4xxx+G45+
RAWZDStex6 & 7  
Anti-Aliasing related
RESZRTsurfResolve MSAA’d depth stencil surface into non-MSAA’d depth texture. HD 4xxx+G45+
ATOC0surfTransparency anti-aliasing.7+  
SSAA0surf7+  
All ATI SM2.0+ hardware 9500+ 
n/a  Coverage Sampled Anti-Aliasing8+  
Texturing
ATI10texATI1n & ATI2n texture compression formats.8+X1300+G45+
ATI20tex6+9500+G45+
DF24DStexFetch 4: when sampling 1 channel texture, return four touched texel values. Check for DF24 support. X1300+ 
Misc
NULLRTsurfDummy render target surface that does not consume video memory.6+HD 4xxx+ 
NVDB0surfDepth Bounds Test.6+  
R2VB0surfRender into vertex buffer.6 & 79500+ 
INST0surfGeometry Instancing on pre-SM3.0 hardware. 9500+ 

完整的GPU扩展功能,请看:

Complete GPU extensions, please see:

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值