就在很多人翘首以盼 DX12 到来的时候,微软却突然宣布,DX11、DX12 之间还会有一个过渡版本 11.3——确切地说是 Direct3D 11.3。
DX12 既然都要来了,此时再搞一个 DX11.3 意义何在呢?
其实很有道理。
DX12 是一个底层 API,很强大,但很难驾驭,在生手那里也很危险。DX12 的开发模型是针对极少数编程高手的,他们来写就新的引擎、渲染器,其他人则在此基础上二次开发。
也就是说,底层 API 并不是适合每一个人的。
DX11 则是一个高层 API,自然有其继续存在的价值。它隐藏了复杂的底层硬件,对程序员更友好,开发自然更容易。
因此,DX11、DX12 将在今后长期共存,一高一低,服务于不同人群。
在功能特性上,DX11.3、DX12 将是共通的,而且同时加入了大量的新技术。因为它们都比较复杂(特别是对普通人而言),而且是微软首次对外公布,一切都还在进一步研究、定义之中,所以我们会稍后尽量给大家细细分析。
另外,微软还在针对 DX11.3、DX12 制定新的特性等级(Feature Level)。
说起这个特性等级,有点让人爱恨交加。它是随 DX11 诞生的,初衷很好,让程序员可以使用同样的 API 为不同档次的硬件进行编程,而不必像以前那样,每一代都写一次代码。
举例来说,你用 DX11 API 编程,但程序可同时适用于 DX9、DX10、DX11 级别硬件,只不过在档次较低的硬件上,功能特性会有所限制,DX9.0c 上就是 FL9_3。
但对于普通用户来说,厂商的宣传就可以因此忽悠人了,比如某显卡号称兼容 DX12,但其实并不完全支持 DX12 的全部功能特性,特性等级可能只有 FL11_2。也正因为如此,再加上厂商们故意含糊其辞,目前显卡对 DX12 的支持仍然笼罩着一团迷雾,只能等明年底 DX12 真正诞生之后再说。
反正,GM204 新核心的二代麦克斯韦架构 GTX 980、970 都已经号称完整支持 DX12,AMD 也说 GCN 架构的卡都支持 DX12。