android - 如何在Libgdx中绘制平滑的圆

标签 android opengl-es libgdx

我正在尝试向 Libgdx 绘制一个圆,该圆是从 Image 而不是 ShapeRenderer 创建的。但是当我尝试将图像绘制到 SpriteBatch 时,它绘制得并不顺利。
This is the Image that I am using

This is the Image that drawing

我检查了图像分辨率,图像尺寸为 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/

相关文章:

android - ViewPager 上的 SimpleCursorAdapter

Android AppWidget onUpdate 开机

ios - Monotouch - 显示一系列图像(太慢)

java - LibGdx 使用 ArrayList 进行数据持久化

android - 前台服务卡住用户界面

java - 远程监控所有 Android 设备事件

android - 仅定位市场中运行速度快的 Android 设备

android - OpenGL ES 2 球体渲染

libGDX 舞台绘制镜像文本

java - 对 box2d 主体施加力不起作用