vertex는 program과 동의어다.
GPU rendering을 위해서 vertex shader와 fragment shader 두 가지 프로그램을 작성해야한다.
rasterizer와 output merger는 하드웨어로 고정된 단계로, 정해진 연산을 수행한다.
vertex shader는 vertex arrat에 저장된 모든 vertx에 대해서 transform을 비롯한 다양한 연산을 수행한다.
rasterizer는 변환된 vertex들로 삼각형들을 조립한 후, 각 삼각형 내부를 차지하는 fragment를 생성한다.
한 fragment는 color buffer의 한 pixel을 갱신하는 데 필요한 데이터를 총칭한다.
예를 들어, 스크린에서 100개의 pixel을 차지하는 삼각형이 있다면,
이 삼각형으로부터 총 100개의 fragment가 만들어진다.
rasterizer가 출력한 fragment는 하나하나 fragment shader로 입력되어,
lighting과 texturing 작업을 거쳐 색상이 결정된다.
output merger는 이러한 fragment와
현재 color buffer에 저장된 pixel 중 하나를 선택하거나 혹은 이들의 색을 결합하여,
color buffer를 갱신한다.
vertex shader가 수행하는 세 가지 transform