简体   繁体   English

LibGDX:如何绘制透明多边形?

[英]LibGDX: How to draw a transparent Polygon?

I'm currently using ShapeRenderer to draw polygons. 我目前正在使用ShapeRenderer绘制多边形。

Code: 码:

shapeRenderer.begin(ShapeType.Line);
shapeRenderer.setColor(255 / 255.0f, 109 / 255.0f, 120 / 255.0f, 0.0f);

Gdx.gl.glEnable(GL20.GL_BLEND);
//drawing a sample rectangle to test transparency(it worked)
shapeRenderer.rect(getRect().x, getRect().y,
                    getRect().width, getRect().height);
//drawing polygon
shapeRenderer.polygon(getPoly().getTransformedVertices());
Gdx.gl.glBlendFunc(GL20.GL_SRC_ALPHA, GL20.GL_ONE_MINUS_SRC_ALPHA);
Gdx.gl.glDisable(GL20.GL_BLEND);

shapeRenderer.end();

I'm getting the rectangle as a transparent one but polygon is still opaque as ever. 我将矩形作为透明的矩形,但是多边形仍然像以往一样不透明。

How to do this correctly? 如何正确做到这一点?
Or is this even possible? 还是有可能吗?

The actual "drawing" probably isn't happening until the shapeRenderer.end() call. 直到shapeRenderer.end()调用才可能发生实际的“绘制”。 Try moving that up: 尝试将其向上移动:

//drawing polygon
shapeRenderer.polygon(getPoly().getTransformedVertices());
shapeRenderer.end();

Gdx.gl.glBlendFunc(GL20.GL_SRC_ALPHA, GL20.GL_ONE_MINUS_SRC_ALPHA);
Gdx.gl.glDisable(GL20.GL_BLEND);

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM