我正在尝试向 Libgdx 绘制一个圆,该圆是从 Image 而不是 ShapeRenderer 创建的。但是当我尝试将图像绘制到 SpriteBatch 时,它绘制得并不顺利。
我检查了图像分辨率,图像尺寸为 1673x1673, Sprite 尺寸为 80x80。
//This is my GameState code
@Override
public void render(float delta) {
update(delta);
SpriteBatch sb = game.batch;
Color bg = ThemeFactory.getInstance().getTheme().backgroundColor;
Gdx.gl.glClearColor(bg.r, bg.g, bg.b, bg.a);
Gdx.gl.glClear(GL20.GL_COLOR_BUFFER_BIT);
sb.setProjectionMatrix(camera.combined);
sb.begin();
for(int i =0;i<elements.size();i++){
if(!(elements.get(i) instanceof Arrow)){
elements.get(i).render(sb);//HERE IS DRAWING HAPPENING
}
}
sb.end();
barriers.render(sb);
renderHud();
}
我的圆构造函数和渲染代码如下。
public Circle(Texture texture, Size size, Vector3 position){
mSprite = new Sprite(texture);
mSprite.setSize(size.width, size.height);//80x80
mSprite.setPosition(position.x, position.y);
mSprite.setOriginCenter();
}
@Override
public void render(SpriteBatch sb) {
mSprite.draw(sb);
}
最佳答案
2个提示: 1. 提高抽样率 2. 使用 libgdx mipmap 作为纹理
我建议使用:过滤器 1:MipMapLinearNearest、Nearest 或过滤器 2:Linear、Linear
过滤器 1 速度快,过滤器 2 质量高
有关更多信息,请阅读 this
过滤
缩小/放大过滤器定义缩放时如何处理图像。对于“像素艺术”风格的游戏,通常 Filter.Nearest 是合适的,因为它可以实现硬边缘缩放而不模糊。指定 Filter.Linear 将使用双线性缩放以获得更平滑的结果,这通常对于 3D 游戏有效(例如 1024x1024 岩石或草地纹理),但对于 2D 游戏并不总是如此。在 OpenGL 中,使用的术语分别是 GL_NEAREST 和 GL_LINEAR。
关于android - 如何在Libgdx中绘制平滑的圆,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46858904/