2

OpenGLで構築されたマップがあります。このマップには、道路、高速道路、境界が含まれています。私が欲しいのは、ポリゴン、ポリライン、単純な線など、ユーザーが触れるオブジェクトを知ることです。これらのオブジェクトを OpenGL から検出するにはどうすればよいですか?

4

1 に答える 1

2

OpenGL ES には がないselection bufferため、特定のポイントで画面上のオブジェクトを識別できるように特別に設計された機能はありません。

次の 2 つのオプションがあります。

  1. スクリーン スペース位置 (x,y) をワールド スペース位置に投影解除し、すべてのオブジェクトがこのポイントを通過する光線と交差するかどうかをテストします (多くの場合、最もパフォーマンスの高い方法です)。

  2. シーンを一意に識別する特別な色を使用してシーン内のすべてをレンダリングし、画面空間の位置 (x,y) でピクセルの色を読み取ります。

オプション 2 は、GPU がレンダリングを完了するのを待つ必要があるため遅くなりますが、非常に細いオブジェクト (線など) をより正確に処理できるという利点があります。また、実装もはるかに簡単です。

オプション 2の詳細については、次の 2 つのリンクを参照してください。

于 2013-08-27T09:40:35.493 に答える