va95 2023. 12. 28. 23:54
  • GLSL에서 사용 가능한 data type
    • 기본 타입: int, float, double, uint, bool
    • 벡터 타입:
      • vecX: float형 벡터
      • bvecX: bool형 벡터
      • ivecX: int형 벡터
      • uvecX: uint형 벡터
      • dvecX: double형 벡터
    • 행렬 타입: 
      • matX: float형 행렬
      • bmatX: bool형 행렬
      • imatX: int형 행렬
      • umatX: uint형 행렬
      • dmatX: double형 행렬
  • 벡터 원소 접근
    • .x, .y, .z, .w 인덱스를 사용
    • .rgba, .stpq도 동일한 방식으로 사용 가능
    • swizzling 가능
      • 얻어오고 싶은 인덱스를 연속으로 쓰기
      • .xyz => vec3

  • Vertex shader
    • 각 정점 별로 설정된 vertex attribute를 입력받는다
    • 몇 번째 attribute를 입력받을지에 대한 추가적인 설정을 할 수 있음
      • layout (location = n)
    • 반드시 정점의 출력 위치 gl_Position값을 계산해줘야 함
  • Rasterization
    • Vertex shader의 출력값을 primitive에 맞게 보간하여 픽셀별 값으로 변환 (Rasterization)
  • Fragment shader
    • Rasterization 과정을 거쳐 픽셀별로 할당된 vertex shader의 출력값이 입력됨
    • 각 픽셀의 실제 색상 값이 출력되어야 함

Uniform

  • GLint glGetUniformLocation( GLuint program, const GLchar *name);
  • glUseProgram
  • glUniformXX(GLint location, ...