2017-04-06 12 views
0

불투명 및 투명 오브젝트를 모두 포함하는 장면이 있습니다. 나는 그것들을 불투명하고 투명한 2 개의 그룹으로 나누고, 불투명 한 것을 앞에서 뒤로, 그리고 투명한 것을 뒤에서 앞으로 정렬한다. 깊이 버퍼 쓰기와 깊이 테스트를 켜고 불투명 항목을 앞에서 뒤로 그립니다. 그런 다음 깊이 쓰기를 해제하고 깊이 테스트를 ON으로 유지하고 투명한 항목을 앞뒤로 그립니다.OpenGL에서 독립적 인 투명도 주문

이 모든 것은 훌륭하지만 내가 이해하는 것으로부터 나는 특별한 순서없이 투명 아이템을 그릴 수있다. 나는이 하나의 기사 인 http://www.openglsuperbible.com/2013/08/20/is-order-independent-transparency-really-necessary/을 살펴 보았고 블렌딩 기능을 변경하여 순서에 독립적 인 투명성을 얻을 수 있다는 것을 알았습니다 ... 그러나 저는 이것을 정말로 이해할 수 없습니다.

거기에 제안 된 혼합 방정식을 사용했지만 일반 (GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA)을 사용하지 않는 한 겹치는 투명 항목에 대해 잘못된 결합 된 색상이 표시됩니다. 정말 보이는 것처럼 간단합니까? 방금 간단한 걸 놓친 거니?

+0

[OpenGL - 투명도를 독립적으로 만드는 방법?] (http://stackoverflow.com/questions/37780345/opengl-how-to-create-order-independent-transparency) – Vallentin

+1

데스크톱 용 OpenGL 또는 OpenGL ES? –

+1

또한 "주문이 중요 할 때"에 대해 언급 한 해당 문서의 내용을 읽었습니까? –

답변

0

"주문 독립 투명성은 블렌딩 기능을 변경하여 얻을 수 있습니다 ... 그러나 나는 이것을 정말로 이해할 수 없습니다."

나는 이것이 당신의 오해가있는 곳이라고 생각합니다.

블렌드 기능을 변경하여 순서 독립적 인 투명성을 달성 할 수있는 경우는 아닙니다. 일부 블렌딩 함수는 본질적으로 독립적 인 순서입니다.

일반적인 순서 독립적 인 두 가지 혼합 함수는 additive (GL_ONE, GL_ONE) 및 곱셈 (GL_DST_COLOR, GL_ZERO)입니다. 그러나 이들이 사용자의 상황에 맞는 올바른 혼합 기능이 아니라면 (일반적으로 그렇지 않은 경우) 기사에서 언급 한 A 버퍼와 같은 상대적으로 비싸고 복잡한 주문 독립적 인 투명성 솔루션을 사용하여 정렬하거나 정렬해야합니다. 연결된.