我有一个应用程序从图库中获取图像,将其大小调整为100x100,并使用spritebatch在游戏屏幕上呈现它。新的手机摄像头拍摄的照片大于4096的限制,我的渲染图像只是黑色。如何克服4096x4096的OpenGL限制?
你必须使用pixmaps来调整像这样的图像,
pixmap = new Pixmap(200, 200, Format.RGBA8888);
pixmap2 = new Pixmap(*yourfilepathhere*);
pixmap.drawPixmap(pixmap2, 0, 0, pixmap2.getWidth(), pixmap2.getHeight(), 0, 0, 200, 200);
yourtexture = new Texture(pixmap);
答案 0 :(得分:0)
简单回答?你没有。或者您不使用OpenGL进行渲染。
当您为Android添加标签时,并非所有设备都支持OpenGL中超过1024x1024的纹理大小。为确保它可以在每台设备上运行,请将手机摄像头照片从4096缩放到1024.(也许你可以使用2048.)要缩小图片,请查看名为Pixmap的LibGDX类。它将图像加载到内存中并调用drawPixmap(Pixmap pixmap,int srcx,int srcy,int srcWidth,int srcHeight,int dstx,int dsty,int dstWidth,int dstHeight),您可以将其拉伸到您想要的任何大小。请务必为目标创建另一个Pixmap。然后,您可以通过调用新的纹理(像素图)轻松地从像素图创建纹理。查看有关纹理here的更多信息。