본문 바로가기
셰이더 (Shader)/유니티 쉐이더 스타트업 - 정종필

[Unity/Shader] 파트16-2 : 반투명 (알파 블렌드 Alpha Blend)

by Minkyu Lee 2023. 8. 23.

이전에 배운 내용

게임 오브젝트들을 그리는 순서는 정해져 있지 않다.

오브젝트가 그려질 때마다 z버퍼를 참고로 앞 뒤 판정한 후 그려진다.

 

반투명일 때는?

앞에 있는 반투명 오브젝트가 먼저 그려지고, 뒤에 있는 불투명 오브젝트가 그려지는 경우 문제가 생긴다. 

지워지지 않아야할 부분까지 지워진다. (아래 그림 참고)

 

해결법

1. 불투명 오브젝트는 먼저 그린다.

2. 반투명 오브젝트는 나중에 그린다.

    하지만 여기까지만 하면 반투명끼리의 문제는 해결되지 않는다.

3. 반투명끼리는 멀리 있는 것부터 차례대로 그린다.

    누가 멀리 있는지 오브젝트끼리 거리를 잰다. 이것들을 정렬한다. 이것을 알파 소팅이라고 한다.

 

반투명 그리기의 문제점

1. 불투명 오브젝트 다 그려질때까지 대기해야한다.

2. 반투명끼리의 거리 연산을 해야한다.

3. 디퍼드 렌더러는 반투명 처리가 어렵다. 그래서 포워드 렌더링으로 따로 그려줘야한다.

그래서 퍼포먼스에 악영향을 준다.

댓글