● DP Shader Ops?准备迎接光线追踪吧!
作为DirectX 11.1在桌面部分最引人注目的更新,DP Shader Ops的引入足以引发一场革命,因为它为DP Shader的实用打开了最后一道API端的大门。
DP Shader Ops引入了诸如双精度ADD、mov等诸多指令和操作
DP shader(Double Precision Float Shader,双精度浮点shader)是微软在DirectX 11中首次引入的shader类型。与传统的常规shader相比,DP shader的最大特点在于在shader处理数据及运算过程中全面引入双精度规则,这让DP shader具备了远高于常规shader的运算精度,配合FMA的应用,DP shader可以称得上桌面应用范围内完全无损的shader类型。
遗憾的是,DirectX 11中所包含的DP shader部分仅仅是在编程及数据定义规则上进行了扩展,并为引入更多的指令及执行模式。由此可见,要想让DP shader真正走向实用,DP shader Ops的引入是必不可少的。但是,我们为什么非要引入DP shader呢?它对图形效果的处理有哪些好处呢?
在传统的光栅化过程中,全部的浮点shader数据均为单精度,就我们目前的所有应用场合来看,FP32格式的shader数据已经足以保证程序运行精度的需求,DP数据在精度上是多余的。既然单精度FP32精度现在已经够用,引入DP shader的目的何在呢?答案来自一个显赫的名字——光线追踪。光线追踪对图形进步的意义毋庸多言,其精美的效果以及重大意义几乎每天都在被无数人无数次的重复着。按照微软对未来桌面图形处理过程的规划,光线追踪的引入已经迫在眉睫。
在光线追踪处理过程中,处理光线交汇的运算部分必须仰仗双精度浮点数据来维持运算过程及结果的正确性。如果使用目前惯用的处理精度,光线在与物体交互作用2次以上之后将会发生不可忽略的数据溢出,如果按照常规处理过程要求的那样让一束光线与物体交互作用最少6~8次,甚至30~50次的话,最终结果必定已经面目全非。由此可见,要保证光线追踪能够实用化并与现阶段的shader体系有机的结合在一起,DP shader的引入是必不可少的。而DirectX 11.1中的DP Shader Ops,正是这一切能够得以实现的基础。
- 第1页:好生猛的“X.1”
- 第2页:整体构架更新
- 第3页:DP Shader Ops?准备迎接光线追踪吧!