我的结论:DX9不支持非2的次幂尺寸纹理,还得显卡说了算
时间:2011-10-30
来源:互联网
我的观点基于以下几点:
若显卡不支持非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游戏的朋友,应该会有同感。
求高手指正缺漏。
若显卡不支持非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游戏的朋友,应该会有同感。
求高手指正缺漏。
作者: weiwuyuan 发布时间: 2011-10-30
mark一下,同求高手
作者: ITvsET 发布时间: 2011-10-31
相关阅读 更多
热门阅读
-
office 2019专业增强版最新2021版激活秘钥/序列号/激活码推荐 附激活工具
阅读:74
-
如何安装mysql8.0
阅读:31
-
Word快速设置标题样式步骤详解
阅读:28
-
20+道必知必会的Vue面试题(附答案解析)
阅读:37
-
HTML如何制作表单
阅读:22
-
百词斩可以改天数吗?当然可以,4个步骤轻松修改天数!
阅读:31
-
ET文件格式和XLS格式文件之间如何转化?
阅读:24
-
react和vue的区别及优缺点是什么
阅读:121
-
支付宝人脸识别如何关闭?
阅读:21
-
腾讯微云怎么修改照片或视频备份路径?
阅读:28