問題タブ [picking]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
math - 逆透視投影
私は使用しています
画面空間座標をワールド空間座標に変換します。私はそれを仮定しました
遠平面上の点に変換されますが、
近い平面上の点に変換し、線を接続すると、線と交差する視錐台内のすべてのオブジェクトを照会できます。変換後、結果のポイントをそれぞれの .w コンポーネントで割ります。これはファー プレーンでは機能しますが、ニア プレーン上のポイントはどういうわけかワールド空間の原点に変換されます。
これは、逆投影に入力している 1 の w コンポーネントに関係していると思います。通常、投影後ではなく投影前の 1 であり、逆投影を行っているためです。私は何を間違っていますか?
python - Pyglet による OpenGL ピッキング
Pyglet の OpenGL ラッパーを使用してピッキングを実装しようとしていますが、C チュートリアルを Python に変換するのに問題があります。具体的には下の部分。
glSelectBuffer と glPickMatrix が機能するように、GLuint または GLint の宣言配列を有効にする方法がわかりません。PythonでPygletを使用してこれを行う方法を知っている人はいますか? ありがとう。
c++ - OpenGL 3D 選択
特定の体の部分をクリックすると特定のアクションを実行する 3D ロボットを作成しようとしています。x-plane パーツをクリックすると、ヒットが登録されますが、他の場所では登録されないという点で、ピッキングの実装に (ある程度) 成功しました。つまり、深さを登録していません。四角い頭をクリックした場合、頭の前部 (自分に向いている) をクリックすることによってのみヒットを登録できます。明らかに、私はピッキングと選択を完全には理解しておらず、2D 選択について知っていることをずさんに 3D に転記しようとしています (私の先生は岩のように助けてくれます)。誰でも私を助けることができますか?関連する機能はこちら。
java - Java 2dでのピッキング
オブジェクト/シェイプごとに contains(MousePoint) を呼び出してピッキングを実装した時点で、java2d を使用して単純なグラフを描画しています。これは機能しますが、線形にスケーリングします。
java2dでピッキングするためのより効率的な方法はありますか?
math - レイピッキングの実装
DirectXとOpenGLを使用するレンダラーと3Dシーンがあります。ビューポートとウィンドウは同じサイズです。
プラットフォームに依存しない方法で、指定されたマウス座標xおよびyのピッキングを実装するにはどうすればよいですか?
opengl - OpenGLシェーディング言語によるピッキング
シェーダーを使用してレンダリングされた情報を選択するための最良の方法を見つけようとしています。ウィンドウマネージャバッファ(ウィンドウ)は、レンダリングの出力に使用されます。ユーザーイベントでは、レンダリングされたジオメトリを選択する必要があります。gluPickの使用は簡単ですが、シェーダーのみを使用して選択しようとしています。
シェーダーの柔軟性は、正しい解決策を見つけるのに役立ちません。私は次の解決策を見つけました:
- システムが提供するバッファを使用したレンダリング(実際には色を使用)。glScissorを使用して特定の領域でのレンダリングを制限し、glReadPixelsを使用して色をフェッチし、ジオメトリ識別子でマップします
- 別のフレームバッファオブジェクトを使用してレンダリングします。レンダーバッファフォーマットを定義する必要があります。たぶん、名前を付けるために単純な整数を使用できますか?
- レンダリングとピッキングの両方で、フレームバッファオブジェクトを使用してレンダリングします。レンダリングされた名前を含む追加のrenderbufferオブジェクト。
ウィンドウバッファを変更せず、ジオメトリ名を指定するカスタムの方法を定義できるため、2番目のソリューションが最適のようです。
なにか提案を?
PS:
フラグメントシェーダーでは、フラグメントデータを定義するためにvec4の配列を宣言しているので、サイズの整数の内部形式で格納されたRコンポーネントのみを持つレンダリングバッファーを保持するフレームバッファーを設定するにはどうすればよいですか?
フラグメントシェーダーの出力変数を特定のアタッチされたレンダーバッファーにリンクすることは可能ですか?
opengl - glPushName+glPopNameスタックのオーバーフローとアンダーフロー
glPushNameとglPopNameの使い方を教えてもらえますか。glLoadNameの代わりにそれらを使用するのが好きですが、常にGL_STACK_OVERFLOWおよびGL_STACK_UNDERFLOWエラーが発生します。(最初に、次にオーバーフローします)。
サンプルコードも役に立ちます。
注1:私のRendering / selection_redneringコードは、複数のglBegin(...)/ glEnd()ブロックで構成されています(これが問題である場合は、さまざまな回転と変換が含まれます)。
注2:GLの選択/ピッキングが非推奨になっていることは知っていますが、少し前にOpenGL2.1で開発されたアプリケーション内に実装する必要があります。
opengl - オブジェクトが OpenGL で画面上に描画されるタイミングをどのように判断しますか?
私はOpenGLに非常に慣れていません。画面にフライング 3D テキストを表示するプログラムを作成しています。特定のテキスト文字列が画面に表示 (描画) され、ユーザーに表示されるタイミングを知る必要があります。プログラムは、表示されるテキスト文字列を識別する必要があります。(注: 私の問題はテキストを扱っていますが、任意の OpenGL オブジェクトに一般化できます)。
最初は、OpenGL のピッキング メカニズムを使用できると考え始めましたが、これまでのところ、選択領域が何らかのユーザー インタラクションに重点を置いている例しか見たことがありません。ウィンドウ領域全体に表示されているオブジェクトを知りたいです。これは、私が間違った方向に進んでいると思うように導きます... 何か足りないのでしょうか?
どんな提案でも大歓迎です。
c# - C#を使用して、OpenGlでオブジェクトを選択する
私はC#(TaoFrame作業を使用)を使用してopenglで作業しています。問題は、画面に2つのオブジェクト(たとえば長方形)を描画したいということです。私の質問の主な目標は、マウスボタンを押して選択できるようにする方法です1 つのオブジェクトを動かします。
基本的に、すべてのオブジェクトを1つ選択する方法を知る必要があります:
私のプロジェクトに関する情報:
私はtaoframe作業ライブラリを使用しています.openglビューポートはメインコントロールウィンドウの小さなパネルであり、フルスクリーンではありません.
この関数は、メインの opengl 描画関数です。
}
この関数はマウス ハンドラです。
実際の Vodo の選択はここで行われています。
この関数はProcessHitsなので、オブジェクトの名前を取得できます
1-ProcessHits 関数の Result 値は常に 1 で、object1 よりも優先されるため、スペースを押すとオブジェクト 1 が表示されますが、選択するものは何もありません。コードが不足していますか? .
2-select 関数のヒット値は常に 2 ですか? どうしてか分かりません ?
iphone - iPhoneでのOpenGLESカラーピッキング
iPhoneで3Dを調べていますが、デバイスで3Dキューブを取得できましたが、一方の顔に触れると特定のイベントが発生し、もう一方の顔に別のイベントが発生するなどのインタラクティブ機能を追加したいと思います。レイピッキングは避けたいと思います。これにより、アプリに必要のない複雑さが増すからです。
かなりの数のカラーピッキングチュートリアルを読みましたが、iPhone固有のチュートリアルやサンプルコードはWebのどこにもありません。
私の主な問題は、固有の色のオブジェクトをバックバッファーに描画し、テクスチャオブジェクトをフロントバッファーに描画することです。ユーザーに固有の色のオブジェクトを表示することはありませんが、バックバッファーからタッチされたピクセルの色を検出します。
だから私の質問は、Objective-Cチュートリアルの方向に私を向けたり、サンプルコードを投稿したりできる人はいますか?
どんな助けやアドバイスも大歓迎です。