2016-08-29 2 views
0

내 libGDX 게임에서 GLSL을 사용하여 전체 화면에 쉐이더를 적용하고 싶습니다. 의 그린 스프라이트에LibGDX GLSL 배경에 적용

stage.getBatch().setShader(shader); 

... 쉐이더에만 적용 : 내가 무대의의 SpriteBatch 내 쉐이더를 적용 할 때 , 나는 그러나

Gdx.gl.glClearColor(color.r, color.g, color.b, 1f); 
Gdx.gl.glClear(GL20.GL_COLOR_BUFFER_BIT); 

을 사용하고, 색상과 배경을 지우려면 무대가 아니라 전체 화면. 난 그냥 명확성을 위해, 빨간 영향을받는 픽셀을 켤 수있는 쉐이더 사용하고 있습니다 :

가 어떻게 전체 화면으로 내 쉐이더를 적용 할을?

+0

당신은 http://gamedev.stackexchange.com/을 시도 할 수 있습니다. 그들은 당신을 더 잘 도울 수 있습니다. – Mfusiki

+1

OpenGL에서의 명확한 연산은 셰이더를 사용하지 않습니다. 배경에 쉐이더를 적용하려면 화면 채우기 스프라이트를 그리고 그 쉐이더를 적용해야합니다. – BDL

답변

1

알아 냈어 : 셰이더는 렌더링 된 텍스처에만 적용됩니다. 내 배경은 다음과 지금 그리기 코드 :

Gdx.gl.glClearColor(0f, 0f, 0f, 1f); 
Gdx.gl.glClear(GL20.GL_COLOR_BUFFER_BIT); 

batch.begin(); 
batch.draw(background, 0, 0, width, height); 
batch.end(); 

변수 background 전체 배경을 채울 × 2 질감입니다.

+0

"* 알아 냈습니다 : 셰이더는 렌더링 된 텍스처에만 적용됩니다. *"아니요, 텍스처와 아무 관련이 없습니다. 셰이더는 * 렌더링 *에만 적용됩니다. 이미지 지우기는 렌더링되지 않습니다. –

+0

당신이 원하는 것은 무엇이든간에) – kwantuM