2009-07-13 25 views
1

我正在製作一個使用openGL的圖像查看器,並且遇到了需要加載非常大(> 50MB)圖像以供查看的情況。我將圖片加載爲紋理並將其顯示到GL_QUAD,該圖對於較小的圖片效果很好,但在較大的圖片上加載失敗,我得到一個空白的矩形。到目前爲止,我已經實現了一個非常醜陋的黑客,它使用另一個程序將圖像轉換爲可以加載的更小,更低分辨率的版本,但我正在尋找更優雅的解決方案。我發現openGL有一個texture compression feature,但我無法讓它工作。當我打電話如何在openGL中使用紋理壓縮?

glTexImage2D(GL_TEXTURE_2D, 0, GL_COMPRESSED_RGBA_ARB, t.width(), t.height(), 0, GL_RGBA, GL_UNSIGNED_BYTE, t.bits()); 

我得到的編譯器錯誤 「GL_COMPRESSED_RGBA_ARB未申報」。我究竟做錯了什麼?有我缺少的圖書館嗎?更一般地說,這是對我的問題可行的解決方案嗎?

我在Windows Vista計算機上使用Qt Creator,使用NVIDIA Quadro FX 1700圖形卡。

回答

1

首先,我不得不問這些大圖像是什麼分辨率?其次,要使用GL_COMPRESSED_RGBA_ARB這樣的定義,你需要下載和使用比標準MS-Dev安裝在GL API更現代化的GLEW。

+0

圖像每邊有10,000和30,000像素之間的任何地方。 – 2009-07-13 20:55:26