[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에서 실행되며, 그래픽 렌더링에 중요한 역할을 합니다. 올바르게 작성된 셰이더는 그래픽 애플리케이션의 시각적 품질을 향상시키는 데 도움이 됩니다.

참고 문헌: