2012-08-05 3 views
2

webgl에서 "깊이 필링"을 구현하려고하지만 문제는 폐색 쿼리가 없으므로 장면의 "필링"이 끝났을 때를 확인하는 방법을 모르겠습니다.폐색 쿼리없이 깊이 필링

다른 방법이 있습니까?

답변

2

일반적인 방법은 필링을 일정 단계로 제한하는 것입니다. 투명 구조의 많은 레이어가 서로를 식별하는 것이 불가능 해지기 때문에 오 클루 전 쿼리를 사용하는 것보다 때로는 더 좋습니다. 껍질을 벗기는 데 필요한 레이어의 양을 정확하게 예측하기 위해 정확히 무엇을 렌더링하는지 알 수 있습니다.

1

최근에 webgl에서 깊이 필링을 구현했습니다. 레이어로 껍질을 벗기는 것이 다소 어려워지는 몇 가지 제한 요소가 있습니다. 주로 매우 제한된 양의 텍스처 단위와 한 번에 하나의 대상에만 렌더링 할 수 있으므로 색상과 깊이를 별도로 렌더링해야합니다. 7 개의 텍스처를 사용하여 4 개의 필을 할 수 있습니다. 이미 프레임 당 11 렌더링 패스가 필요합니다. 더 많은 껍질을 벗기려면 중간 결과를 조금 더 정교하게 병합해야합니다. 나는 당신이 더 많은 껍질에서 많은 것을 얻는 것을 의심합니다.

+0

정확하게 이해한다면 모든 레이어를 껍질을 벗기지 않아도 사실적인 결과를 얻을 수 있습니까? – user1482030

+0

오른쪽, 그의 대답에 따르면, 투명 구조의 레이어가 너무 많아 서로를 식별 할 수 없게됩니다. – Roest

+0

질문 : 예를 들어 장면의 두 번째 레이어의 색상을 어떻게 수집합니까? 이 레이어의 깊이를 수집하는 것은 "쉽다"하지만 glsl es에 "gl_Color"명령이 없기 때문에 그렇게하는 법을 알지 못합니다. 감사합니다 – user1482030