728x90

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상공작


출처 : http://blog.naver.com/softcool/110025105010

728x90

+ Recent posts