首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 网络游戏 >

小弟我的结论:DX9不支持非2的次幂尺寸纹理,还得显卡说了算

2012-04-20 
我的结论:DX9不支持非2的次幂尺寸纹理,还得显卡说了算我的观点基于以下几点:若显卡不支持非2的次幂纹理,则

我的结论:DX9不支持非2的次幂尺寸纹理,还得显卡说了算
我的观点基于以下几点:
若显卡不支持非2的次幂纹理,则:
1:若使用IDirect3DDevice9::CreateTexture创建非2的次幂尺寸图像将失败
2:若使用D3DXCreateTexture创建非2的次幂图像将被扩充成2的次幂
3:若使用D3DXCreateTextureFromFileInMemoryEx创建非2的次幂图像将被扩充成2的次幂(就算用了D3DX_DEFAULT_NONPOW2也没用)

只有一个函数比较特殊:D3DXCreateTextureFromFileEx,用它创建图像可以完美支持非2的次幂图像,但实际游戏中很少用这个函数,故总体上,创建一个非2的次幂纹理,还是显卡说了算,我没找到除了D3DXCreateTextureFromFileEx之外,D3D会帮你做兼容的函数。
对于2D游戏来讲,将纹理扩充成2的次幂将是一个致命打击,特别是对于使用商业资源进行做游戏的人来讲尤其如此。
难怪windows游戏编程大师技巧的作者也认为,用D3D做2D很麻烦。
我想,有用D3D做过2D游戏的朋友,应该会有同感。

求高手指正缺漏。


[解决办法]
哦!明白~~~~~~

热点排行