Z Test = "이 픽셀이 카메라로부터 얼마나 앞/뒤에 있냐"로 거름
→ 깊이 버퍼와 비교해서 가려진 픽셀 버림
Alpha Test = "이 픽셀이 얼마나 투명하냐"로 거름
→ 알파값이 임계값(cutoff) 이하면 픽셀 자체를 아예 버림 (clip)

Z Test → Depth Buffer (깊이 버퍼)
픽셀의 깊이값(0~1) 기록
"이 위치에 뭔가 있다, 얼마나 멀리 있다"
Alpha Test → Color Buffer (색상 버퍼)
clip()으로 버린 픽셀은 아무 버퍼에도 안 씀
통과한 픽셀만 Color Buffer에 RGBA 기록
알파테스트 = 컷아웃은 모바일에서 earyl-z 를 무력화 하기에
(clip 함수가) 성능저하를 일으킨다
Early-Z란?
픽셀 셰이더 실행 전에 깊이(Depth)를 미리 검사해서 안 보이는 픽셀을 아예 계산하지 않는 최적화 기법
예시
카메라 앞에 벽이 있고 뒤에 캐릭터가 있을 때
Early-Z 없음 → 벽이랑 캐릭터 둘 다 셰이더 계산 후 캐릭터 버림
Early-Z 있음 → 벽 먼저 그리고 캐릭터는 "어차피 안 보이네" 하고 계산 자체 스킵
GPU가 셰이더 실행 전에는 cutoff 결과를 모른다
Early-Z는 깊이값만 보고 판단하는데, clip()의 결과는 텍스처 알파값에 달려있어서 셰이더 실행 전엔 알 수가 없다.
"깊이 테스트는 통과했는데... 근데 이 픽셀이 텍스처 샘플링 해봤더니 알파값이 cutoff 밑일 수도 있잖아?"
"텍스처 열어보기 전엔 모르는데?"
결국 쉐이더 돌려서 텍스쳐 샘플링 해봐야 clip 결과를알 수 있음