問題タブ [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.

0 投票する
2 に答える
382 参照

c# - ランダムに生成されたタイルでマウスピッキングを行うための最良の方法

私の主な問題は、生成されたタイルの位置を取得する方法や、マウスがどこにあるかを知る方法がわからないことです。マウスなどを検出するために衝突を使用する必要がありますか?コードを最適化し、位置などを簡単に取得できるようにするためにできることはありますか

テクスチャのロードなど、コードからいくつかのことを取り除いて、問題の一部ではないため、テクスチャを短くしました。

私のタイル生成コード

ブロックプロパティコード

0 投票する
1 に答える
5201 参照

opengl - OpenGL:255(0xFF)に切り上げられたピッキングのためにFrameBufferからピクセルを読み取ります

vao idをRGBAにパックし、それを使用してオフスクリーンバッファーにレンダリングし、バッファーオブジェクトを使用して読み取ろうとすることで、オブジェクトピッキングを実装しようとしています。

テクスチャとzバッファRenderBufferオブジェクトを作成し、それらをFrameBufferオブジェクトにアタッチすることで、オフスクリーンバッファにレンダリングしています。

また、レンダリングが完了した後にFrameBufferから読み取るピクセルバッファーオブジェクトを生成します。

次に、レンダリングループでバインドし、画面外のFrameBufferにレンダリングします。

オフスクリーンバッファにレンダリングするフラグメントシェーダーは非常に単純です。

これは、オフスクリーンレンダリング中に呼び出され、パッケージ化されたRGBAをフレームバッファから抽出する関数です。

問題は、画面外のフレームバッファからピクセルを読み取り、vao_idを取得することになっているこのコードの最後のビットが、次の奇妙な動作をすることです。

RGBAにパックされた(シェーダーを介して送信された)4バイトのいずれかが0以外の場合、そのバイトはもう一方の端で0xFFとして出力されます。

だから私が送るなら

私は取得します

または私が送る場合

私は取得します

... get_object_id()でピクセルを読み取ったとき。

テクスチャをバインドして通常のFrameBufferでクワッドにレンダリングすると、オフスクリーンレンダリングに渡す色がクワッドで正しく表示されます。ただし、get_object_id()によって読み取られたピクセルにより、送信されるすべてのバイトが255(0xFF)に切り上げられます。だから私の推測では、その最終的な機能に問題があります。

0 投票する
0 に答える
189 参照

webgl - ScenejsでIdMappingを介してピッキングを行うには?

次のような 1 つの巨大な Json Mesh があり、scenejs でレンダリングします。

idMapColors は「オブジェクト」ごとに一意であり、ID に変換して追加情報を提供できます。

画面では通常の色でメッシュをレンダリングし、2 番目のレンダリング パスでは idMapColors でメッシュをレンダリングします。特定の Point(Mouse Position) で 2 番目の FrameBuffer (idMapColors 用) の色の値を読み取る必要があります。

Scenejsでこれを行う方法は? idMapColors を Framebuffer にレンダリングすることはできますが、そのデータにアクセスするにはどうすればよいでしょうか?

https://github.com/xeolabs/scenejs/wiki/frameBufの wiki で、ピッキングがさらに作業中であることがわかりました。現時点でこれを行う可能性はありますか?

0 投票する
3 に答える
36774 参照

javascript - Threejs: ジオメトリの各頂点に異なる色を割り当てる

Three.js で IdMapping 経由でピッキングを行いたい

パフォーマンスの問題のため、次のように計算された巨大なジオメトリが 1 つしかありません。

ジオメトリの各頂点に異なる色を割り当てるにはどうすればよいですか?

0 投票する
2 に答える
605 参照

opengl-es - ピクセルの色が正確でない

現在、アプリケーションでカラーピッキングを使用しています。これは PC で動作しますが、さまざまなデバイスで動作させるのに問題があります。

これはおそらく、デバイスによってコンテキストの設定が異なるためです。たとえば、私の知る限り、PC の色は 888 に設定されていますが、デバイスのデフォルトは 565 です。

色データを適切に取得できるように、OpenGL で現在のピクセル/色形式を取得する方法があるかどうか疑問に思っていましたか?

これは、私が使用している機能で、PC 上で正常に動作します。

何か案は?

0 投票する
1 に答える
474 参照

c++ - OpenGL ピッキングでピック後に何も表示されない

ディスプレイ リストに 2 つの立方体があり、そのうちの 1 つを選択できるようにして、色などを変更できるようにします。

キューブをクリックすると、画面が黒くなり、何も起こりません。コンソールには、最も近いヒットの出力が表示されますが、画面が黒くなり、何も表示されません。

ここに私のcppファイルがあります:

これは一度クリックしない通常のビューです http://imageshack.us/photo/my-images/233/31536776.png/

その後、クリックすると、ピッキングが開始され、ピッキングが停止され、黒い画面が表示されます http://imageshack.us/photo/my-images/13/14180995.png/

ウィンドウを閉じて実行を停止すると、次の出力が得られますhttp://imageshack.us/photo/my-images/861/13486229.png/

0 投票する
2 に答える
1333 参照

c++ - OpenGLでのQtによるカラーピッキング

私はピッキングに関するチュートリアルを読んでいますが、そのカラーピッキングは最も人気があり最も単純な形式です。

例として雪だるまを使っていくつかのチュートリアルを試しましたが、それは私にはうまくいきません。プログラムを実行すると、何も描画されていない黒い画面が表示されます。数回クリックしても、ウィンドウを閉じたとき以外は何も起こりません。「雪だるまをクリックしていません」と表示されます。

何が悪いのかわからないのですが、誰かが私を助けてくれますか?

射影行列は次のように設定されます。

0 投票する
1 に答える
1724 参照

opengl - LWJGL 3D ピッキング

そのため、3D ピッキングの概念を理解しようとしてきましたが、実際に英語を話すビデオ ガイドや具体的なガイドが見つからないため、非常に難しいことがわかりました。LWJGL での 3D ピッキングの経験が豊富な人がいる場合は、すべての意味を行ごとに説明した例を教えてください。私がやろうとしているのは、画面の中心 (マウスがある場所ではない) から光線を放ち、通常の立方体 (6 QUADS でレンダリング) を検出することだけです。

0 投票する
2 に答える
583 参照

android - gles による 3D ピッキング

ユーザーがAndroid携帯の画面をタップすると、3Dピッキングをしようとしています。

時々機能しますが、画面を回転させると->光線が球に当たらない

私は今まで持っていたものと一緒にソースコードを貼り付けます:

a)クラスrenderer.java :

これらは GL OnSurfaceChanged 設定です:

...そして、これは私がシーンを描く方法です:

ここでの重要な注意: これはアークボール カメラの回転です。カメラは常に中心座標 (0,0,0) を見て回転し、500 単位後方に移動します (campos の初期化を参照)。

b) クラス"picker.java" :

}

ここでどこが間違っているのかわかりません.. :(助けてください!!

  • シーンを回転させない場合、ヒットがあります。
  • しかし..シーンを回転させた場合、NOヒット:(
0 投票する
1 に答える
665 参照

ios - IOS GLKit : Turing GLKViewDrawableMultisample4X はオブジェクトのピッキングを停止します

ピクセル カラー ピッキングを使用して、クリックした OpenGL オブジェクトを特定しています。

ビューで GLKViewDrawableMultisample4X をオンにするとすぐに、ピッキングが機能しなくなりますか?

画面に触れたときにこれをオンまたはオフにしようとしましたが、一度しか機能しません。

ピッキングコード: