반응형
<프로그램 영역>
1. Application
- Opengl 함수를 호출하는 프로그램 영역
- 그리고 싶은 정점의 위치 /색상 등을 입력한다.
- 3D의 그래픽의 오브젝트 단위는 삼격형이고 2D의 그래픽의 오브젝트는 단위는 픽셀이다.
- 삼각형인 이유는 픽셀인 이라면 정교한 오브젝트를 만들 때 그래픽 리소스가 너무 많이 들고 가상의 카메라로 어떠한 위치에 배치될지 계산하기가 용의하다
<GPU 영역>
2. Geometry Processting
정점 단위의 처리. 정점의 위치 결정
3. Rasterization
정점 단위로 구성된 삼각형을 픽셀 단위로 결정
4. Pixel Processing
각 픽셀의 단위를 처리하여 픽셀의 색상을 결정
하지만 각 GPU안에서 돌아가는 작은 프로그램(Shader Programe)을 처리하여 GPU를 조금 제어할 수 있음
Opengl 3.3 이후에는 Vertex shader와 Framgment shader는 반드시 필수로 작성해야 한다.
# Programmable shader
- Shader: 각 파이프라인 단계마다 GPU 상에서 실행되는 작은 프로그램
- GLSL(GL Shading Language)라는 C기반 프로그래밍 언어로 작성
# Shader 코드의 빌드 방법
1. 일반적으로, Opengl 코드 내에서 빌드 / 로딩됨
2. 미리 빌드한 뒤 로딩하는 방법: SPIR-V 이용
반응형
댓글