
z버퍼와 Opaque
앞 뒤 겹쳐진 물체들이 있다.
앞 뒤 판정을 위해서는 각 픽셀마다 카메라를 기준으로 가장 가까운 오브젝트의 깊이 값이 저장되어 있는 데이터 시트가 필요하다.
이 깊이값을 각 픽셀별로 써놓은 그림을 Z버퍼 또는 뎁스 버퍼(Depth Buffer) 라고 한다.

(출처:https://eccarrilloe.github.io/2017/09/24/Rasterization-Z-buffer-Algorithm/)
알파 블렌딩
하지만 위 규칙은 불투명(Opaque)에서는 문제가 없지만 반투명이 끼어들면 문제가 생긴다.
알파때문에 보이지 않는 부분까지 Z버퍼를 써서 뒤 오브젝트가 뚫려보이는 문제

(출처:https://rito15.github.io/posts/unity-transparent-stencil/)
이 문제를 해결하기 위해서는 밑의 방법을 사용한다
하지만 '반투명끼리'의 문제가 생긴다. 그래서 생긴 규칙
알파 블렌딩들은 카메라에서 먼 것부터 그린다 (알파 소팅)
하지만 이것은 피봇 기준이기 때문에 카메라가 움직이면 순서는 계속 변하게 될 수 있음...
또한 오브젝트 크기가 극명하게 다를 때 문제가 발생
z값에 의해 사각으로 뚫려 버리는 현상은 막고자 Z버퍼에 자신의 위치 값을 입력하지 않는다 (Zwrite를 off한다.)
-> 앞 뒤 문제는 해결X 하지만 뚫려보이는 문제는 사라짐
알파 테스팅/클리핑
알파 테스팅은 Opaque상태에서 Alpah Clipping 하는 방법
Alpha Clip Threshold 수치로 외곽을 얼마만큼 잘라버릴지 정한다.
-> 장점: 소팅문제 발생 X, 연산이 빠르다/ 단점: 외곽이 거칠게 표현될 수 있음
Depth Test
: 내가 그려질 때 이미 있는 Z버퍼를 읽어서 그 값으로 어떻게 할 거냐 를 결정하는 것
기본 값은 L Equal
Blending Mode -세팅
Quad에 unlit 셰이더 적용된 머터리얼을 적용시켜준다


이제 여기있는 블렌딩모드를 만져보겠다

Blending Mode - Alpha/Premultiply
기본 옵션은 alpha
premultiply는 알파 채널을 RGB채널에 미리 곱해놓고 투명도를 떨어뜨려 보다 정상적으로 연산되게 하는 방법
Blending Mode - Additive
배경이미지와 더해지면서 밝아지는 특성
이미지에 알파채널이 없어도 검은색으로 갈 수록 투명해진다. 앞 뒤 문제가 여전히 있지만 전혀 보이지 않는다

왼:alpha 오:additive
Blending Mode - Multiply
배경과 겹치면 어두워지고 겹치면 겹칠수록 어두워진다
알파채널이 없어도 흰색이 자동으로 투명해지는 방식
