● 本次4大测试项目简介(2)
HDRToneMapping CS11测试项目同样是针对Computer Shader能力进行测试,该项目展示了如何设置和运行计算着色器(Computer Shader),这是最令人兴奋的Direct3D 11的新功能之一。虽然该测试只是检验了这项技术在HDR(High-Dynamic Range)高动态光照渲染中的加速能力,但是这个概念应该很容易扩展到其他后处理算法,以及更一般的计算。
HDRToneMappingCS11显示了在CS用做快速并行图像上减少计算平均照度,然后使用计算照度做色调映射。直到真正的Direct3D 11硬件出现,样本只运行在软件参考设备。做好后处理(Post Process),以及更普遍的计算使用的CS。当然该测试同样可以使用Pixel Shader单元实现后处理,不过我们鼓励开发者开始与现在的CS实验。
在CS是书面向任何输出的资源也被称为散射能力(位置的能力)。这使得更广泛的和复杂的算法是硬件实现上的图形。在CS提供机制,以共享数据,以及线程之间同步执行。这些能力显着降低冗余取数操作,特别是对算法的缓冲区或纹理,涉及内核或减少计算。
有一个专门的Direct3D 11的API明确推出GPU上的线程称为CS数目。这使得算法的线程上执行的最佳数量,并且还提供了可预测的内存访问和寄存器的使用。这导致更好的性能和优化创造更多的可能性。在CS是不附加任何具体的图形流水线阶段,它有它自己的一套状态。这意味着你的渲染管线和后处理单元是由相互分离的代码,允许创造,更易于维护。
OIT11示例演示了在Direct3D 11独立透明度的技术。换句话说,基元(Primitives),可以得出在任何秩序,透明度将正确处理。该技术提供的作品,因为它们是由缓冲透明的像素。这些像素,然后按深度,并在后端到前端与tranparency秩序呈现。本示例使用计算着色器生成一个前缀之和排序前最后的渲染的像素片段。