我正在制作一个程序,通过在300 x 300 Pixmap上放置像素来生成这样的图像 这很好,但是像素化会减少我正在寻找的有机效果。所以我让它渲染Voronoi单元而不是像这样的像素:
public void render(Color[][] pixels, HashSet<Point> edge) {
Gdx.gl.glEnable(GL20.GL_DEPTH_TEST);
shapeRenderer.begin(ShapeRenderer.ShapeType.Filled);
for (int i = 0; i < width; i++)
for (int j = 0; j < height; j++) {
Color coneColor;
if (pixels[i][j] != null) {
coneColor = new Color(pixels[i][j]);
coneColor.lerp(background, 1 - coneColor.a);
coneColor.a = 1;
shapeRenderer.setColor(coneColor);
shapeRenderer.cone(vertices[i][j].x, vertices[i][j].y, -100, 1.5f, 1.5f, 8);
}
}
shapeRenderer.setColor(background);
for (Point e : edge) {
shapeRenderer.cone(vertices[e.getX()][e.getY()].x, vertices[e.getX()][e.getY()].y, -100, 1.5f, 1.5f, 8);
}
shapeRenderer.end();
}
对于少数锥体来说这是好的,但是,正如您可以想象的那样,它对于90,000个锥体的上限来说效果不佳。我已经尝试了实例数组,但libgdx似乎不支持glVertexAttribDivisor。我需要保持平移和缩放的能力。我应该研究哪些替代方案,或者如何使实例化工作?