3

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

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

这不是我想要的结果

我想要的是这个

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

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

4

1 回答 1

2

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

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

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

Translate(0, -spriteHeight, 0) * shearx(-s) * Translate(0, spriteHeight, 0)
于 2012-12-19T21:00:43.723 回答