問題タブ [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 投票する
0 に答える
1000 参照

javascript - Three.js [r65] : Raycaster 経由のピッキングが TrackballControls 経由の回転後に奇妙に動作する

ちょっとした文脈:

個別に選択可能にする必要があるかなり大量のオブジェクト (マージされていない) が取り込まれたシーンがあります。

これらの各オブジェクトは、次の構造を持つ Object3D です。

デフォルトおよび最初のレンダリングでは、child_1s のみが表示されます。

各 child_1 は、クォータニオンがカメラのクォータニオンに設定されている平面ジオメトリであるため、常にカメラに面しています (ビルボードと同様)。

カメラは次のように宣言されます。

そして、各 child_1 は次のようにシーンに挿入されます。

最初のレンダリング フレームではすべてが正常に機能します。次のピッキング関数が機能します。

ただし、(トラックボール) コントロールを使用して次のいずれかを回転させるとすぐに:

  • 最初の lookAt() またはカメラ ([0,0,0])
  • または別の座標セット (オブジェクトの中心など)

その後、ピッキングの動作が悪くなり始めます。

パンした後も、ズームイン/ズームアウトした後も同じことが当てはまります。

私の質問は、ローテーション中またはローテーション後に、どこかでマトリックスを更新する必要がありますか? 何か他のことをしますか?コントロールによって処理される回転/パンに従って、カメラが更新されなかったかのようです。

ここでフィドル:

http://jsfiddle.net/Hal9/TrfpU/

コントロール、ズーム、回転、パンをいじってみると、「青い四角」にカーソルを合わせても赤いヘルパーが表示されないことに気付くと思います。それらのほとんどはそうしますが、すべてではありません。

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

textures - Jogl、赤チャンネル u16 のみを作成しますが、「テクスチャ タイプとフォーマットの組み合わせが無効です」というメッセージが表示されます

そのため、IDによるピッキングを実装しようとしています。これは、すべての drawArray で異なる一意の ID が均一として設定され、テクスチャの赤いコンポーネントに保存されることを意味します。

16 ビット (65k 要素) で十分すぎるので、short を使用することにしました。uniform 変数は ui しかないことはわかっていますが、とにかく試してみることにしました。

別の質問hereも見つけました。ここで、回答にはショートパンツの小さな例が含まれています

ただし、ここでは、フレーム バッファと 2 つのテクスチャを初期化するコードを示します。

id-glTexImage2D で次のエラーが発生します

完全を期すために、ここでVS:

modelToWorldMatrix は現時点ではまだ考慮されていません

そしてここでFS:

ショーツの使用は可能ですか?

Jogl、OpenGL 3.3

編集:今はその部分を解決したようです

しかし、短いユニフォーム値を設定しようとするとエラーが発生するようになりました

エラー

-1(実際には1)ではないため、均一な場所は正しいようです...

では、どうすれば短編をアップロードできますか?

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

javascript - WebGL: フレームバッファを使用して複数のオブジェクトを選択する

WebGL でピッキングを実装しようとしています。多くのオブジェクト (約 500) があり、それぞれを選択できるようにしたいと考えています。そのために、各オブジェクトに一意の色を割り当てるループを実行しました (ピッキングの原則を参照)。

framecolors次に、従来のバッファで使用して、各オブジェクトの赤の色合いが異なるかどうかを確認しました。出来た。

ここで、オブジェクトの元の色と、背景に赤の色合いを持つフレーム バッファーを使用したいと考えています。私はいくつかのコードを経験しましたが、少し混乱しています。

これが私がこれまでに試したことです。

選択する前に呼び出される関数:

後に呼び出される関数:

おそらく理解できると思いますが、私はフレームバッファにあまり慣れていません。フレームバッファについてたくさん読んだにもかかわらず、フレームバッファがどのように機能するのかよくわかりません。フレームバッファにリンクする方法がわかりませんframecolors。方法はありますか?

ありがとう、R.

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

java - 別のIDEで動作しているときに、プログラムがEclipseでnullポインターになるのはなぜですか?

一部のコードを Eclipse で動作させるのに問題があります。これは、Processing の要素を含む Java コードであり、Processing IDE で動作しますが、Eclipse ではすぐにヌル ポインター例外が発生します。また、ピッキングと呼ばれる別のライブラリも含まれます。Eclipse で正常に動作する他の処理コードがあるため、ピッキング ライブラリと関係があると思われます。

Picking jar は私のビルド パス上にあり、スタック トレースに基づいて、問題なくアクセスされていると思います。

スタック トレースは次のとおりです。

コードは次のとおりです。

}

ご協力いただきありがとうございます。

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

ios - GLKMathUnproject : オブジェクトのタップを検出する

それで、GLKitにはGLKMathUnprojectがあり、3D空間でクリックした場所を見つけるために使用できるようです(素晴らしい)

ただし、動作させることはできません。いくつかの異なる例をコピーしましたが、0,0,0 でキューブをクリックしても検出されません。基本的に for next ループを実行し、レイがキューブに当たるかどうかを確認します。