- 버텍스 쉐이더 : 그려질 위치를 결정.
- 프래그먼트 쉐이더 : 칠할 색을 결정.
1. 버텍스 쉐이더
- 주어진 꼭지점(정점)에 대해서 대응되는 화면상의 정점을 출력하는 함수이자 프로그램이다.
ex) 3D상에 존재하는 것을 => 화면상 위치로 변환
현실 물체 => 종이 위에 스케치
Q. 그렇다면 버텍스 쉐이더가 필요한 이유는?
- 현실의 물체가 아무리 동일한 형태로 존재한다 하더라도 어느 각도에서 어떻게 바라보느냐에 따라서 종이 위에 어떻게 그릴지를 결정하고 (밑그림을) 그려야지 색을 칠할 수 있기 때문에 필요하다!
=> 현실에서의 물체의 꼭지점이 종이 위에 어떻게 그려질지(배치될까) 결정한다!
2. 프래그먼트 쉐이더
- 순서 : 버텍스 쉐이더 => 레스터라이져 => 프래그먼트(픽셀)셰이더
- 밑그림이 완성된 그림을 받아서 그 위에 색만 칠하는 작업을 한다!
(최종 출력 될 픽셀의 색을 결정한다! 색칠할 대상의 위치는 결정하지 못한다.)
- 쉐이더는 GPU의 병렬성을 이용한 언어이다.
ex) n개의 입력이 있다면?
n개의 입력을 받으면 한 번에 하나의 정점만 받고 하나씩 처리하는 것이 아니라, 여러개를 동시에 n개 처리하는 방식으로 이루어진다!
즉, n개 입력 => 정점 쉐이더 n번 실행(하나씩 입력) => 결과물 n개(출력)- 삼각형을 받았다.
- 3개의 정점을 따로따로 받는다.
- 제 각각 출력된다. (3개)