[c++] OpenGL의 셰이딩 언어
버텍스 셰이더(Vertex Shader)
버텍스 셰이더는 각 정점의 위치, 색상 및 기타 속성을 변경합니다. 또한, 변환 매트릭스를 사용하여 3D 공간에서 2D 화면 좌표로 변환합니다.
#version 330
layout(location = 0) in vec3 inPosition; // 입력 버텍스 위치
layout(location = 1) in vec3 inColor; // 입력 버텍스 색상
out vec3 exColor; // 출력 버텍스 색상
void main()
{
gl_Position = vec4(inPosition, 1.0); // 정점 위치 설정
exColor = inColor; // 정점 색상 설정
}
픽셀 셰이더(Pixel Shader)
픽셀 셰이더는 래스터화된 각 픽셀의 색상을 계산합니다. 이는 조명, 그림자, 텍스처 매핑 및 기타 그래픽 효과를 구현하는 데 사용됩니다.
#version 330
in vec3 exColor; // 입력 버텍스 색상
out vec4 fragColor; // 출력 픽셀 색상
void main()
{
fragColor = vec4(exColor, 1.0); // 픽셀 색상 설정
}
이러한 셰이더는 OpenGL에서 GPU에서 실행되며, 그래픽 렌더링에 중요한 역할을 합니다. 올바르게 작성된 셰이더는 그래픽 애플리케이션의 시각적 품질을 향상시키는 데 도움이 됩니다.
참고 문헌: