z-fighting 이란 두개의 폴리곤(primitive)이 유사한 z-depth값을 갖고있어 노이즈가 발생한것 처럼 깜박거리는 현상이다.(폴리곤이 깨지거나 랜덤하게 겹쳐지게 된다)
이는 z-buffer알고리즘을 사용하는 3D그래픽스 시스템에서는 피할수없는 현상이며 프로그래머가 잘 판단해서 피해가는 것이 해결책이다.
일반적으로 16,24,32 bits크기의 z-buffer를 사용하기 때문에.. 즉, 값이 유한하기 때문에 발생할 수밖에 없다.
3차원 공간상에 두개이상의 폴리곤이 동일한 위치에 겹쳐있는 경우와 폴리곤이 서로 근접해있는 경우에 발생한다.
near와 far plane간의 간격을 조절하면 대부분의 경우 이러한 현상을 회피할 수 있다.
카메라에 근접할 수록 z-depth값에 대한 가중치가 높아지기 때문에 주로 near plane 값을 카메라로부터 멀리 조절하면 된다.
참고로 z-buffer의 계산식은 아래와 같다
2^(Depth Bit) * ( (zFar / ( zFar - zNear ) ) + (Far * zNear / ( zNear - zFar )) / distance )
====================================================
[참고사이트]
http://en.wikipedia.org/wiki/Z-fighting
http://jmonkeyengine.com/mark/?p=136
http://en.wikipedia.org/wiki/W-buffering#W-buffer
[출처] z-fighting 관련|작성자 상http://blog.naver.com/softcool/110025105010상공작
'Visualization Programming > Basic Knowledge' 카테고리의 다른 글
Basic Knowledge - Bloom Effect (0) | 2017.04.19 |
---|---|
Basic Knowledge - 짐벌락 (Gimbal Lock) (0) | 2017.04.19 |
Basic Knowledge - Pitch , Yaw , and Roll Systems (0) | 2017.04.19 |
Basic Knowledge - FOV (Field of View) (0) | 2017.04.19 |
Basic Knowledge - 렌더링 파이프라인 (0) | 2017.04.19 |