WebGL에서 Shader 활용 - 커스텀 머터리얼 만들기
🖌 셰이더(Shader)란?
셰이더(Shader)는 GPU에서 실행되는 프로그램으로, WebGL에서는 GLSL(오픈GL 셰이딩 언어)를 사용하여 커스텀 머터리얼을 만들 수 있음.
기본적으로 **Vertex Shader**와 **Fragment Shader** 두 가지가 있음.
🧩 Vertex Shader vs Fragment Shader
셰이더 유형 | 설명 |
---|---|
Vertex Shader | 각 정점(vertex)의 위치를 계산함. |
Fragment Shader | 각 픽셀(Fragment)의 색상을 계산하여 머터리얼을 생성함. |
📌 기본적인 WebGL 셰이더 코드
javascript
// Vertex Shader
const vertexShaderSrc = `
attribute vec4 a_position;
void main() {
gl_Position = a_position;
}
`;
// Fragment Shader (기본 빨간색 출력)
const fragmentShaderSrc = `
precision mediump float;
void main() {
gl_FragColor = vec4(1.0, 0.0, 0.0, 1.0); // 빨간색
}
`;
🎨 커스텀 머터리얼 만들기
위 코드를 활용하여 WebGL에서 다양한 머터리얼을 만들 수 있음.
예를 들어, GLSL을 사용하여 텍스처를 추가하면 보다 사실적인 머터리얼을 제작할 수 있음.
// 텍스처를 적용한 Fragment Shader 예제
const fragmentShaderSrc = `
precision mediump float;
uniform sampler2D u_texture;
varying vec2 v_texCoord;
void main() {
gl_FragColor = texture2D(u_texture, v_texCoord);
}
`;
🎯 결론
- **WebGL에서 셰이더를 사용하면 커스텀 머터리얼을 만들 수 있음.**
- **Vertex Shader는 정점 위치를, Fragment Shader는 픽셀 색상을 결정함.**
- **텍스처 및 조명을 추가하면 더 현실적인 그래픽을 구현 가능!**