내 세계는 8 진수로 분할되어 있으며 (각 트 리는 자동으로 분할됩니다.) 각 척에는 자체 인덱스 버퍼가 있습니다 (vbo가 공유 됨). 간단하고 최소한의 프리 패스에서 깊이 텍스처에 쓰기 위해 FBO를 설정했지만 다음 단계를 시각화하는 데 어려움을 겪고 있습니다.깊이 텍스처로 깊이가있는 폐색 OpenGL/GLSL (3.3/330)
전방에서 후방으로 절두체의 덩어리를 정리하고 깊이 텍스처로 렌더링하려고했습니다. 쓰기가 발생하지 않으면 척이 숨겨져 있다고 가정 할 수 있습니다. 그러나 FBO가 결합되어있는 동안 깊이있는 텍스쳐를 읽을 수 없다고 믿었 기 때문에 OpenGL에서 그러한 테스트가 가능한지 나는 알지 못합니다. 또한 비교 테스트가 어떻게 될지 전혀 모르겠습니다 (FBO를 이런 식으로 사용할 수 있습니까?)
다른 방법으로는 최종 렌더에 최종 깊이 텍스처를 사용하는 것입니다 (프래그먼트 셰이더로 전달). 프리 패스 (early Z?)에서 얻은 깊이 텍스처에서 결정된 값 뒤에 있다고 간주되는 조각을 닫습니다.
두 번째 방법으로 해결할 수 있지만 그리기 호출 및 재료 바인딩을 최소화하기 위해 청크를 닫는 것이 좋습니다.
나는이 방법에 대한 지식과 FBO에 대한 지식이 비교적 제한되어 있으며 섀도 매핑에 FBO 만 사용했기 때문에 누군가가 문제에 대해 밝힐 수 있기를 바랬다. 등.
불편을 끼쳐 드려 죄송합니다. 하드웨어 오 클루 젼 테스트에 대해서는 알고 있지만, '대기'가 필요없는보다 일반적인 깊이 오 클루 전 시스템을 구현하기를 희망했습니다.
EDIT : 프리 패스의 경우 필자는 단단히 조화를 이루는 경계 상자를 렌더링하기 시작했습니다.
당신이 무엇을 요구하고 있는지 명확하지 않습니다. 당신이 말하는 제안 된 많은 알고리즘은 실제로 의미가 없습니다. 예를 들어, 최종 깊이 버퍼 (일명 : 깊이 프리 패스)가있는 경우 왜 조각을 닫으려면 조각 쉐이더가 필요합니까? 이것은 물론 객체를 다시 렌더링함으로써 발생합니다. –
안녕 니콜, 네가하는 말을 이해할 것 같아. GFX 카드는 프래그먼트 셰이더에서 보간 할 때 깊이 테스트에 실패한 조각을 자동으로 닫습니다. 이것이 사실이라면 나는 심지어 프리 - 패스를 할 필요가 없다? 그러나, 내가 알아 내려고 시도하는 것은 최종 렌더링 패스에서 텍스처를 바인딩하는 것을 방지하기 위해 옥트리에서 반환 된 척과 함께 심도 교합 (depth occlusion)입니다. BSP 시스템과 같이 생각할 수 있지만 삼각형 덩어리 만 사용하고 깊이 버퍼를 사용하여 두 번째 패스 전에 전체 덩어리를 닫을 수 있습니다. – Rebirth