【问题标题】:Sprite Shearing in DirectxDirectx 中的精灵剪切
【发布时间】:2012-12-06 14:43:01
【问题描述】:

当我在 Directx 11 中剪切精灵时,它显示了这个

*******     *******      <= fixed
*     *  =>  *     *
*******       *******

这不是我想要的结果

我想要的是这个

*******       *******
*     *  =>  *     *
*******     *******      <= fixed

附言。我正在使用 XMMatrixOrthographicOffCenterLH 来设置相机

【问题讨论】:

  • 不确定您使用什么 API 来应用剪切。一般来说,如果您要乘以某种变换矩阵,剪切矩阵通常保持中间固定,您随后需要应用移位来对齐顶部或底部边缘。

标签: c++ directx transform


【解决方案1】:

剪切变换基本上如下:对于输入位置 (p.x, p.y),将 y 坐标的一部分添加到 x 坐标。所以结果是:(p.x + s * p.y, p.y)。

考虑到这一点,你应该按照一丁的建议去做。首先应用一个对齐矩形的变换,进行剪切并恢复第一个变换。

最简单的方法是向上平移spriteHeight 并使用负剪切因子。所以转换将是:

Translate(0, -spriteHeight, 0) * shearx(-s) * Translate(0, spriteHeight, 0)

【讨论】:

    猜你喜欢
    • 2013-08-01
    • 1970-01-01
    • 2012-08-27
    • 2015-09-18
    • 1970-01-01
    • 2013-09-18
    • 2014-10-27
    • 2015-06-21
    • 2013-09-09
    相关资源
    最近更新 更多