본문 바로가기
학교/프로그래밍 언어

OpenGL #1

by ehei 2024. 5. 4.

파이프라인

Vertex Specification

입력된 정점의 기하 정보를 처리하는 단계

Primitive Assembly

정점을 결합하여 기본 형태(primitive)로 변환 - 점, 선, 삼각형

Rasterization

3차원 좌표로 표시되는 정점을 2차원 좌표계로 변환하는 과정

Fragment Shader

픽셀의 색상 처리

 

 

 

 

셰이더 Shader

프로램 가능한 파이프라인(Programmable Pipeline). 프로그래밍 언어를 사용하여 렌더링 결과를 변경 가능

  • HLSL Hight Level Shader Language
  • GLSL OpenGL Shader Language

레지스터 Register

실수(float) 형식의 4개를 묶어 사용

데이터 형

  • 벡터 vec2, vec3, vec4: 좌표(xyzw), 텍스처 좌표(stpq), 색상(rgba)의 어트리뷰트로 접근 가능
  • 행렬 mat2, mat3, mat4: 열 우선. 아래 행렬의 경우 다음과 같이 저장: [a11, a21, a31, ..]
    • mat3: 3x3 행렬
    • mat4: 4x4 행렬
    • mat3x4: 3x4 행렬
  • 구조체 선언 가능

스위즐링 Swizzling

v.xxyy;
v.argb;
v.zw;

함수 인자

// 반환용 키워드: out
void foo( in float x, out float y, inout float z ) {
	...

Uniform 레지스터

프로그래머블한 변수를 설정하는 역할. 카메라 행렬, 화면 크기 등

uniform mat4 xform;

한정자 Qualifier

const

volatile

readonly / writeonly

highp / medump / lowp 실수 정밀도

precision lowp float;

https://www.khronos.org/opengl/wiki/Type_Qualifier_(GLSL)

3D 월드 좌표계

https://learnopengl.com/Getting-started/Hello-Triangle

소스

삼각형 그리기 https://github.com/ehei1/learnOpenGL/tree/main/02%20HelloTriangle

'학교 > 프로그래밍 언어' 카테고리의 다른 글

OpenGL #0  (0) 2024.04.30
C# ready  (0) 2024.04.21