問題タブ [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.
javascript - Three.js [r65] : Raycaster 経由のピッキングが TrackballControls 経由の回転後に奇妙に動作する
ちょっとした文脈:
個別に選択可能にする必要があるかなり大量のオブジェクト (マージされていない) が取り込まれたシーンがあります。
これらの各オブジェクトは、次の構造を持つ Object3D です。
デフォルトおよび最初のレンダリングでは、child_1s のみが表示されます。
各 child_1 は、クォータニオンがカメラのクォータニオンに設定されている平面ジオメトリであるため、常にカメラに面しています (ビルボードと同様)。
カメラは次のように宣言されます。
そして、各 child_1 は次のようにシーンに挿入されます。
最初のレンダリング フレームではすべてが正常に機能します。次のピッキング関数が機能します。
ただし、(トラックボール) コントロールを使用して次のいずれかを回転させるとすぐに:
- 最初の lookAt() またはカメラ ([0,0,0])
- または別の座標セット (オブジェクトの中心など)
その後、ピッキングの動作が悪くなり始めます。
パンした後も、ズームイン/ズームアウトした後も同じことが当てはまります。
私の質問は、ローテーション中またはローテーション後に、どこかでマトリックスを更新する必要がありますか? 何か他のことをしますか?コントロールによって処理される回転/パンに従って、カメラが更新されなかったかのようです。
ここでフィドル:
http://jsfiddle.net/Hal9/TrfpU/
コントロール、ズーム、回転、パンをいじってみると、「青い四角」にカーソルを合わせても赤いヘルパーが表示されないことに気付くと思います。それらのほとんどはそうしますが、すべてではありません。
textures - Jogl、赤チャンネル u16 のみを作成しますが、「テクスチャ タイプとフォーマットの組み合わせが無効です」というメッセージが表示されます
そのため、IDによるピッキングを実装しようとしています。これは、すべての drawArray で異なる一意の ID が均一として設定され、テクスチャの赤いコンポーネントに保存されることを意味します。
16 ビット (65k 要素) で十分すぎるので、short を使用することにしました。uniform 変数は ui しかないことはわかっていますが、とにかく試してみることにしました。
別の質問hereも見つけました。ここで、回答にはショートパンツの小さな例が含まれています
ただし、ここでは、フレーム バッファと 2 つのテクスチャを初期化するコードを示します。
id-glTexImage2D で次のエラーが発生します
完全を期すために、ここでVS:
modelToWorldMatrix は現時点ではまだ考慮されていません
そしてここでFS:
ショーツの使用は可能ですか?
Jogl、OpenGL 3.3
編集:今はその部分を解決したようです
しかし、短いユニフォーム値を設定しようとするとエラーが発生するようになりました
エラー
-1(実際には1)ではないため、均一な場所は正しいようです...
では、どうすれば短編をアップロードできますか?
javascript - WebGL: フレームバッファを使用して複数のオブジェクトを選択する
WebGL でピッキングを実装しようとしています。多くのオブジェクト (約 500) があり、それぞれを選択できるようにしたいと考えています。そのために、各オブジェクトに一意の色を割り当てるループを実行しました (ピッキングの原則を参照)。
framecolors
次に、従来のバッファで使用して、各オブジェクトの赤の色合いが異なるかどうかを確認しました。出来た。
ここで、オブジェクトの元の色と、背景に赤の色合いを持つフレーム バッファーを使用したいと考えています。私はいくつかのコードを経験しましたが、少し混乱しています。
これが私がこれまでに試したことです。
選択する前に呼び出される関数:
後に呼び出される関数:
おそらく理解できると思いますが、私はフレームバッファにあまり慣れていません。フレームバッファについてたくさん読んだにもかかわらず、フレームバッファがどのように機能するのかよくわかりません。フレームバッファにリンクする方法がわかりませんframecolors
。方法はありますか?
ありがとう、R.
java - 別のIDEで動作しているときに、プログラムがEclipseでnullポインターになるのはなぜですか?
一部のコードを Eclipse で動作させるのに問題があります。これは、Processing の要素を含む Java コードであり、Processing IDE で動作しますが、Eclipse ではすぐにヌル ポインター例外が発生します。また、ピッキングと呼ばれる別のライブラリも含まれます。Eclipse で正常に動作する他の処理コードがあるため、ピッキング ライブラリと関係があると思われます。
Picking jar は私のビルド パス上にあり、スタック トレースに基づいて、問題なくアクセスされていると思います。
スタック トレースは次のとおりです。
コードは次のとおりです。
}
ご協力いただきありがとうございます。
ios - GLKMathUnproject : オブジェクトのタップを検出する
それで、GLKitにはGLKMathUnprojectがあり、3D空間でクリックした場所を見つけるために使用できるようです(素晴らしい)
ただし、動作させることはできません。いくつかの異なる例をコピーしましたが、0,0,0 でキューブをクリックしても検出されません。基本的に for next ループを実行し、レイがキューブに当たるかどうかを確認します。