티스토리 뷰
Q: Vertex Shader와 Fragment Shader의 차이는?
A:
Shader 파일들은 GPU에서 실행되는 작은 프로그램으로, 그래픽 렌더링의 핵심 역할을 수행합니다. 각각의 파일은 특정 단계의 그래픽 처리를 담당하는데요, 주요 역할은 다음과 같습니다:
- Vertex Shader (예: vertex.glsl):
- 각 정점(버텍스)의 좌표를 처리합니다.
- 모델 변환, 뷰 변환, 투영 변환 등을 적용하여 최종적으로 화면에 표시될 위치(clip space 좌표)를 계산합니다.
- 본 예제에서는 정점 좌표에 uniform 변수인 u_translation을 더해 정사각형의 위치를 조정합니다.
- Fragment Shader (예: fragment.glsl):
- 화면의 각 픽셀(프래그먼트)의 색상을 결정합니다.
- 정점 셰이더에서 계산된 결과를 바탕으로 픽셀 단위의 색상을 출력하며, 본 예제에서는 모든 픽셀을 빨간색으로 칠합니다.
이처럼 Shader 파일들은 GPU의 병렬 처리 능력을 활용하여, 복잡한 변환이나 색상 처리를 효율적으로 수행하고, 최종적으로 원하는 그래픽을 화면에 출력하는 데 필수적인 역할을 합니다.