当我在 Directx 11 中剪切 Sprite 时,它显示了这一点
******* ******* <= fixed
* * => * *
******* *******
这不是我想要的结果
我想要的是这个
******* *******
* * => * *
******* ******* <= fixed
附注。我正在使用 XMMatrixOrthographicOffCenterLH 来设置相机
最佳答案
剪切变换基本上如下:对于输入位置 (p.x, p.y),将 y 坐标的一部分添加到 x 坐标。所以结果是:(p.x + s * p.y, p.y)。
考虑到这一点,你应该按照一丁的建议去做。首先应用对齐矩形的变换,进行剪切并还原第一个变换。
最简单的方法是通过 spriteHeight
向上平移并使用负剪切因子。所以转换将是:
Translate(0, -spriteHeight, 0) * shearx(-s) * Translate(0, spriteHeight, 0)
关于c++ - Directx 中的 Sprite 剪切,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/13949132/