【发布时间】:2017-10-05 14:22:08
【问题描述】:
我还有另一个 LibGDX 问题 (-_-)。我有这样的黑白图像:
现在我尝试将此图像用作我的 PlayScreen 中的背景图像:
类 PlayScreen:
(...)
Texture background;
(...)
background = new Texture("grid.jpg");
(...)
gameHandler.getBatch().begin();
gameHandler.getBatch().draw(background,0,0,Gdx.graphics.getWidth(), Gdx.graphics.getHeight());
gameHandler.getBatch().end();
(...)
类 GameHandler:
(...)
Gdx.gl.glClearColor(1, 1, 1, 1);
Gdx.gl.glClear(GL20.GL_COLOR_BUFFER_BIT);
this.getScreen().render(Gdx.graphics.getDeltaTime());
(...)
使用此代码我得到以下信息(错误的比例是因为视口,但这没关系):
如何保持真实图像的颜色?
希望你能帮助我! ~亨利
【问题讨论】:
-
将纹理实例化为“true”以进行 mip 映射,并将其 minFilter 设置为 MipMapLinearLinear 或 MipMapLinearNearest。但它大多只是看起来是灰色的,因为你正在缩小它以适应屏幕。如果您需要一个非常干净的网格并支持具有不同屏幕尺寸的设备,您需要在运行时通过适当地设置 UV 来平铺您的图案。
-
我现在正在这样做:D
-
我建议在 LibGDX 中坚持使用 PNG。 png 图像使用具有逐像素精度的光栅,因此一个 png 图像加载程序和另一个之间没有区别。另一方面,JPEG 不包含原始像素数据,更多的是留待解释。
-
事实上,我刚刚在 wikipedia 上发现了这一点:“另一方面,JPEG 可能不太适合线条图和其他文本或图标图形,其中相邻像素之间的鲜明对比会导致明显的伪影。此类图像最好保存为无损图形格式,例如 TIFF、GIF、PNG 或原始图像格式。JPEG 标准实际上包括无损编码模式,但大多数产品不支持该模式。"