我使用LWJGL创建OpenGL 3D应用程序。为了导入我的图像(用于UV映射)并将它们转换为纹理,我使用Slick2D:
bufferedImage = ImageIO.read(renderEngine.class.getResource("/images/textures/Stargate/image8192.png"));
objTextures.get(1)[0] = BufferedImageUtil.getTexture("", bufferedImage).getTextureID();
此方法(第二行)立即使用1 GB的RAM,但我的Image只有8192x8192的大小 - > 50 MB。
我该如何解决这个问题?
答案 0 :(得分:3)
原始空间的数量取决于许多事情。
什么是color model?
使用TYPE_4BYTE_ABGR的图像类型会导致最小尺寸为256MB(8K * 8K * 4)。
使用int(而不是byte)的数据类型可以增加4x。
这只是阅读BufferedImage
的第一行。