画面上でOpenGLESを使用してレンダリングした2D(おそらく交差する)ポリゴンがいくつかあります。すべてのポリゴンは画面内に完全に含まれています。全画面領域に対するこれらのポリゴンの結合のパーセンテージ領域を見つけるための最もタイムリーな方法は何ですか?ポリゴンがシフトされるたびにカバレッジエリアをすぐに更新する必要があるため、適時性が必要です。
現在、私は各ポリゴンをブール値の2D配列として表現しています。(ジオメトリパッケージからの)ポイントインポリゴン関数を使用して、画面上の各ポイント(x、y)をサンプリングして、それがポリゴンに属しているかどうかを確認し、属している場合は、polygon [x] [y]=trueに設定します。それ以外の場合はfalse。
画面内のすべてのポリゴンに対してこれを行った後、すべての画面ピクセルを再度ループし、各ポリゴン配列をチェックして、ポリゴンのポリゴン[x][y]値がtrueに設定されている場合はそのピクセルを「カバー」としてカウントします。 。
これは機能しますが、ポリゴンの数が増えるため、パフォーマンスは理想的ではありません。可能であればオープンソースライブラリを使用して、これを行うためのより良い方法はありますか?私は考えました:
(1)ポリゴンを結合して、1つ以上の重複しないポリゴンを取得します。次に、標準の多角形の面積の式を使用して、各多角形の面積を計算します。次に、それらを合計します。これを機能させる方法がわかりませんか?
(2)なんとかしてOpenGLを使う。これらすべてのポリゴンを単一の色でレンダリングしていると想像してください。その特定の色でスクリーンバッファ上のピクセル数を数えることは可能ですか?これは本当に素晴らしい解決策のように聞こえます。
これを行うための効率的な手段はありますか?