libgdx에서 쉐이더가로드되었고 스테이지 객체가 쉐이더를 사용하여 그릴 수 있도록하려고합니다. SpriteBatch의 셰이더를 셰이더에 설정하고 스테이지의 스프라이트 배치를 설정하려고했으나 검정색 화면으로 표시됩니다. 스테이지의 Libgdx 셰이더?
ShaderProgram shader = new ShaderProgram(Gdx.files.internal("shader.vert"), Gdx.files.internal("shader.frag"));
SpriteBatch batch = new SpriteBatch();
batch.setShader(shader);
Stage stage = new Stage(new StretchViewport(768, 576), batch);
...
stage.act();
shader.begin();
stage.draw();
shader.end();
내 쉐이더
의 모양 :이 작동하지 않는 이유는shader.vert을
attribute vec4 a_position;
attribute vec4 a_color;
attribute vec2 a_texCoord;
uniform mat4 u_projTrans;
varying vec4 v_color;
varying vec2 v_texCoords;
void main()
{
v_color = a_color;
v_color.a = v_color.a * (256.0/255.0);
v_texCoords = a_texCoord + 0;
gl_Position = u_projTrans * a_position;
}
shader.frag
단지 하나 일 것으로 보인다#ifdef GL_ES
#define LOWP lowp
precision mediump float;
#else
#define LOWP
#endif
varying LOWP vec4 v_color;
varying vec2 v_texCoords;
uniform sampler2D u_texture;
void main()
{
gl_FragColor = v_color * texture2D(u_texture, v_texCoords);
}
조직. 다른 모든 텍스처는 렌더링되지 않습니다. 또한 텍스처 파워를 2로 설정해도 효과가 없습니다.
먼저 내 코드는 내가 언급 한 것과 동일하지만 잘못 입력 한 것 같습니다. 시작과 끝은 내가 그들을 제거했을 때 어떤 차이도 만들지 않았다. 그러나 나는 그것을 a_texCoord0으로 변경하려고 시도 할 것이다. – name
'a_texCoord'를'a_texCoord0'으로 바꾸는 것이 트릭을 만들었다. 그 이유는 모르겠지만 제가 사용한 튜토리얼은 그걸 그대로 두었 습니다만, 지금은 감사합니다. – name