저는이 OpenGL ES에 새로운 기능을 제공합니다. 멀티 텍스처링을 사용하여 사각형을 그리려하고 있지만, 그다지 이상한 점을 알지 못합니다. 모든 제안이나 아이디어는 나에게 매우 도움이 될 것입니다. 나는 아직 함께 그물에서 발견 된 일부 코드를 가지고있다 할 만 한 무엇안드로이드 OPEN GL ES 멀티 텍스처링은 아무 것도 그려 내지 않습니다
이 어떤 결과를 얻기 위해 성공 :
여기 내 코드입니다. 나는 다른 질감으로 두 개의 직사각형을 그리는 것과 같이 원하는 두 가지 패스로이 그림을 그리고 원하는 결과를 얻을 수 있습니다.
일부는 GL11
이고 GL10
은 결합 된 것일 수 있습니다. : P 나는 그것이 옳다는 것을 알지 못한다. 일부 상수는 GL10
을 사용하여 지원되지 않기 때문에이 작업을 수행했습니다. 여기
public void draw(GL10 gl) {
if(status_flag == DISPLAYING_EYES) {
vertexPointer(gl);
firstGanColorVert.position(0);
gl.glColorPointer(4, GL11.GL_FLOAT, VERTEX_SIZE, firstGanColorVert);
//gl.glBindTexture(GL10.GL_TEXTURE_2D, firstGaneshaTexture);
gl.glActiveTexture(GL11.GL_TEXTURE0);
gl.glEnable(GL11.GL_TEXTURE_2D);
gl.glBindTexture(GL11.GL_TEXTURE_2D, firstGaneshaTexture);
//Simply sample the texture
gl.glTexEnvf(GL11.GL_TEXTURE_ENV, GL11.GL_TEXTURE_ENV_MODE, GL11.GL_REPLACE);
//------------------------
gl.glActiveTexture(GL11.GL_TEXTURE1);
gl.glEnable(GL11.GL_TEXTURE_2D);
fadeAnimation();
secondGanColorVert.position(0);
gl.glColorPointer(4, GL11.GL_FLOAT, VERTEX_SIZE, secondGanColorVert);
gl.glBindTexture(GL11.GL_TEXTURE_2D, secondGaneshaTexture);
gl.glTexEnvf(GL11.GL_TEXTURE_ENV, GL11.GL_TEXTURE_ENV_MODE, GL11.GL_COMBINE);
//Sample RGB, multiply by previous texunit result
gl.glTexEnvf(GL11.GL_TEXTURE_ENV, GL11.GL_COMBINE_RGB, GL11.GL_MODULATE); //Modulate RGB with RGB
gl.glTexEnvf(GL11.GL_TEXTURE_ENV, GL11.GL_SRC0_RGB, GL11.GL_PREVIOUS);
gl.glTexEnvf(GL11.GL_TEXTURE_ENV, GL11.GL_SRC1_RGB, GL10.GL_TEXTURE);
gl.glTexEnvf(GL11.GL_TEXTURE_ENV, GL11.GL_OPERAND0_RGB, GL11.GL_SRC_COLOR);
gl.glTexEnvf(GL11.GL_TEXTURE_ENV, GL11.GL_OPERAND1_RGB, GL11.GL_SRC_COLOR);
//Sample ALPHA, multiply by previous texunit result
gl.glTexEnvf(GL11.GL_TEXTURE_ENV, GL11.GL_COMBINE_ALPHA, GL11.GL_MODULATE); //Modulate ALPHA with ALPHA
gl.glTexEnvf(GL11.GL_TEXTURE_ENV, GL11.GL_SRC0_ALPHA, GL11.GL_PREVIOUS);
gl.glTexEnvf(GL11.GL_TEXTURE_ENV, GL11.GL_SRC1_ALPHA, GL11.GL_TEXTURE);
gl.glTexEnvf(GL11.GL_TEXTURE_ENV, GL11.GL_OPERAND0_ALPHA, GL11.GL_SRC_ALPHA);
gl.glTexEnvf(GL11.GL_TEXTURE_ENV, GL11.GL_OPERAND1_ALPHA, GL11.GL_SRC_ALPHA);
gl.glMatrixMode(GL11.GL_MODELVIEW);
gl.glLoadIdentity();
gl.glTranslatef(this.x,this.y ,0);
textCordPointer(gl);
gl.glDrawElements(GL11.GL_TRIANGLES, 6, GL11.GL_UNSIGNED_SHORT, indices);
}
}
나를 위해 작동 코드입니다하지만 대신 멀티 텍스처링 사용하려면 : 일부 상수 GL10에서 지원하지 않는 경우)
firstGanColorVert.position(0);
gl.glColorPointer(4, GL10.GL_FLOAT, VERTEX_SIZE, firstGanColorVert);
gl.glBindTexture(GL10.GL_TEXTURE_2D, firstGaneshaTexture);
gl.glMatrixMode(GL10.GL_MODELVIEW);
gl.glLoadIdentity();
gl.glTranslatef(this.x,this.y ,0);
textCordPointer(gl);
gl.glDrawElements(GL10.GL_TRIANGLES, 6, GL10.GL_UNSIGNED_SHORT, indices);
fadeAnimation();
secondGanColorVert.position(0);
gl.glColorPointer(4, GL10.GL_FLOAT, VERTEX_SIZE, secondGanColorVert);
gl.glBindTexture(GL10.GL_TEXTURE_2D, secondGaneshaTexture);
gl.glMatrixMode(GL10.GL_MODELVIEW);
gl.glLoadIdentity();
gl.glTranslatef(this.x,this.y ,0);
textCordPointer(gl);
gl.glDrawElements(GL10.GL_TRIANGLES, 6, GL10.GL_UNSIGNED_SHORT, indices);
'fadeAnimation()'의 기능은 무엇입니까? – GraphicsMuncher