【问题标题】:Direct3d drawing 2d sprites. scaling issuesDirect3d 绘制 2d 精灵。缩放问题
【发布时间】:2011-08-21 13:56:35
【问题描述】:

我是使用 c++ 和 direct3d 编程的新手。我尝试使用精灵(LPD3DXSPRITE)在屏幕上绘制纹理(LPDIRECT3DTEXTURE9)。但是当我绘制一个纹理时,它似乎放大了它,一个 100x100 像素的纹理不是从坐标 (100, 100) 到 (200, 200) 而是从 (100, 100) 到 (227, 227) 绘制的,我测试了在这些坐标处绘制 1x1 px 块。我不知道为什么会这样... LPDIRECT3DDEVICE9 的创建对它有任何影响还是完全不同?

【问题讨论】:

  • 不看代码很难说。可能有很多原因。

标签: c++ sprite textures direct3d


【解决方案1】:

这似乎是一个扩展问题。当您第一次调用 CreateTextureFromFile() 时,该函数会导致纹理缩放到 2 的幂规则(例如 512、256)。要解决此问题,只需将 setScale 函数调用为 1,1 即可解决您的问题 :)

【讨论】: