我正在使用TextureIO
加載JOGL中的七兆字節紋理,但大約三秒後,程序崩潰而沒有顯示任何內容,顯示爲OutOfMemoryError
。JOGL大紋理輸出內存不足
是的,據我所知,一個七兆字節的圖像是一個荒謬的大小,但我仍然想要加載它。順便說一下,是8192 x 4096紋理應該是七兆字節?
我已經考慮過將圖像分割成幾個較小的紋理並一次加載一個紋理的想法,但這與我已經寫過的球體類沒有很好的配合。我想我可以做到這一點,如果我絕對有,但我想避免這種特殊的行動。我沒有運行任何類型的嵌入式設備(Android,iPhone等),我有一個好的2G內存,不確定GPU的內存,但我願意足以容納它七兆字節的紋理。如果有任何信息有幫助,我有32位Java安裝和32位Windows計算機。
關於爲什麼我內存不足以及如何修復它的任何想法?
編輯:我可能是對的,那麼,每個人都經歷可能會拍打他們的額頭,但錯誤說:java.lang.OutOfMemoryError: Java heap space
我猜「Java堆空間」部分將幫助解決問題。
對於'GL.GL_MAX_TEXTURE_SIZE',它打印3379.那個數字是多少?千字節?外形尺寸?像素? – Josh
另外,我如何找到當前堆大小? – Josh
GL.GL_MAX_TEXTURE_SIZE是一個OpenGL常量,允許以像素(最大寬度或高度)獲取最大紋理大小。使用我的源代碼獲取最大紋理大小:https://github.com/gouessej/Ardor3D/blob/master/ardor3d-jogl/src/main/java/com/ardor3d/renderer/jogl/JoglContextCapabilities.java#L126 – gouessej