반응형
앞뒤 판정을 위해서, 각 픽셀마다 카메라를 기준으로 가장 가까운 오브젝트의 깊이 값이 저정되는데 이게 Depth buffer 다.
가까운 쪽이 1이고 먼쪽이 0이라는 것 (1은 흰색 / 0은 검은색)
만약 두 플랜이 같은 Z값(포지션)에 존재한다면 두 플랜이 겹쳐서 서로 지글거리는 노이즈 현상이 발생하는데 이것을
Z fighting 이다.
자.. 정리 해보면 게임의 오브젝트를 그리는 순서는 정해져 있지 않고, 오브젝트가 그려질 때 마다 Z버퍼를 참고하여 앞뒤 판정을 한후 그릴 픽셀과 안 그릴 픽셀을 부분한다는 것이다...
- 불투명(Opaque)를 먼저 그리고
- 반투명(Transparent)를 나중에 그린다.
- 반투명 오브젝트끼리는 뒤에서 부터 그린다.(알파소팅)
- 알파소팅을 써봤자 완벽하게 앞뒤 판정을 제대로 하긴 힘들다.
- 알파블랜딩 쉐이더는 Z 값을 사용하지 않는다.
- 그래서 알파 테스팅 / 알파 클리핑을 사용한다. (PC에서는 알파블랜딩보다 연산이 더 빠르다)
- 단점은 외곽을 부드럽게 표현할수 없다.
반응형
'Shader > Urp shader' 카테고리의 다른 글
[URPShaderGraph] 홀로그램(Hologram) (0) | 2023.08.07 |
---|---|
[URPShaderGraph] 카툰 렌더링 (0) | 2023.08.03 |
[URPShaderGraph] Blending Mode (0) | 2023.08.01 |
[URPShaderGraph] 타들어가는 효과 베리에이션 (0) | 2023.08.01 |
[URPShaderGraph] 뎁스 페이드 (Depth Fade) (0) | 2023.07.29 |