2012-01-16 3 views
0

OpenGL을 사용하여 그림자 매핑을 수행하고 있습니다. 그림자 맵과 깊이를 비교할 때 z-fighting 문제가 있습니다. glPolygonOffset을 사용하여 문제를 해결할 수 있습니다. 이 함수는 z-fighting 문제가 해결 될 수 있도록 폴리곤을 약간 밀거나 당기는 데 도움이된다는 것을 알고 있습니다. 하지만 glPolygonOffset 함수에 대한 질문이 있습니다. 왜 다각형의 기울기가 오프셋과 관련이 있는지 명확하게 알지 못합니다. here에서왜 glPolygonOffset이 폴리곤의 기울기와 관련되어 있습니까?

은 :

요인 매개 변수는 거의 가장자리에있는 뷰어입니다 작성 프리미티브에 대한 올바른 결과를 확인하는 데 필요합니다. 이 경우 두 동일 평면상의 프리미티브에 의해 생성 된 동일한 픽셀에 대한 Z 값의 차이는 X 또는 Y의 최대 Z 기울기만큼 커질 수 있습니다.이 Z 기울기는 거의 에지가없는 프리미티브의 경우 크며 거의 존재하지 않습니다 페이스 온 (face-on) 프리미티브 용. factor 매개 변수를 사용하면이 유형의 변수 차이를 결과 깊이 오프셋에 추가 할 수 있습니다.

두 개의 동일 평면 기본 요소에 의해 생성 된 동일한 픽셀에 대한 Z 값의 차이가 X 또는 Y의 최대 Z 기울기만큼 커질 수있는 이유는 여기에 있습니다. "

답변

2

다각형에 Z 기울기가있는 경우 픽셀의 왼쪽 및 오른쪽 가장자리 사이의 z 좌표에 차이가 있습니다.

그래서 앞에 무엇인가를 넣으려면 픽셀에서 Z 좌표가 계산되는 위치에 상관없이 앞에 있어야합니다.

+0

답장을 보내 주셔서 감사합니다. 나는 여전히 이해하지 못했다. 픽셀의 왼쪽 및 오른쪽 가장자리는 무엇을 의미합니까? 전체 다각형이 관측점에 상대적으로 같은 거리를 더 이동하면 (여기에서는 거리가 다각형의 기울기에 독립적입니다), 무슨 일이 일어 났습니까? 아직도 z-fighting 문제가 있습니까? – ezheng

관련 문제