如果美術圖片的長寬使用的是是非2的N次方的大小,那么當我們使用D3DXCreateTextureFromFileEx創建紋理時,寬高都設置的是D3DX_DEFAULT,D3D會默認把紋理創建為2的N次方,這會導致紋理被放大或者被縮小,總之是被拉伸了。但是使用時又會按原始大小使用,相當于又把創建的紋理縮小或者放大。這會導致比如說圖片模糊啊,坐標偏移啊。各種詭異事情發生。
此問題有兩種解決方案:
1.讓美工把圖片修改為2的n次方大小;
2.寬高傳參為D3DX_DEFAULT_NONPOW2。
其中,解決方案2可行性不高,因為這需要顯卡的支持,我們不可能強迫客戶去更換顯卡,只能我們去兼容各種顯卡。因此剩下的就只有自己改圖了。