Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/341.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java JOGL大纹理输出从内存中加载_Java_Opengl_Textures_Out Of Memory_Jogl - Fatal编程技术网

Java JOGL大纹理输出从内存中加载

Java JOGL大纹理输出从内存中加载,java,opengl,textures,out-of-memory,jogl,Java,Opengl,Textures,Out Of Memory,Jogl,我正在使用TextureIO在JOGL中加载一个7兆字节的纹理,但大约三秒钟后,程序崩溃,没有显示任何带有OutOfMemoryError的内容 是的,我知道一个7兆字节的图像是一个荒谬的大小,但我仍然想加载它。顺便问一下,8192 x 4096的纹理应该是7兆字节吗 我已经考虑过将图像分割成几个较小的纹理,然后一次加载一个,但这与我已经编写的球体类不太配合。我想如果我必须的话,我可以这样做,但我很想避免这种特殊的行动 我没有在任何类型的嵌入式设备(Android、iPhone等)上运行,我有一

我正在使用
TextureIO
在JOGL中加载一个7兆字节的纹理,但大约三秒钟后,程序崩溃,没有显示任何带有
OutOfMemoryError
的内容

是的,我知道一个7兆字节的图像是一个荒谬的大小,但我仍然想加载它。顺便问一下,8192 x 4096的纹理应该是7兆字节吗

我已经考虑过将图像分割成几个较小的纹理,然后一次加载一个,但这与我已经编写的球体类不太配合。我想如果我必须的话,我可以这样做,但我很想避免这种特殊的行动

我没有在任何类型的嵌入式设备(Android、iPhone等)上运行,我有一个很好的2G内存,不确定GPU的RAM,但我愿意它足够容纳一个7MB的纹理。我安装了32位的Java和32位的Windows计算机,如果这些信息有帮助的话

有没有关于我为什么内存不足以及如何修复的想法

EDIT:我可能知道了一些事情,每个人都可能会拍自己的额头,但错误是:
java.lang.OutOfMemoryError:java堆空间


我猜“Java堆空间”部分将有助于解决这个问题。

只要尝试在启动时增加堆的大小,并使用-Xms和-Xmx增加堆的最大大小:

请注意,您的图形卡可能不支持如此大的纹理,请参阅


您应该询问有关JOGL on的问题。

对于
GL.GL\u MAX\u TEXTURE\u SIZE
,它会打印3379。那个号码是多少?千字节?尺寸?像素?另外,如何查找当前堆大小?GL.GL_MAX_TEXTURE_size是一个OpenGL常量,允许以像素为单位获取最大纹理大小(最大宽度或高度)。使用我的源代码获得最大纹理大小:使用探查器了解当前堆大小,例如jvisualvm(随JDK提供)。