zoukankan      html  css  js  c++  java
  • Direct3D9的扩展纹理格式

    转载请注明出处为KlayGE游戏引擎,本文地址为http://www.klayge.org/?p=626

    在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。越绿表示越多硬件支持。

    Format Usage Resource Description NVIDIA GeForce ATI Radeon Intel
    Shadow mapping
    D3DFMT_D16 DS tex Sample depth buffer directly as shadow map. 3+ HD 2xxx+ 965+
    D3DFMT_D24X8 DS tex 3+ HD 2xxx+ 965+
    Depth Buffer As Texture
    DF16 DS tex Read depth buffer as texture.
    9500+ G45+
    DF24 DS tex
    X1300+
    INTZ DS tex 8+ HD 4xxx+ G45+
    RAWZ DS tex 6 & 7

    Anti-Aliasing related
    RESZ RT surf Resolve MSAA’d depth stencil surface into non-MSAA’d depth texture.
    HD 4xxx+ G45+
    ATOC 0 surf Transparency anti-aliasing. 7+

    SSAA 0 surf 7+

    All ATI SM2.0+ hardware
    9500+
    n/a

    Coverage Sampled Anti-Aliasing 8+

    Texturing
    ATI1 0 tex ATI1n & ATI2n texture compression formats. 8+ X1300+ G45+
    ATI2 0 tex 6+ 9500+ G45+
    DF24 DS tex Fetch 4: when sampling 1 channel texture, return four touched texel values. Check for DF24 support.
    X1300+
    Misc
    NULL RT surf Dummy render target surface that does not consume video memory. 6+ HD 4xxx+
    NVDB 0 surf Depth Bounds Test. 6+

    R2VB 0 surf Render into vertex buffer. 6 & 7 9500+
    INST 0 surf Geometry Instancing on pre-SM3.0 hardware.
    9500+

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

  • 相关阅读:
    【11平台天梯】【原理分析】11平台天梯原理分析
    2020年8月11日
    2020年8月10日
    2020年8月12日
    2020年8月9日
    2020年8月13日
    2020年8月8日
    2020年8月7日
    2020年8月6日
    2020年8月14日
  • 原文地址:https://www.cnblogs.com/gongminmin/p/1925342.html
Copyright © 2011-2022 走看看