問題タブ [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.
ios - iOS での OpenGL ES 2.0 オブジェクト ピッキング
OpenGL ES 2.0 (iOS) で描画されたオブジェクトを選択する最良の方法は何ですか?
ポイントを描いています。
xcode - 選択したレイを OpenGL の形状と交差させる
OpenGL でピッキングを実行しようとしていますが、1 つで 3 つの質問があります。
Unproject コマンドを 2 回使用します。1 回は 0 で、もう 1 回は 1 でニア/エンド プレーンとして使用します。ある記事では 0 と 1 は問題ないと言っていますが、別の記事では計算された深さを使用する必要があると言っています。どれを取ればいいですか?
次に、両方の結果を差し引くことができると仮定すると、光線が得られます (光線は「カメラ」から x、y、z として示される方向に向かっていますよね? x、y、z は絶対値または私の "カメラ」?
光線ができたので、どうすればそれを形状と交差させることができますか? ところで、既存の形状を一覧表示し、それらの座標と光線を計算するにはどうすればよいですか?
c++ - openGLピッキングの実装に行き詰まった
クリックした場所の世界座標を既に見つけることができ、これも深度バッファーでチェックします。これには、次のコードが使用されます。
x_cursor と y_cursor がカーソル座標です。
これまでのところ非常に良好で、x、y、z を印刷すると良好なようです。
しかし今...すべてのポリゴン/三角形を含むファイルを解析した後。すべてをopenGL DISPLAY Listsに入れました。したがって、私のプログラムは基本的にリストを呼び出して、それらを翻訳/回転するだけです。すべてのオブジェクトには固有の名前があります。だから私が保持しているのはリストだけで、すべてのオブジェクトのポイント/三角形を保持しているわけではありません
私の質問 :
クリックした場所の世界座標はわかりますが、どのオブジェクトがその位置に一致するかをどのように把握できますか!?
opengl - レイピッキング-ピッチとヨーから方向を取得
画面の中央から光線を当てて、オブジェクトとの衝突をチェックしようとしています。
レンダリングするとき、私はこれらの呼び出しを使用してカメラをセットアップします。
ただし、レイの作成に問題があります。これは私がこれまでに持っているコードです:
私の質問は、疑問符のスポットに何を入れるべきかということです。つまり、ピッチとロールから光線の方向を作成するにはどうすればよいですか?
c# - SkinnedModel での XNA トライアングル ピッキング
私のゲームでは、SkinnedModel パイプラインと AnimationPlayer を使用して、モデルの読み込みと表示を行っています。パイプラインから頂点とインデックスのリストを作成することで、三角形を使用したレイ ピッキングを実装しました。これは機能しますが、インデックスは静的であり、モデルの最初のポーズでのみ機能します (モデルが歩くとき、腕が前後に動くのを見ると、ピッキングではモデルが 1 つの位置でしか見えないため、十分ではありません)。
実行時に頂点とインデックスを取得することで、三角形を使用したレイ ピッキングに変更しました。これにより、AnimationPlayer から指定された boneTransforms によって頂点を変換できます。私が今抱えている問題は、頂点が収集されているときに頂点を変換する方法がよくわからないことです
以下にコードを掲載しますが、次の行と関係があると確信しています: Matrix worldMatrix = Orientation * Matrix.CreateTranslation(Position); その後、特定の頂点が取得されたとき: vert = Vector3.Transform(vert, boneTransforms[mesh.ParentBone.Index] * worldMatrix);
*Matrix.CreateTranslation(Position) を省略すると、頂点が近くなりますが、正しくないことがわかりました。私は 3D 空間と変換を扱うことにあまり熟練していないので、助けていただければ幸いです。
コード:
//クラスのモデルから頂点を取得するための関数は次のとおりです
// ピック レイを取得する関数は次のとおりです
//交差をチェックするための 2 つの関数を次に示します。
//そして最後に、それが役立つ場合は、すべてを実現する更新のセクション
opengl - 3Dピッキングlwjgl
何らかの理由で完全に正しく機能しない3Dピッキングを実行するためのコードをいくつか作成しました。(ご存知のとおり、LWJGLを使用しています。)
コードは次のようになります。
何が悪いのかわかりません。光線が発射され、削除されたものをヒットしますが、光線の結果は非常に奇妙で、クリックしたものが削除されることもあれば、近くにないものが削除されることもあります。をクリックすると、何も削除されない場合があります。
編集:
さて、私はエラーを探し続け、光線をデバッグすることによって(それが通過する場所に小さな点を描くことによって)、私が送信している光線に明らかに何かが間違っていることを知ることができます...それは世界の中心近くに起源がありますカメラをどこに向けても、常に同じ位置に撮影します。
私の最初の考えは、viewMatrixの計算方法にエラーがある可能性があるということです(lwjglのglulookatメソッドからviewmatrixを取得することはできないため、自分で作成する必要があり、問題がどこにあるかを推測します) ..。。
Edit2:
これは私が現在それを計算する方法です:
誰かがこれが間違っているか正しいか、そしてそれが間違っているかどうかを確認できれば、非常に素晴らしいでしょう。それを行う正しい方法を私に提供してください...私はこれに関する多くのスレッドとドキュメントを読みましたが、頭を包むために継ぎ合わせることができません...
opengl - openGL でのカラーピッキング
カラーピッキングを実装しようとしてきましたが、うまく機能しません。問題は、最初にピッキングに使用されるさまざまな色でモデルをペイントする場合 (つまり、各三角形に彼の ID カラーである異なる色を与える)、正常に動作することです (テクスチャなどなしで..)、しかしモデルのテクスチャを配置し、マウスをクリックすると、各三角形に異なる色を付けてモデルをペイントすると、機能しません..コードは次のとおりです。
private void drawTriangle(GL_Triangle t, int i, boolean inPickingMode) {
ご覧のとおり、マウスがクリックされるたびに呼び出される選択関数があります。次に、照明とテクスチャを無効にしてから、シーンを固有の色で再度レンダリングし、ピクセル バッファを読み取り、次の呼び出しを行います。 : GL11.glReadPixels(x, y, 1, 1, GL11.GL_RGB, GL11.GL_UNSIGNED_BYTE, pixelbuff); 私に間違った値を与えます..そしてそれは私を狂わせます!ところで、メインのレンダリング関数は render(mesh m, boolean inPickingMode) です。ご覧のとおり、マウスをクリックする前にモデルにテクスチャがあることもわかります..
javascript - JavaScript ifパラメータ、画像の透明度を無視
パラメータをオプションにする必要があります。それが理にかなっている場合。
両方の関数が98%同じであることに気付いた場合は、この違いをパラメーターに変換する必要があります。クリックするだけではありません。
getElement(x, y, class)
ここで、新しいパラメータクラスは、コードで//ここにマークしたものを変更します
私は次のようなことを考えていました
getElement(x, y, "title");
ちなみに、この子犬の行動を見たいのなら、私はhttp://untitled.servegame.comにいます。
ありがとう!
c# - マウス XNA 4.0 C# で 3D モデルを制御する
私は 3D 卓球ゲームを作成しており、ラケット (Maya 2012 で作成) はマウスで制御されています。ラケットをコントロールするためにピッキング方法を使用しましたが、カーソルはラケット上になく、ラケットから約 10 cm 離れています。
ラケット クラスを以下に示します。move() メソッドがピッキングを行います。
ラケットにカーソルを合わせる際の助けをいただければ幸いです。ありがとう!!!:)