[OpenGL] 7. Shader Programming
📌 Shader Programming
Fixed Rendering Pipeline
- Per-Vertex Lighting 계산만 지원한다.
- Lighting 계산은 Vertex Processor에서만 이루어진다.
- 하이라이트에서 오는 반사성 효과는 무시한다.
Programmable rendering pipeline
- Per-Fragment Lighting 계산을 지원한다.
- Lighting 계산이 Fragment Processor에서도 이루어진다.
- Fragment Processor 이전엔 Surface Normal을 계산한다.
- 하이라이트에서 오는 반사성 효과를 나타낼 수 있다.
GLSL
Shading Progress
- 두 종류의 Shader를 지원한다.
- Vertex Shader, Fragment Shader
- C언어로 된 코드를 컴파일&링크하여 Shader Program으로 가공하여 그래픽카드에서 사용한다.
I/O Storage Qualifiers
- Uniforms
- 전역 값이며 렌더링 중 값이 변하지 않는다.
- Vertex/Fragment Shader 모두 접근 할 수 있다.
- Read-Only
- Attributes
- Vertex Shader의 입력 값이다.
- Vertex만 접근 할 수 있다.
- Read-Only
- Varyings
- Vertex Shader의 출력 값, Fragment Shader의 입력 값이다.
- Vertex/Fragment Shader 모두 접근 할 수 있다.
- Fragment Shader에서는 Read-only이다.