2025.07.02 graphics
[ graphics ]

Learn OpenGL

Shaders

GLSL

// 버전 선언, 사용할 OpenGL 버전 명시
#version 330 core

// 입력 변수(in)
in type aPos; // 위치 데이터
in type aColor; // 색상 데이터
// 출력 변수 (out)
out type out_variable_name; // 다음 셰이더로 전달할 데이터
// 유니폼
uniform type uniform_name; // CPU에서 전달받는 전역 변수
// 모든 처리 로직이 들어가는 main 함수
void main()
{
    // 입력을 처리하고 그래픽 관련 작업 수행
    ...
    // 처리된 결과를 출력 변수에 저장
    out_variable_name = weird_stuff_we_processed;
}

Types

Vectors

Ins and outs

vertext shader의 특별한 점

  1. 입력 데이터
    • vertex data로 부터 직접 입력을 받음
  2. layout 지정자
    • 어느 위치의 데이터를 받을지 알려주는 주소 표시

fragment shader의 특별한 점

Uniforms

More Attributes

Fragment Interpolation