저는 Libgdx를 사용하고 있습니다. 내 게임에서 pixmap을 사용하여 안개를 시뮬레이트하고 싶지만 "fogless"
서클을 생성하는 동안 문제가 있습니다. 먼저 검정으로 채워진 픽스맵을 만듭니다 (조금 투명합니다). 채우고 난 후에 그 위에 채워진 원을 그리기를 원하지만 그 결과는 내가 기대했던 것이 아니다. 나는 형식을 사용하는 경우 절차에 libgdx에서 채워진 원 및 픽스맵 사용
this.pixmap = new Pixmap(640, 640, Format.LuminanceAlpha);
Pixmap.setBlending(Blending.None); // disable Blending
this.pixmap.setColor(0, 0, 0, 0.9f);
this.pixmap.fill();
//this.pixmap.setColor(0, 0, 0, 0);
this.pixmap.fillCircle(200, 200, 100);
this.pixmapTexture = new Texture(pixmap, Format.LuminanceAlpha, false);
는()
public void render() {
mapRenderer.render();
batch.begin();
batch.draw(pixmapTexture, 0, 0);
batch.end();
}
렌더링 . Pixmap과 Texture를 만들 때 알파는 더 반투명의 원을 보지 않습니다.
누군가가 나를 도울 수 : 여기
내 문제입니까? 무엇을해야합니까? 투명 원형 전체를 그리기 전에 무엇을 초기화해야합니까? 감사.업데이트 내 문제에 대한 답변을 찾았습니다. 문제를 피하려면 블렌딩을 비활성화해야합니다.
이제 내 코드 :
FrameBuffer fbo = new FrameBuffer(Format.RGBA8888, 620, 620, false);
Texture tex = EnemyOnRadar.assetManager.get("data/sugar.png", Texture.class);
batch.begin();
// others
batch.end();
fbo.begin();
batch.setColor(1,1,1,0.7f);
Gdx.gl.glClear(GL20.GL_COLOR_BUFFER_BIT);
batch.begin();
batch.draw(tex, 100, 100);
batch.end();
fbo.end();
하지만 (이, PNG 이미지의 투명 BG, 흰색 채워진 원을 나타냄) 원을 볼 수 없습니다.
를 작동하는지 말해. 추가 질문이있는 경우 답변을 게시하는 대신이 질문을 업데이트하십시오. 당신이 코드를 시도해도 작동하지만 작동하지 않는다면, 코드를 붙여넣고 결과가 무엇인지 알려주세요. 그래서 나는 다른 사람들이 너를 도울 수있다. 감사합니다 – Springrbua
다른 링크 : http://stackoverflow.com/questions/14729961/ambiguous-results-with-frame-buffers-in-libgdx – Springrbua
어떻게 지금하고 있니? 블렌딩이 비활성화 된 상태에서 PixMap을 사용하고 있습니까? 아니면 내가 제안한 FBO 솔루션을 사용하고 있습니까? – Springrbua