3

OpenGLシーングラフを取得しQGLFrameBufferObject、結果をレンダリングするために使用するクラスを作成しています。(事実上)無限のサイズをサポートするために、私はタイリングを使用して、すべてのタイルをレンダリングした後に大きな画像に結合できる多くの小さな画像を抽出しています。

glViewport画像全体にビューポート()を設定し、を使用glScissorしてタイルを次々に「切り抜く」ことでタイリングを行います。これは、までの解像度では問題なく機能GL_MAX_VIEWPORT_DIMSしますが、この制限外の空のタイルになります。

この問題にどのように取り組むべきですか?カメラを変更する必要がありますか、それともこれを行うための巧妙なトリックはありますか?私はCoin/OpenInventorを使用しているので、これらのフレームワークに固有のヒントも大歓迎です。

4

3 に答える 3

2

カメラの変更は思ったほど難しくはありません。頂点シェーダーを変更する以外に、私が見ることができる唯一の解決策です。

x軸とy軸に沿って投影行列をスケーリングおよび変換することにより、通常のカメラのビューの任意のサブ領域を簡単に取得できます。

ビューポートの特定の最大値と最小値(フルビューポートは(-1、-1)と(1、1))について、(max + min)/ 2で変換し、(max --min)/2でスケーリングします。

于 2011-10-27T18:17:56.187 に答える
1

OpenGLタイルレンダリングライブラリを試してみてください。

于 2011-10-27T14:01:43.130 に答える
0

ビューポートの最大値をより詳細に間接的に考慮して、世界全体を縮小してみることができます。または、基本的に、画像とビューポートを縮小して同じ視覚効果を得ることができます。

于 2011-10-27T13:48:59.497 に答える