2011-07-13 17 views
1

私は作っているゲームのためにBlenderに似た3dモデラーを書いています。ブレンダーのようなプログラムは非常に複雑なファイルタイプを輸出し、不必要なデータがたくさんあるので、私は自分のゲームのための簡単なエディタを書こうと思っていました。私が理解できないことは、ウィンドウ上の2次元投影からポイントをどのようにマップして、回転している世界で3次元世界でクリックしたのかということです。2dウィンドウポイントを3dポイントに変換する

誰かがこれを行う方法や方法についての良いチュートリアルを知っていれば、どんな助けもありがたいです。私はレイトレーシングを使うことができると知っていますが、それは私が考えると複雑になります。

+0

もちろん、Blender独自のファイル形式はかなり複雑です。しかし、特にBlenderの場合、慣習的なファイルの輸入者/輸出者を書くのは非常に簡単です。私はちょうど複雑な車輪を再発明するのではなく、これをやっています。 – datenwolf

答えて

2

マウスピッキングには主に2つの方法があります:

  1. 交差点テスト
  2. 色が

交差テストは、2つのより多くの人気があり、最も単純なレベルでは「撮影が関与ピッキング'レイを出して、それがどんな点を交差しているかを調べる。より敏感なピッキング(頂点上の点を選択するのに便利)を実現したい場合は、光線をポリトープで置き換えることもできます。

カラーピッキングでは、AA、ブレンド、シャドウなどを無効にし、オブジェクトにソリッドカラーを使用してシーンを再描画します。 glReadPixelsは、マウスのポイントで色を見つけるのに使用され、この色は、該当するオブジェクトをクリックしたかどうかを判断するために使用されます。

線ピッキング:

カラーピッキング:

0

必要な方法はgluUnProjectです。ウィンドウx、yと深さが必要です。

あなたのケースでは、Blenderの簡単なエクスポータを書く方がはるかに簡単かもしれないと思います。

関連する問題