0
부분 불투명 한 색상의 텍스처와 투명성이있는 다른 부분을 렌더링하려고합니다.투명도가있는 OpenGL 텍스처
이 객체 내 그리기 기능입니다 :
void drawHighGrass(){
glDisable(GL_LIGHTING);
glClearColor(1.0, 1.0, 1.0, 1.0);
glColor4f(1.0, 1.0, 1.0, 1.0);
glDisable(GL_DEPTH_TEST);
glDepthMask(GL_FALSE);
glEnable(GL_BLEND);
glBlendFunc(GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA);
glEnable(GL_TEXTURE_2D);
glBindTexture(GL_TEXTURE_2D, texturas[HIGH_GRASS]);
glPushMatrix();
//glTranslatef(1000, 0, 1000);
glBegin(GL_QUADS);
glTexCoord2f(0.0f, 0.0f); glVertex3f(0, 0, 0);
glTexCoord2f(1.0f, 0.0f); glVertex3f(100, 0, 0);
glTexCoord2f(1.0f, 1.0f); glVertex3f(100, 40, 0);
glTexCoord2f(0.0f, 1.0f); glVertex3f(0, 40, 0);
glEnd();
glPopMatrix();
glDisable(GL_TEXTURE_2D);
glEnable(GL_DEPTH_TEST);
glDisable(GL_BLEND);
glDepthMask(GL_TRUE);
glEnable(GL_LIGHTING);
}
문제는 투명 부분은 흰색 고체를 보여주는 점이다. glColor4f (1.0, 1.0, 1.0, 0.5)를 사용하여 텍스처를 투명하게 만들 수는 있지만 투명하지 않은 전체 텍스처를 투명하게 만들 수 있기 때문에 원하는 것은 아닙니다.
내 텍스처 파일이 투명성이있는 PNG인지 확인했습니다.
텍스처가로드되는 방식에 문제가있는 것 같습니다. 그 텍스처를로드하기위한 코드는 무엇입니까? – Maple
@Maple, 당신 말이 맞았습니다. 텍스처 가져 오기였습니다. 감사! – andrepcg