새소식

그래픽

[Unity Shader URP] 투명오브젝트 정렬 문제

  • -

 

투명 오브젝트에 관한 현상

 

조건 1 : 왼쪽 오브젝트가 오른쪽 오브젝트보다 앞에 있는 경우

왼쪽 오브젝트가 오른쪽 오브젝트에 일부 가려진 모습

 

 

조건 2 : 오른쪽 오브젝트가 왼쪽오브젝트보다 앞에 있는 경우

오른쪽 오브젝트가 왼쪽 오브젝트에 일부 가려진 경우

 

 

문제 :

Transparent 쉐이더임에도 불구하고, 오브젝트의 순서에 따라 그리는 것이 달라짐

그리는 순서는 Depth Buffer에 저장된 오브젝트 피봇 기준으로 정해지는 것인데, 이 순서에 따라서

마지막 alpha blend 과정에서 뒤에 먼저 그려진 오브젝트에 가려지는 픽셀은 탈락이 되어버리는 것임.

 

 

해결 :

1. z_Test를 off 해서 무조건적으로 그려지게 만들기

-문제점 : 이 오브젝트는 어떠한 오브젝트에 가려지든 그려진다.

2. Z-Write를 off 해서 투명오브젝트의 경우 무조건적으로 겹쳐서 그리도록 만든다.

- 문제점 : OverDraw가 발생[픽셀 덧씌우기]

Contents

아핫

땡큐하다