2
내 텍스처 자체가 투명한 배경을 가지고 있으므로 그대로 렌더링하고 싶습니다.glColor의 영향을받지 않고 텍스처를 어떻게 렌더링합니까?
glEnable(GL_TEXTURE_2D);
glEnable(GL_BLEND);
glEnableClientState(GL_VERTEX_ARRAY);
glEnableClientState(GL_TEXTURE_COORD_ARRAY);
glPushMatrix();
glBlendFunc(GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA);
glTranslatef(x, y, 0.0f);
glColor4f(1.0f, 1.0f, 1.0f, 1.0f);
glVertexPointer(2, GL_FLOAT, 0, undoVertCoord);
glTexCoordPointer(2, GL_FLOAT, 0, undoTexCoord);
glBindTexture(GL_TEXTURE_2D, texUndo);
glDrawArrays(GL_TRIANGLE_STRIP, 0, 4);
문제는 glColor4f
입니다. 이 함수는 텍스처의 투명도를 덮어 써서 투명해야 할 때 불투명하게 만듭니다. 그러나 alpha 값이 0 인 glColor4f를 공급하면 전체 텍스처가 투명 해집니다.
그럼 glColor4f를 무시한 질감을 렌더링하여 텍스처를 그대로 렌더링 할 수 있습니까? 또는 알파 값에 영향을 미치지 않는 방식으로?
glColor4f는 텍스처의 색을 '덮어 쓰지 않아야'합니다. 기본적으로이 값을 변조하므로 glColor4f가 (1,1,1,1)이면 텍스처 색상을 정확하게 재현합니다. 투명도가 깨지면 glColor와 관련없는 투명도가 잘못되었습니다. 알파 채널이 텍스처에 맞게 올바르게 생성되는지 확신합니까? – Tim