私は駆動されたX/Y座標を保存して、座標をメートルに変換し、各点に1280を加えて(2560x2560の画像にうまく収まるように)関数を使用して、いくつかの種類のレースラインが得られます。しかし、いったんポリゴンを生成してイメージとして保存すると、それは何とか垂直に反転します。画像を垂直方向に反転すると、トラックのビットマップに完全に一致します。私はこれがDirectXの内部でY軸が反転しているためだと言われました。 DirectXで反転したY軸を使用するのはなぜですか?DirectXで反転されたY軸を使用するのはなぜですか?
0
A
答えて
5
質問:DirectXはY軸を反転しているのでしょうか、それとも画像ですか?
DirectXは、変換が適用されていない場合、X軸が右を指し、Y軸が上を指す3D/4D座標系を使用します。これは、画面(Y軸が下を指す)が画像を処理しなければならない最後のインスタンスであるためです。それ以前のすべてのステップは、上向きのY軸を持つ座標系を使用します。 Direct3Dは3D世界のために設計されているので、世界のように位置合わせされ、数学の座標系のような座標系は、プログラマや設計者にとってはるかに便利です。 3Dモデルを作成するとします。 Y軸が下向きになるようにデザインすれば、それは奇妙なことではないでしょうか?
パースペクティブなどが可能な変換がない場合、同じ座標系を使用します。 Z軸を無視すると、左上の角は(-1 | 1)、右下の角は(1、-1)です。これは、例えば、数学最後に、この座標系は、左上隅が(0 | 0)になり、右下隅が(ResolutionX | ResolutionY)になるビューポートで変換されます。
したがって、Y軸が上を向く理由は、Direct3Dの主な目的は画面の物理的属性とは独立した便利な方法で世界を記述することである。
関連する問題
- 1. Nexus Sではz軸の回転がy軸に反映されるのはなぜですか?
- 2. PyQtGraphでY軸を反転する
- 3. meshgridを使用しているときにy軸が反転しているのはなぜですか?
- 4. ハイチャートのY軸反転
- 5. X軸またはY軸に描画可能なものを反転する
- 6. Matplotlibのx軸とy軸を反転する
- 7. ExcelのカスタムチャートでX軸とY軸を反転
- 8. ウィンドウ/ビューポートを使ってQPainterのy軸を反転する
- 9. Y軸の動きをどのように反転させるのですか?
- 10. DirectXでViewトランスフォームを反転する
- 11. DirectXでXYZ軸のオブジェクトを回転させる方法は?
- 12. ggplotのgeom_tileでY軸を反転させるにはどうすればよいですか?
- 13. なぜBinaryReader.ReadUInt32()はビットパターンを反転させるのですか?
- 14. 3軸に沿った回転と、各軸の回転とを別々にするのはなぜですか?
- 15. バープロット軸を反転する
- 16. なぜ私のY座標が逆転したのですか?
- 17. Flot y軸ラベルが軸上に表示されるのはなぜですか? JQM
- 18. IE11でY軸スクロールバーを表示するのはなぜですか?
- 19. y軸の全身回転
- 20. x軸とy軸の周りのポリゴンを回転する
- 21. Processing.JSでは、y軸についてイメージを回転させるにはどうすればよいですか?
- 22. Seaborn BarPlot反転y軸とグラフ領域の下部にx軸を維持
- 23. D3軸コマンドを使用してX軸とY軸を正しく転位する方法は?
- 24. ほとんどの人がxnaのアップベクトルとしてy軸を使用するのはなぜですか?
- 25. matplotlib:なぜ私のY軸が歪んでいますか?
- 26. ユニティヘッドY軸回転クランプ
- 27. AVMutableComposition y軸が逆転
- 28. Y軸の反射角度
- 29. Pixi.jsで回転した後のY軸に沿ったスケーリング
- 30. Chart.js v2で2つのY軸を使用するには?
ありがとうございました。 –
デフォルトの規約としてはこのようなものはありません。軸があなたが最も好きなところに向くようにします。 D3DXのヘルパー関数は、行列を作成するのに役立つ「右手式のorhtorgonal投影行列」のようにあります。行列はあなたの座標系を "暗示しています"。そして、頂点シェーダで行うのはあなた次第です。 –
従来のDirectX9固定機能パイプラインでは、すべてのビュー座標が左利きの行主要座標用に設定されていると仮定しました。プログラマブルなパイプラインでは、必要なコンベンションを設定するのはあなた次第ですが、コンテンツ、コード、シェーダーと一貫していなければなりません。歴史的に、DirectXはDXUTが使用する左手の行優先座標を使用します。 [DirectX Tool Kit](http://go.microsoft.com/fwlink/?LinkId=248929)のXNA Game StudioおよびSimpleMathは、右手の行優先座標を使用します。 OpenGLは歴史的に、右利きの列主体を使います。 –