转载请注明出处为KlayGE游戏引擎,本文的永久链接为http://www.klayge.org/?p=3393

从八月初开始正式做D3D12插件以来,经过5个星期、每天平均一小时的开发,终于达成了第一阶段的目标:在渲染层接口不变的情况下,用纯D3D12渲染所有例子。

其实还不是所有特性都实现了。在例子中,遇到这种情况会退回到另一条code path。原先这些code path是为了在较弱的硬件上也能达到同样的效果,同样也可以用于开发新插件的中间产品。还没实现的特性有:

  1. Stream output(退回到render to texture)
  2. Compute shader(退回到用pixel shader实现)
  3. UAVs
  4. No overwrite(退回到discard)
  5. Query(总是返回0)
  6. Indirect draw
  7. Depth stencil和压缩纹理的mipmap生成(退回到在CPU上生成)

下一个阶段会进一步实现这些特性,做到全功能的D3D12插件,并仍然保持渲染层接口不变。