Libgdx 创建具有平滑边框的像素贴图圆

Libgdx 创建具有平滑边框的像素贴图圆,libgdx,geometry,pixmap,Libgdx,Geometry,Pixmap,如何在像素地图上绘制具有平滑边框的圆 配置中的普通“sample”参数不会影响pixmap 编辑: 该圆的半径为200px 使用ShaperEnder创建的普通圆形状会生成一个非常平滑的圆…使用pixmap圆的问题是,它只使用一种颜色,没有渐变/透明度 我猜你想在飞行中创建一个圆,因为它每次都有不同的半径?否则,创建具有所需大小的图像。你需要三种不同的尺寸吗?做三个不同的图像,等等 如果你需要数百种不同的尺寸,我仍然会创建图像,比如说每十步,然后选择最近的一个并缩放 如果你不能使用以上所有的方法

如何在像素地图上绘制具有平滑边框的圆

配置中的普通“sample”参数不会影响pixmap

编辑:

该圆的半径为200px


使用ShaperEnder创建的普通圆形状会生成一个非常平滑的圆…

使用pixmap圆的问题是,它只使用一种颜色,没有渐变/透明度

我猜你想在飞行中创建一个圆,因为它每次都有不同的半径?否则,创建具有所需大小的图像。你需要三种不同的尺寸吗?做三个不同的图像,等等

如果你需要数百种不同的尺寸,我仍然会创建图像,比如说每十步,然后选择最近的一个并缩放

如果你不能使用以上所有的方法,这取决于你需要画多少个圆。如果它只是一个“少数”(可能是一些选择圆,或类似的),我会使用形状渲染器(只是测量渲染循环所需的时间)

如果这些都不是你的解决方案,你需要自己用pixmap创建一个圆,我不是图形专家,但我想你可以在画图程序中创建一个你想要的圆,看看它的边缘有什么颜色值,这样你就可以为你的pixmap模拟这些值


请注意,pixmap本身非常昂贵,您不应该使用它来动态创建纹理(在初始化方法中进行),绘制单个纹理也非常糟糕,因为纹理更改会导致批量刷新。因此,如果不将形状渲染器全部合并到纹理图集中,则使用形状渲染器可能会更快。

您应该添加一些已经尝试过的代码,而不仅仅是“我该怎么做”。很难说问题出在哪里。但是,半径中的像素越多,圆就越平滑,用我的帖子编辑的小pixmapI无法得到平滑的圆。使用ShaperEnder创建的圆将创建一个平滑的圆(大小相同!)。
 Pixmap ds = new Pixmap(width,height, Pixmap.Format.RGBA8888);
 ds.setColor(color);
 ds.fillCircle(ds.getWidth()/2, ds.getWidth()/2, (ds.getWidth()-20)/2);
 texture = new Texture(ds);

 ds.dispose();