8 비트 알파 채널이있는 텍스처를 렌더링하는 데 문제가 있습니다. 즉, 1 비트로 병합되고 glBlendFunc()가 아무 것도하지 않는 것처럼 보입니다. 하는 장면 뒤에 설정 한 OpenGL은 상태의 다양성, 그 중 분명 하나있다OpenGL 멀티 비트 알파 텍스처
glEnable(GL_BLEND);
glBlendFunc(GL_SRC_ALPHA,GL_ONE_MINUS_SRC_ALPHA);
glBegin(GL_QUADS);
{
glTexCoord2f(0, 0);
glVertex2f(0, 0);
glTexCoord2f(1, 0);
glVertex2f(356, 0);
glTexCoord2f(1, 1);
glVertex2f(356, 356);
glTexCoord2f(0, 1);
glVertex2f(0, 356);
}
glEnd();
말할 필요 : 여기
는 직접 모드 통화입니다블렌딩 단계를 방해 할 수 있다는 것을 모르는 상태가 있습니까?
나는 blendfunc가 맞습니까? 그건 내가 봤어 인터넷 페이지에서 올바른 것 - 나는 GDEBugger에서 텍스처를 확인했습니다 그래서 이미지가 확실히 8 비트 알파 채널로로드되었습니다뿐만 아니라 알파 채널과 하나의 비트와 함께 이미지를 시도하고있다 알파 채널.
도움이 될 것입니다.
편집 :
답변에 대응 : 나는 토양 이미지 로딩 라이브러리를 사용하고, 나는거야 소스를 통해 살펴보고이 일을하는 방법을 참조하십시오. 지금 당장은 이미 렌더링 된 장면 위에이 이미지를 렌더링 할뿐입니다. 실제로는 깊이 문제에 직면하지 않았습니다. 사실 깊이 버퍼 테스트가 꺼져 있습니다.
잘 보이는, 어떤 제대로 보이지 않습니다 당신의 질감 코드, 당신의 glTexImage2D 호출을 게시 할 수 있습니다. –
내가 말했듯이, 그것은 라이브러리를 거치며 - 알파 이미지 로더 예제를 찾고 시도해 볼 수도 있습니다 - 정적으로 재 빌드하고 디버깅해야합니다 – Tomas
gDEBugger에서 볼 수 있듯이 모든 것이 순서대로 보입니다 - 이미지에 GL_COMPRESSED_ST3C_RBGA_DXT5_EXT 형식이 있습니다. – Tomas