1

この 3D モデルをロードしました。次に、同じ画面に多くの点を描画します。点がモデル上にあるかどうかを判断するにはどうすればよいですか。XY 平面のみを考慮してください。

私は本当に無知なので、XY平面でのみ3D交差テストを行う方法を誰でも教えてくれます。

4

1 に答える 1

2

これを行うにはいくつかの方法があります。最も実用的なオプションはおそらく次のとおりです。

a)モデルとglReadPixels(...)をレンダリングするときに書き込むステンシルバッファーを使用して、画面上の特定の(x、y)ポイントにステンシルバッファーが設定されているかどうかを確認します。

b)(x、y)ポイントをカメラ位置から3D空間の線に変換します。次に、モデルで線交差テストを実行します(単純ですが遅い方法は、各ポリゴンに対してテストすることです。バウンディングボリュームなどを使用すると、明らかに高速な結果を得ることができます)。

c)glReadPixels(...)を使用して、画面上の(x、y)ポイントの色を読み取ります。明らかに、これは、モデルの一部であるかどうかを正確に区別できる場合にのみ機能します。

この目的でステンシルバッファを設定して使用できる場合は、a)がおそらく最も簡単に実装できます。それ以外の場合、b)はおそらく最も有用な一般的な解決策です。

于 2010-02-10T18:54:34.397 に答える