LibGDX를 사용하여 간단한 틱택 토 예제를 작성 중입니다. 십자형, 원형 및 보드, png
투명 배경의 김프로 만든 모든 이미지가 있습니다.
Texture
투명도 로 렌더링하려면 어떻게해야 합니까?
GL10 활성화 기능을 사용해 보았지만 작동하지 않는 것 같습니다.
LibGDX를 사용하여 간단한 틱택 토 예제를 작성 중입니다. 십자형, 원형 및 보드, png
투명 배경의 김프로 만든 모든 이미지가 있습니다.
Texture
투명도 로 렌더링하려면 어떻게해야 합니까?
GL10 활성화 기능을 사용해 보았지만 작동하지 않는 것 같습니다.
답변:
렌더링하기 전에 :
batch.enableBlending();
batch.begin();
//draw stuff
batch.end();
Sprite를 만들고 Texture를 할당 한 다음 Sprite setColor를 사용하여 알파를 조정합니다.
Texture yourTexture = new Texture("image.png");
sprite = new Sprite(yourTexture);
//RGBA
sprite.setColor(1, 0, 0, 0.2f);
render () 루프에서 SpriteBatch를 사용하십시오.
sprite.draw(spriteBatch);
당신이 넣어
Gdx.gl.glClearColor(0, 0, 0, 1);
Gdx.gl.glClear(GL10.GL_COLOR_BUFFER_BIT);
render () 루프의 시작 부분에 검은 색으로 화면을 새로 고쳐야합니다. 이미지가 투명하면 눈에 띄게 나타납니다.
따라서 render () 루프는 다음과 같이 보일 것입니다.
public void render(float delta) {
Gdx.gl.glClearColor(0, 0, 0, 1);
Gdx.gl.glClear(GL10.GL_COLOR_BUFFER_BIT);
// Update logic & etc.
batch.begin();
// Place your render calls
// In this I use a Sprite object named "sprite" and all you need to do is call .draw();
// on it and it will render at 0,0, unless told differently with .setPosition();
sprite.draw(batch);
batch.end();
}
투명도를 가진 .png를 렌더링하려고했습니다. 기본 설정 (블렌딩이 활성화되지 않음)에서는 제대로 렌더링되지 않았습니다.
블렌딩을 활성화하지는 않았지만 다음을 추가했습니다.
Gdx.gl.glClear(GL20.GL_ALPHA_BITS);
내 문제는 알파가 지워지지 않았다는 것입니다. 즉, 0.1 알파로 렌더링하면 알파가 1까지 다시 쌓일 때까지 10 프레임이 걸립니다. 위의 호출을 추가하면 색상을 지우는 것처럼 알파가 지워집니다.
나는 이것이 오래된 질문이라는 것을 알고 있으므로 솔루션은 다릅니다. enableBlending은 여전히 작동하지만 이것이 알파의 "스태킹"을 방해하는지 확실하지 않습니다. 알파 비트를 지우는 것이 견고한 모양을 방지하는 가장 쉬운 방법 일 것입니다.
실제 렌더링과 마찬가지로 항상 동일합니다.
//Viewport, camera, logic, etc
batch.begin();
//draw your image(s) here
batch.end();