Shader Uniform

정민용·2025년 9월 14일

WebGL

목록 보기
4/7

Quiz

1. 정점 셰이더에도 uniform vec4 offset;을 선언하고, 셰이더 코드의 main()함수 내부를 아래와 같이 바꿔 보세요.
	gl_Position = a_position + offset;

그리고 나서 JS쪽에서 offset uniform으로 값을 전달해서 결과가 어떻게 달라지는지 살펴보세요.

var vertexShaderSource = `#version 300 es
    layout(location=0) in vec4 a_position;

    uniform vec4 u_offset;

    void main() {
        gl_Position = a_position + u_offset;
    }
`;

2. Uniform에 값을 전달하기 위해서는 셰이더 프로그램이 활성화(바인딩)되어 있어야 합니다. 코드의 주석을 따라서 프로그램을 비활성화(언바인딩)하고 제대로 동작하는지 그렇지 않은지 확인해 보세요.
// gl.useProgram(program); // 컴파일 한 쉐이더를 바인딩

  • 셰이더 프로그램을 바인딩하지 않으면 정상적으로 렌더링되지 않음.

0개의 댓글