如果美術(shù)圖片的長(zhǎng)寬使用的是是非2的N次方的大小,那么當(dāng)我們使用D3DXCreateTextureFromFileEx創(chuàng)建紋理時(shí),寬高都設(shè)置的是D3DX_DEFAULT,D3D會(huì)默認(rèn)把紋理創(chuàng)建為2的N次方,這會(huì)導(dǎo)致紋理被放大或者被縮小,總之是被拉伸了。但是使用時(shí)又會(huì)按原始大小使用,相當(dāng)于又把創(chuàng)建的紋理縮小或者放大。這會(huì)導(dǎo)致比如說圖片模糊啊,坐標(biāo)偏移啊。各種詭異事情發(fā)生。
此問題有兩種解決方案:
1.讓美工把圖片修改為2的n次方大??;
2.寬高傳參為D3DX_DEFAULT_NONPOW2。
其中,解決方案2可行性不高,因?yàn)檫@需要顯卡的支持,我們不可能強(qiáng)迫客戶去更換顯卡,只能我們?nèi)ゼ嫒莞鞣N顯卡。因此剩下的就只有自己改圖了。