1

threexで提供されている優れたコードを使用して、シーン内のさまざまなオブジェクトをクリックしてキャプチャし、それらを選択できるようにしています。これは問題なく動作します。

ユーザーが選択ボックスを描画できる(機能する)選択機能を拡張したいと思います。この選択でレンダリングされるシーン内のすべてのオブジェクトを検出できます。

threex / threeを見ると、一般的なonclickアルゴリズムは次のようです。

  • マウスの座標を投影するRay
  • を使用ray.intersectObjects(scene)して、シーン内の各オブジェクトの光線交差をテストします

これは、システム内の単一の「1D」光線に対して機能しますが、選択ボックスで機能するように変更する簡単な方法はないようです。

このメカニズムを拡張して選択錐台を操作する前に、代替/既存の機能はありますか?

4

1 に答える 1

3

あなたの質問に対する答えはノーです。そのような既存の施設はありません。

これには使いませんRaycaster.intersects()

おそらく最も簡単な方法は、screenCoords各オブジェクトに 2D プロパティを割り当て、オブジェクトのワールド位置の画面投影と等しくなるように設定することです。やり方はこちらのサイトで検索してください。

screenCoords次に、画面空間の選択ボックス内にあるオブジェクトを選択済みと見なします。

完全な封じ込めが必要な場合は、頂点ごとに上記を実行するか、近似として境界球のようなものを使用する必要があります。

three.js r.58

于 2013-05-21T03:01:16.763 に答える