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 に答える