얼마 전에 얼굴이 다른 얼굴과 겹치는 시점을 확인하는 방법을 물었습니다. 조언은 Z- 버퍼를 사용하는 것이 었습니다.
그러나 현재 프로젝트에서 Z 버퍼를 사용할 수 없으므로 Painter의 알고리즘을 사용하고 싶습니다. 그러나 표면이 다른 표면 뒤에 있거나 앞에있을 때에 대한 좋은 실마리는 없습니다. 나는 많은 방법을 시도했지만 모두 경우에 실패하거나 일반적인 경우에도 실패합니다.
이것은 지금까지 시도한 정렬 방법의 목록입니다.
- 각면의 중간 점까지의 거리
- 각면의 각 꼭짓점까지의 평균 거리
- 각 꼭짓점의 평균 z 값
- 각면의 꼭짓점의 z 값을 숨기고 먼저 정점을 그립니다.
- 각면의 꼭짓점의 최저 z 값
문제는 얼굴의 거리가 더 멀어도 여전히 멀어 질 수 있다는 것입니다. 이 모든 방법은 신뢰할 수없는 것 같습니다.
편집 : 예를 들어, 다음 이미지에서 파란색 점이 더 가까우므로 중간 점이 파란색 포인트 인 표면이 빨간색 점이 중간 점 인 표면 위에 페인트됩니다. 그러나 이는 적색 점의 표면이 더 크고 중간 점이 더 멀기 때문입니다. 빨간색 점이있는 표면은 파란색 점 위에 칠해야합니다 . 중간 지점 거리가 반대라고 말하면 더 가깝기 때문 입니다.
Painter의 알고리즘에서 객체가 그려지는 순서를 결정하기 위해 정확히 무엇을 사용합니까?