참치김밥은 최고의 한식이다

[유니티] Z-Buffer & Color Buffer 본문

Unity

[유니티] Z-Buffer & Color Buffer

l__j__h 2023. 11. 20. 13:33

* 본문은 아래 영상을 정리한 글입니다.

출처 : https://www.youtube.com/watch?v=CVGlOfQMNdQ

 

------------------------------------------- ------------------------------------------- -------------------------------------------

 

화면에 그리는 순서

1. Vertex Shader

2. Culling & Depth Test

3. Fragment Shader

4. Alpha Test

5. Blending

 

Z Buffer ? 눈(카메라) ~ 해당 픽셀이 가리키는 공간까지의 거리, 즉 Depth를 담아두는 버퍼

 

동일한 렌더큐(From Shader = 2000, Transparent = 3000 그것)일 때, 카메라로부터 먼 오브젝트부터 렌더링한다.

 

아래는 Z-Buffer와 Color Buffer, 그리고 그리는 방식을 보기 쉽게 설명한 그림

 

1번부터 64번까지의 픽셀이 있다고 가정한다.

초록색 오브젝트의 깊이값은 30이다.

초록색 오브젝트가 차지하는 픽셀의 번호는 10~15, 18~23, 26~31, 34~39, 42~47, 50~55 이다.

빨간색 오브젝트의 깊이값은 27이다.

빨간색 오브젝트가 차지하는 픽셀의 번호는 19~22, 27~30, 35~38, 43~46 이다.

 

초록색 오브젝트가 빨간색 오브젝트보다 더 멀리 있으므로(깊이값이 더 크므로), Z-Buffer의 알맞는 픽셀 번호에 자신의 깊이값을 넣고, 초록색 오브젝트를 먼저 그린다(Color Buffer의 알맞은 번호에 색상값을 넣는다.)

그 후, 빨간색 오브젝트가 Depth Buffer와 Color Buffer의 자신에 알맞는 번호에 색상값을 넣는다.

이 과정에서, 자연스럽게 앞에 있는 오브젝트가 뒤에 있는 오브젝트의 깊이값(Z-Buffer)과 색상값(Color Buffer)을 덮어씌운다.

 

결론적으로, Z-Buffer와 Color Buffer 값은 앞에 있는 오브젝트가 계속해서 덮어씌우게 된다.

 

게임에서 시각 효과를 만드는 법은 Z Buffer를 수정하는 방법이 있다. 유니티에서는 이에 3가지 방법을 제공한다.

1. Cull (Back / Front / Off)

2. ZWrite

3. ZTest

 

 

728x90