在龔敏敏的 《關(guān)于D3D11,你必須了解的幾件事情系列》文章里看到DX11支持DX9特性的細(xì)節(jié),特別在DX11的例子中試了一下。
我的顯卡是Geforce GT440,跑DX11的例子沒有大問題,修改了一下DXSDK里的最簡單Shader例子,跑出來的結(jié)論是,DX9_3可以創(chuàng)建設(shè)備,但是在CreateVertexShader地方失敗了,嘗試將Shader編譯版本降低到VS_2_0也是持續(xù)失敗,于是乎證明了DX11的接口及引擎不能簡單通過調(diào)節(jié)FEATURE_LEVEL來變成DX9級(jí)別跑, 最關(guān)鍵的是,DX11不支持XP,XP下跑DX11的例子直接就報(bào)找不到DLL。
因此,我覺得DX11里的DX9的兼容級(jí)別很蛋疼,毫無用處的東西。
龔敏敏的KlayGE引擎在某此升級(jí)時(shí)直接刪除了DX11以前的所有插件,只使用OpenGL來兼容XP, 可喜的是OpenGL 4.0沒有微軟那么霸道及商業(yè)化,可以為XP提供DX11級(jí)別的特性,這才是趨勢。