OpenGL에서는 대면 폴리곤 만, 앞면 다각형 만 또는 두 가지 모두를 그릴 수 있습니다. 매니 폴드 삼각형 메쉬를 렌더링 한 다음 프레임 버퍼는 지우지 만 깊이 버퍼는 지우지 말고 다시 마주 보는 다각형 만 다시 렌더링합니다. 기대하는 것은 무엇입니까?OpenGL에서 다각형을 마주보고
나는 나에게 주어진 다음과 같은 대답이 잘못 생각 :
당신은 삼각형에 직면 뒷면을 볼 수 있습니다. 첫 번째 렌더링 패스는 이 정면 인 삼각형의 깊이 값이 인 깊이 버퍼가됩니다. 두 번째 렌더링 패스 은 다시 삼각형을 향하게 렌더링됩니다. 따라서 최대 깊이 값은 입니다. 래스터 화 된 모든 삼각형 의 깊이는이 픽셀의 현재 깊이 인 에 비해 입니다. 깊이 버퍼가 모두 가까운 깊이 값 (작은 값)으로 설정되어 있지만되기 때문에 은 먼 깊이 값 (큰 값) 삼각형을 직면하고 다시 렌더링됩니다 차별. "
하지만 생각하는 대답은 :
.깊이 버퍼를 삭제되지 않기 때문에, 여전히 삼각형에 직면 전면의 깊이 값을 포함, 그것은 삼각형을 직면하고 다시 밖으로 던져, 아무것도 표시하지 않을 것이다
어떤 답이 맞습니까?
개체가 단면 메쉬 인 경우 (즉, 3 개의 꼭지점마다 하나의 삼각형 만 제공하고 하나의 법선으로 한 번만 렌더링되는 경우), 뒤쪽 삼각형은 사용자가 말한대로 렌더링되지만 오브젝트가 매니 폴드가 아닙니다 (법선이 뒤집는 점이 있어야합니다.) 양면으로 렌더링하면 각 픽셀마다 앞면과 뒷면이 같은 삼각형이 같은 깊이로 표시됩니다. 심도 함수가 GL_LEQUAL, GL_EQUAL, GL_GEQUAL 또는 GL_ALWAYS 인 경우 뒤쪽에있는 것들은 두 번째 패스에서만 렌더링됩니다. –