就在很多人翘首以盼DX12到来的时候,微软却突然宣布,DX11、DX12之间还会有一个过渡版本11.3——确切地说是Direct3D 11.3。
DX12既然都要来了,此时再搞一个DX11.3意义何在呢?
其实很有道理。DX12是一个底层API,很强大,但很难驾驭,在生手那里也很危险。DX12的开发模型是针对极少数编程高手的,他们来写就新的引擎、渲染器,其他人则在此基础上二次开发。也就是说,底层API并不是适合每一个人的。
DX11则是一个高层API,自然有其继续存在的价值。它隐藏了复杂的底层硬件,对程序员更友好, 在功能特性上,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。因此,DX11、DX12将在今后长期共存,一高一低,服务于不同游戏开发厂商、开发者等群体。