上文介绍了D3D11的两个重要特性compute shader和multi-threaded,本篇专注于两个不能在D3D10硬件上使用的、纯D3D11的新特性tessellation和BC6H/BC7纹理压缩。
Tessellation
很 多人会说D3D11增加了tessellation shader这个stage,但真相是增加了hull shader、tessellator和domain shader三个stage。Hull shader的输入是patch的控制点(三角形、四边形这样的图元,最多有32个控制点),计算出tessellation等级、确定 tessellation的方法等。它的输出被送给固定单元的tessellation进行细分。Domain shader的输入是细分后的bary centric坐标、来自hull shader的控制点,它负责计算插值后的顶点坐标。
Tessellation早就存在于一些GPU。 D3D9 ...
Direct3D 11 class hardware through the Direct3D 11 API supports two new texture compression formats: BC6H and BC7. These new Block Compressed formats provide excellent compression for High-Dynamic Range (HDR) images and higher-fidelity traditional content. The D3DX11 library includes a software implementation of the encoder, but the new BC formats are extremely asymmetric meaning the encoding algorithm has a very large search space to determine the optimal compression for each 4x4 block. This makes a great candidate for a GPGPU DirectCompute implementation of the compression algorithm. The ...