私は、ユーザーが3D空間を介してカメラをナビゲートするためのいくつかの「ナビゲーションモード」を実装したい単純なソリッドモデリングアプリケーションを使用しています。それらの1つは、SketchUp、Blenderなどで使用されるユビキタスな「ドラッグ&パン/回転」です。私はまた、私の特定のアプリケーションに関連性の高いものを実装したいと思っています。具体的には、モデル化されているオブジェクト(建物)の上の「リング」上にカメラを浮かべて、モデルの中心を常に見ているモードを実装したいと思います。このようにして、ユーザーはオブジェクトの周りを簡単に「サークル」することができます。OpenGLレンダリングを1つのビューに結合する
私がしたいのは、建物を私のビューにレンダリングし、ビューの右上にトーラスを表示し、トーラスの小さな球でカメラの位置を表します。トーラスには北矢印があり、ユーザは球をドラッグしてモデルオブジェクトの周りにカメラをドラッグします。球を動かすと、カメラの位置が変わり、シーンが再描画されます。
私は次のようにします:「メインビュー」すなわち建物をレンダリングします。トーラスと球体を別々の視点設定と照明でレンダリングしてオフスクリーンバッファーにし、そこから私のメインビューにblitします。
しかし、私はヒットテストに着きます。私はユーザーが球またはトーラスをクリックしたかどうかを検出したい。私はOpenGLピッキング(これは難題です:/)の理解から、すべてのピッキング方法は1つの「シーン」での選択にのみ適用されます。それとは別に、私はまだ建物モデルの「通常の」ピッキング操作を検出したいと思います。
だから、私の質問:私は(アルファがトーラスのセンターのよう&透明度をブレンドして)別のOpenGLのコンテキストにオフスクリーンバッファとブリットにレンダリングするにはどうすればよい
- ?
- 説明したシナリオでヒットテストを行うにはどうすればよいですか?
おかげで、取得するには、ここにあなたが言及した記事へのリンクがあります:http://stackoverflow.com/questions/829786/ways -to-実装-操作・ハンドル・イン・3Dビュー/ 830909#830909を。私はそれが今の私の考えは、3Dトーラスをレンダリングすることであっても、ここで繰り返すことは十分に便利だと思います:) – Roel