[유니티 쉐이더 스타트업] Part 02 | 쉐이더를 익히기 위한 기반 지식들
![post-thumbnail](https://velog.velcdn.com/images/jungizz_/post/c6da2bcb-3297-4b9e-bf9c-d8381aafdbbe/image.jpeg)
1. 랜더링 파이프라인 (랜더링 순서)
- 오브젝트 데이터 받아오기
- 그래픽카드는 vertex로 이루어진 물체의 데이터값을 받아온다.
- vertex는 index number, postition, normal, color등의 정보를 가짐
- 정점 쉐이더 (Vertex Shader)
- 카메라에서 물체를 볼 수 있도록 변환하는 과정
- Model(Local) Coordinates -> World Coordinates -> Camera Coordinates
- 로컬좌표계
MC
를 월드 변환 행렬과 곱해 월드좌표계WC
로 변환하고
- 카메라 행렬(View, Orthographic Projection)과의 곱을 통해 카메라 좌표계
CC
로 변환하여 카메라의 중심점에서 얼마만큼 떨어져있는지를 표현
- 그 뒤 프로젝션 행렬을 곱해 카메라에서 먼 곳은 좁혀진 것 처럼 원근감 부여 (Perspective projection인 경우에만 진행, Orthographic projection에서는 X)
- 텍스쳐, 음영이 없는 폴리곤 오브젝트를 단지 3D공간에 생성
☑️유니티에서는 이렇게 부른다
- 로컬좌표계: 오브젝트(Object) 좌표계
- 월드좌표계: 모델(Model)
- 래스터라이져 (Rasterizer)
- 모니터에 오브젝트를 표현해주는 과정 (오브젝트가 어느 픽셀로 표현될 것인지를 나타냄)
- 3D 오브젝트를 2D 픽셀 이미지(raster image)로 변환 (픽셀화)
- 매 프레임마다 진행됨
- 픽셀쉐이더(Pixel shader) / 프레그먼트 쉐이더(Fragment shader)
- 조명과 텍스쳐, 그림자 등 각종 특수효과등을 연산
2. 가산혼합
- 모니터에 표현되는 색과 빛의 기본원리
- RGB로 이루어진 색을 더하면 더할수록 밝아지고, 모두 더하면 흰색이 되는 색의 체계