DirectX12交换链、深度缓冲

DirectX12交换链

用IDXGISwapChain接口表示交换链

这个接口不仅存储了前台缓冲区和后台缓冲区两种纹理,而且还提供了修改缓冲区大小(IDXGISwapChain::ResizeBuffers)和呈现缓冲区内容(IDXGISwapChain::Present)的方法。

使用两个缓冲区(前台和后台)的情况称为双缓冲,除此之外还有使用3个缓冲区叫做三重缓冲。

DirectX12深度缓冲

深度缓冲区也是一种纹理,所以一定要用明确的数据格式来创建它。深度缓冲可用的格式包括以下几种。

  • DXGI_FORMAT_D32_FLOAT_S8X24_UINT
    该格式共占用64位;
    取其中的32位指定一个浮点型深度缓冲区;
    另有8 位(无符号整数)分配给模板缓冲区(stencil buffer),并将该元素映射到[0, 255]区间;
    剩下的24 位仅用于填充对齐(padding)。

  • DXGI_FORMAT_D32_FLOAT
    指定一个32 位浮点型深度缓冲区

  • DXGI_FORMAT_D24_UNORM_S8_UINT
    指定一个无符号24位深度缓冲区,并将该元素映射到[0, 1]区间;
    另有8 位(无符号整型)分配给模板缓冲区,将此元素映射到[0, 255]区间。

  • DXGI_FORMAT_D16_UNORM
    指定一个无符号16 位深度缓冲区,把该元素映射到[0, 1]区间。

你可能感兴趣的:(图形渲染)