API glGetIntegerv
を使用して、ビューポートとテクスチャの最大サイズを取得します。両方とも16K x 16Kピクセルを返します。ここでOpenGLでスーパーサイズのテクスチャをレンダリングする方法
はコードです:
GLint maxTexture,maxViewport;
glGetIntegerv(GL_MAX_TEXTURE_SIZE, &maxTexture);
glGetIntegerv(GL_MAX_VIEWPORT_DIMS, &maxViewport);
私は、高解像度の一連の画像を表示するために、テクスチャの大きいサイズを必要とするが。ビューポートサイズを32K x 32Kに設定しようとしましたが、プログラムは正常に実行されました。 API glGetIntegervから取得したビューポートの最大サイズが正しくないようです。
しかし、テクスチャサイズを16K x 16Kより大きい値に設定することはできません。 多分、私は複数のテクスチャユニットを作成しようとする必要があり、それぞれのサイズは16K x 16Kです。
誰かが手動ホールスライドイメージングと呼ばれるアプリケーションを提供しています。ここ はハイパーリンクです:
http://www.microvisioneer.com/
スーパーサイズの質感は、このアプリケーションで実現しているようです。 OpenGLは私の問題を解決するための正しいツールですか、それとも他の解決方法がありますか?
更新:私は、ビューポートを32K x 32Kに設定してもエラーは発生しませんでしたが、実際のサイズはまだ16K x 16Kです。
「1024 * 16 * 1024 * 16」のサイズはどういう意味ですか?使用するクエリは、* width *(ビューポートの* height *)の値を返します。カードによって返された値を検索することができます(http://opengl.gpuinfo.org/gl_stats_caps_single.php?listreportsbycap=GL_MAX_TEXTURE_SIZE)値は、インストールされているハードウェアの最大表示サイズで十分です。 – Ripi2
@ Ripi2に言及しました。あなたが話していることは、ビューポートに関するものであり、テクスチャを行うことは何もありません。テクスチャはハードウェアに基づいて最大サイズを持ち、任意のサイズを任意のサイズのビューポートにレンダリングできます。 – Ketan
glViewportは、指定された範囲に自動的にクランプします。これはエラーではありません。 – Andreas