본문 바로가기
개발/Unity

Unity) Z-Fighting(제트 파이팅)

by 테샤르 2022. 7. 26.

Z-Fighting(제트 파이팅)

 Unity 에서 축의 좌표계중 그려지는순서를 결정하는 과정에서

Z축이 동일한 상황에서 서로 충돌나는 형태를 Z -Fight 이라고 표현한다.

설명
 두 게임 개체가 동일한 픽셀로 렌더링하려고 할 때 발생하며 깊이 버퍼(예: z 깊이)의 충실도 제한으로 인해 Unity에서 다른 개체 앞에 있는 개체를 식별할 수 없습니다. 개발자는 동일한 z 깊이 값을 위해 싸울 때 두 게임 개체 간에 깜박임을 알 수 있습니다. 카메라에서 z 깊이에 대해 계산할 각 개체에 대해 더 큰 범위의 값이 있으므로 24비트 깊이 형식으로 전환하여 이 문제를 해결할 수 있습니다.

 

반응형

해결방법으로는 순서를 명확하게 해주는 여러가지 방법이 존재한다.

Z축의 소수점 수치를 조정하는 방식

카메라의 클리핑 평면 거리를 변경해서 진행하는방식

RenderQueue를 명시적으로 진행하는방식

 

요즘은  Unity 에서 Layer, Sort 등 여러가지 방식으로 순서를 지정해주는 속성값이 많이 존재해서 

Z-Fight같은 현상을 생각보다 많이 안겪었는데 초창기 5.x 대의 Unity 3D에서 종종 경험하던 현상이었다.

 

Texture같은경우에는 Depth 설정을 확인해보자.

 

Unity RenderTexture.Depth  : [링크]

 

Unity - Scripting API: RenderTexture.depth

Set the format of the Depth/Stencil buffer. The selected format depends on the available formats on the platform and the desired format for 24bit depth. The property returns the actual number of bits for depth in the selected format. This can be different

docs.unity3d.com

 

★☆☆☆☆

 

반응형

댓글