D3DXCreateTextureFromFileEx创建纹理的悲催

如果美术图片的长宽使用的是是非2的N次方的大小,那么当我们使用D3DXCreateTextureFromFileEx创建纹理时,宽高都设置的是D3DX_DEFAULT,D3D会默认把纹理创建为2的N次方,这会导致纹理被放大或者被缩小,总之是被拉伸了。但是使用时又会按原始大小使用,相当于又把创建的纹理缩小或者放大。这会导致比如说图片模糊啊,坐标偏移啊。各种诡异事情发生。

此问题有两种解决方案:
1.让美工把图片修改为2的n次方大小;
2.宽高传参为D3DX_DEFAULT_NONPOW2。

其中,解决方案2可行性不高,因为这需要显卡的支持,我们不可能强迫客户去更换显卡,只能我们去兼容各种显卡。因此剩下的就只有自己改图了。

时间: 2024-09-14 07:07:00

D3DXCreateTextureFromFileEx创建纹理的悲催的相关文章

使用 PVRTC 压缩格式创建纹理(Creating textures in the PVRTC compression format)

使用 PVRTC 压缩格式创建纹理(Creating textures in the PVRTC compression format) 太阳火神的美丽人生 (http://blog.csdn.net/opengl_es) 本文遵循"署名-非商业用途-保持一致"创作公用协议 转载请保留此句:太阳火神的美丽人生 -  本博客专注于 敏捷开发及移动和物联设备研究:iOS.Android.Html5.Arduino.pcDuino,否则,出自本博客的文章拒绝转载或再转载,谢谢合作.    

使用 PVRTC 压缩格式创建纹理 Creating textures in the PVRTC compression format

转自:https://developer.apple.com/library/ios/qa/qa1611/_index.html Technical Q&A QA1611 Creating textures in the PVRTC compression format Q:  How do I create textures in the PVRTC compression format? A: How do I create textures in the PVRTC compression

实例:使用纹理对象创建Sprite对象

精灵类是Sprite,它的类图如下图所示: Sprite类直接继承了Node类,具有Node基本特征.此外,我们还可以看到Sprite类的派生类有:PhysicsSprite和Skin.PhysicsSprite是物理引擎精灵类,Skin是皮肤精灵类用于骨骼动画. 使用纹理Texture2D对象创建Sprite对象是使用createWithTexture函数实现的.我们会通过一个实例介绍纹理对象创建Sprite对象使用,这个实例如下面第一张图所示,其中地面上的草是放在背景中的,场景中的两棵树是从

《Unity着色器和屏幕特效开发秘笈》—— 1.7 创建渐变纹理来控制漫反射着色

1.7 创建渐变纹理来控制漫反射着色 在你的着色器编写工具箱里还有一个强大的工具--使用渐变纹理(ramp texture)来控制漫反射光照的颜色.这允许你突出表面的颜色,来模拟更多的反射光照或者其他高级的灯光设置.你可以在很多卡通风格的游戏中看到这种技术,通常在你想要更加艺术的画面效果,并且不需要很多真实物理模拟的光照模型时可以使用渐变纹理. 该技术在<军团要塞2>中流行起来,它也是由Valve提出来用于渲染他们的游戏角色.他们发表了一篇非常有名的白皮书,强烈建议你阅读一下. 这篇论文的白皮

《Unity着色器和屏幕特效开发秘笈》—— 2.6 在Unity编辑器中创建程序纹理贴图

2.6 在Unity编辑器中创建程序纹理贴图 有时你为了创建更多不一样的效果,需要动态创建纹理或者在运行时修改它们的像素值,这种情况通常被称为程序性的纹理效果.不同于你在图像编辑软件中手动制作一些新纹理,你需要在一个二维空间中创建一组像素然后将其应用到一个新的纹理上.再将创建的新纹理传入到着色器中,使它们可以在着色器中进行计算.这种技术在已有的纹理贴图上进行绘图是非常有用的,我们使用动态创建纹理贴图的方式可以制造一种玩家和游戏环境之间的互动效果.也可以用它来制作一些贴花的效果,或者创建一些可以在

coco2d-x 纹理研究

1.通常情况下用PVR格式的文件来进行图片显示的时候,在运行速度和内存消耗方面都要比PNG格式要快和小.一般情况下PVR消耗的内存比PNG消耗的内存小25%左右.PVR格式可以用ZWoptex导出.PVR是apple芯片能直接读取和显示的文件.   2.图片抗锯齿处理. 图片放大时的处理: 图片在放大的时候会出现锯齿.纹理类提供了setAntiAliasTexParameters()函数来处理抗锯齿.当图片放大的时候会使用相邻的四个像素进行混合运算.从而消除锯齿.但是会让图片产生模糊的感觉. 左

精灵的优化-使用纹理图集

游戏是一种很耗费资源的应用,特别是在移动设备中的游戏,性能优化是非常重要的   纹理图集(Texture Atlas)也称为精灵表(Sprite Sheet),它是把许多小的精灵图片组合到一张大图里面.使用纹理图集(或精灵表)有如下主要优点: 减少文件读取次数,读取一张图片比读取一堆小文件要快. 减少OpenGL ES绘制调用并且加速渲染. 减少内存消耗.OpenGL ES 1.1仅仅能够使用2的n次幂大小的图片(即宽度或者高度是2.4.8.64...).如果采用小图片OpenGL ES1.1会

利用Photoshop创建饼干文字效果

  第1步: 在Photoshop中新建一个大小为1000×400px,分辨率为72dpi的PSD文档,打开木板纹理 ,复制并粘贴到新的PSD文件中.按Ctrl + T(变换)调整其大小,直到你满意. 第2步: 接下来我们为饼干样式创建纹理.在Photoshop中打开饼干纹理素材 ,执行编辑 >定义图案 ,重命名为饼干纹理 ,点击确定,将饼干纹理定义为图案.关闭这个文件,继续第1步的工作. 第3步: 根据你自己的喜好选择一种字体,然后在文档中创建文字.这里我选用的字体是Arial Black 大

Photoshop创建水彩风格肖像笔刷

这次PS教程将会大家介绍Photoshop快速创建出一个水彩风格的肖像笔刷.先来看看我们最终做出的效果. 图00 图01 笔者在本例中使用了各式各样的水彩画笔,你可以在下面的画笔素材中选择自己喜欢的来使用. 第1步:创建纹理 在本例中,笔者使用的是Stock.Xchng网站中的免费图片(你也可以使用任何其他图片). 在Photoshop中打开图片.这一步我们需要增强图片的对比度.首先我们要对图片进行去色处理(Ctrl+Shift+U 或者 图像>调整>去色),然后增强图片对比度(图像>调