我發現我的opengl可以支持的最大紋理尺寸是8192,但是我使用的圖像是16997x15931。正如您在此鏈接中看到的,我已完成課程COpenGLControl並將其定製爲供我自己使用,以使用較小的7697x7309圖像併爲其啓動不同的導航任務。如何從opengl中的大圖像創建紋理(大於MAX_TEXTURE_SIZE)
Render an outlined red rectangle on top a 2D texture in OpenGL
,但現在在工作的最後階段,我決定改變,其中適用紋理的部分,使其能夠處理更大的圖像比大小8192
問題:
- 在我的opengl中可能嗎?
- 什麼概念我應該學習mipmap,多重紋理?
- 它會擴展代碼的性能嗎?
現在我的程序使用271 MB RAM的只是顯示這個小圖像(7697x7309)和我將任務添加到它(圖像處理過濾過程),我用我所有的努力以優化代碼,但它使用376 MB的RAM(7697x7309)圖像(該代碼已被編寫爲控制檯應用程序將與此項目結合使用)。所以我認爲最後的項目會在7000x7000尺寸附近使用高達700 MB的RAM。顯然對於更大的圖像(16997x15931),ram的使用將會更高!
所以我在尋找一個概念來處理比MAX_TEXTURE_SIZE更大的圖像,同時優化了程序的性能
更多的問題:
- 我應該在OpenGL的學習理念是什麼要達到上述目標嗎?
- 解釋一下你建議的概念嗎?
我的問題的Game Developement太多,但決定在這裏重複的問題也許就會有更多的觀衆。只要我得到答案,我會從網站上刪除問題。所以不要擔心多個問題。
MegaTextures呢? http://www.opengl.org/registry/specs/AMD/sparse_texture.txt和這裏http://renderingpipeline.com/2012/03/partially-resident-textures-amd_sparse_texture/ – fen
我不使用現代的OpenGL和你看我在我的課堂上使用舊的WGL API,因爲我已經習慣了。是否支持在不贊成的OpenGL作爲[這個答案的評論說](http://stackoverflow.com/a/18478717/1245120)說的? @fen – sepideh
你能檢查你的硬件支持哪些opengl版本嗎?現代的opengl通過使用擴展來啓用,動態加載。如果你不能使用超級紋理,那麼你可以有4個紋理是從你的巨大紋理的一部分創建的。然後在應用程序中,你必須管理它們。同時尋找壓縮機制,如DXT紋理和壓縮(也支持通過opengl擴展) – fen