0
OpenGLでピッキングを実行するには、gluUnprojectで受け取ったベクトルをシェイプと交差させる必要があります。 しかし、図形が回転して翻訳されているので、どうすれば新しい座標を取得できますか?OpenGLで移動/回転した図形の座標を取得する方法は?
OpenGLでピッキングを実行するには、gluUnprojectで受け取ったベクトルをシェイプと交差させる必要があります。 しかし、図形が回転して翻訳されているので、どうすれば新しい座標を取得できますか?OpenGLで移動/回転した図形の座標を取得する方法は?
これは簡単なことではありません。シェイプをレイと交差させる必要があります。あなたはいくつかのスペースでこれを行うことができます:
私はレイが世界の空間にいると仮定します。そうであれば、ObjectToWorld行列の逆行列を使って光線をオブジェクト空間に変換できます(法線を正しく変換するよう注意してください)。あるいは、あなたのオブジェクトをViewSpaceに変換してそこで計算します。
具体的にお答えください。私たちは解析的な形やメッシュについて話していますか?
私には正方形(0-0 - > 1000-1000)があり、それを翻訳して回転します。私のカメラは動きません。私は正方形をクリックして、私に線を与える結果をアンプロジェクトします。交差点の座標を知りたい。私はすでに交差点を行うコードを持っていますが、ViewSpaceでオブジェクトの座標を変換するコードがありません。どんな助けもありがたい。ありがとうございました ! –
カメラが動いていない場合、私はあなたのビュースペースマトリックスを設定していないと仮定しているので、それはアイデンティティマトリックスですか? その場合、最も簡単なのはおそらくあなたの広場を世界の空間に変換することでしょう。あなたのビュー行列がアイデンティティの場合、あなたのレイはすでにワールド空間にあるはずです。あなたはすでにこの変換をしているはずです。それは四角形をレンダリングするのと同じです。 –
座標フレームに「スペース」という単語を使用しないでください。ベクトル計算について話すとき、それはまったく別のものです... – ltjax