3

ジオメトリのシーン全体をレンダリングする複数のカメラを使用する、レンダリングからテクスチャへのプロセスを開発しています。これらのカメラの出力は結合され、頂点シェーダーで各ジオメトリの頂点座標を画面座標に変換することで画面に直接マップされます (ここでは GLSL を使用しています)。

プロセスは正常に機能しますが、小さな問題に気付きました。作成するすべての RTT カメラは、画面出力と同じ寸法のテクスチャを作成します。つまり、ビューポートのサイズが 1024x1024 の場合、ジオメトリが画面の 256x256 セクションを占めていても、各 RTT カメラは 256x256 ジオメトリを 1024x1024 テクスチャでレンダリングします。

解決策はかなり単純に思えます - ジオメトリが占める実際の画面領域に一致するように RTT カメラのテクスチャ サイズを調整しますが、その方法はわかりません。つまり、(たとえば) ジオメトリが画面の 256x256 領域を占めていることをどのように判断すれば、それに応じて RTT カメラの出力テクスチャを 256x256 ピクセルに設定できるのでしょうか?

私が使用する API (OpenSceneGraph) は、軸に沿ったバウンディング ボックスを使用するため、運が悪い..

考え?

4

1 に答える 1

0

なぜ運が悪いのですか?軸に沿ったバウンディング ボックスを使用して面積を計算することはできませんか?

私の考え:

  • バウンディング ボックスの 8 つのコーナー ポイントを取り、それらをカメラのイメージ プレーンに投影します。
  • 画像平面上の結果として得られる 2D ポイントについて、軸に沿った 2D バウンディング ボックスを再度決定できます。

これは、ジオメトリが占有できるスペースの正しい上限である必要があります。

于 2012-07-27T17:10:52.323 に答える