3

直交投影で平面 (z=0) にあるいくつかのクワッドをレンダリングしようとしています。正射影行列の公式を読んだ後、射影行列を設定しましたか? しかし、私は何か間違ったことをしたと思います。

私の最初の試みは次のマトリックスでした。W と H は、目的のビューポートの幅と高さで、次の例では 640x640 です。

 ˹ 2/w 0   0  0 ˺
 | 0   2/h 0  0 |
 | 0   0   0  0 |
 ˻ 0   0   0  1 ˼

左上隅が (0,0,0) にあるクワッドをレンダリングしたときに得られたものは次のとおりです。

ダメ

垂直に反転したため、マトリックスを次のように変更しました。

 ˹ 2/w  0   0  0 ˺
 | 0   -2/h 0  0 |
 | 0    0   0  0 |
 ˻ 0    0   0  1 ˼

私が得ました :

より良い


その後、クワッドを動かそうとしましたが、結果は予想外でした。3D 空間の X と Y をビューポートの X と Y に合わせたかったのです。ただし、クワッドを X 軸に沿って移動すると、次のようになります。

痛い


Y 軸に沿って移動すると、同様に予想外の結果が得られました。

痛い痛い


3D 空間の X 軸と Y 軸がビューポートの軸と一致するように行列を修正するにはどうすればよいですか? よろしくお願いします。

4

2 に答える 2

1

この射影行列は実際には正しいです。問題はクアッド翻訳コードにありました。めちゃくちゃでごめんなさい。

于 2012-02-05T19:06:09.160 に答える