Shader Set Uniform Matrix 함수 설명
shader_set_uniform_matrix 함수는 셰이더 상수의 값을 현재 변환 행렬로 설정하는 기능을 제공합니다. 이 행렬은 Matrix Functions를 사용하여 설정됩니다. 이 함수를 사용하기 전에 shader_get_uniform 함수를 통해 상수의 "핸들"을 먼저 얻어야 합니다.
문법
shader_set_uniform_matrix(handle);
인수 설명
| 인수 | 타입 | 설명 |
|---|---|---|
| handle | Shader Uniform Handle | 설정할 셰이더 상수의 핸들입니다. |
반환값
N/A
예제
다음은 shader_set_uniform_matrix 함수를 사용하는 예제입니다:
shader_set(sh_glass);
shader_matrix = shader_get_uniform(sh_glass, "u_vMatrix");
shader_set_uniform_matrix(shader_matrix);
draw_self();
shader_reset();
위의 코드는 u_vMatrix라는 셰이더 상수의 핸들을 가져온 후, 해당 상수를 현재 변환 행렬로 설정합니다.
활용 및 응용 예제
예제 1: 기본 변환 행렬 설정
// 셰이더 설정
shader_set(sh_basic);
shader_matrix = shader_get_uniform(sh_basic, "u_transformMatrix");
shader_set_uniform_matrix(shader_matrix);
draw_self();
shader_reset();
예제 2: 사용자 정의 변환 행렬 적용
// 사용자 정의 행렬 생성
var custom_matrix = matrix_build(1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1);
shader_set(sh_custom);
shader_matrix = shader_get_uniform(sh_custom, "u_customMatrix");
shader_set_uniform_matrix(shader_matrix);
draw_self();
shader_reset();
예제 3: 애니메이션 효과를 위한 변환
// 애니메이션을 위한 변환 행렬 설정
var angle = current_time * 0.01; // 시간에 따라 각도 변화
var anim_matrix = matrix_build_rotation_z(angle);
shader_set(sh_animation);
shader_matrix = shader_get_uniform(sh_animation, "u_animMatrix");
shader_set_uniform_matrix(shader_matrix);
draw_self();
shader_reset();
이러한 예제들은 shader_set_uniform_matrix 함수를 활용하여 다양한 변환 행렬을 셰이더에 적용하는 방법을 보여줍니다.