当我在Directx 11中剪切精灵时,它显示了这个
******* ******* <= fixed
* * => * *
******* *******
这不是我想要的结果
我想要的是这个
******* *******
* * => * *
******* ******* <= fixed
PS。我正在使用XMMatrixOrthographicOffCenterLH设置相机
答案 0 :(得分:2)
剪切变换基本上如下:对于输入位置(p.x,p.y),将y坐标的一部分添加到x坐标。结果是:(p.x + s * p.y,p.y)。
考虑到这一点,你应该做yiding建议的。首先应用一个变换来对齐矩形,剪切并恢复第一个变换。
最简单的方法是向上翻译spriteHeight
并使用负剪切因子。所以转型将是:
Translate(0, -spriteHeight, 0) * shearx(-s) * Translate(0, spriteHeight, 0)