shader_set_uniform_f_array 함수 설명
shader_set_uniform_f_array 함수는 셰이더 상수를 부동 소수점 값의 배열로 설정하는 데 사용됩니다. 이 함수를 사용하기 전에 shader_get_uniform 함수를 통해 상수의 "핸들"을 가져와야 하며, 배열도 미리 초기화되어 있어야 합니다.
주요 사항
- 배열의 값의 수는 설정하려는 유니폼의 총 값 수와 일치해야 합니다.
- 데이터 유형의 구성 요소 수에 배열 길이를 곱한 값이 필요합니다.
예를 들어: - uniform vec2 u_vUV;는 2개의 값을 기대합니다. - uniform vec4 u_vColours[16];는 4 * 16 = 64개의 값을 기대합니다. - uniform float u_fIntensity[8];는 1 * 8 = 8개의 값을 기대합니다. - uniform mat4 u_mMatrices[4];는 (4x4) x 4 = 64개의 값을 기대합니다.
문법
shader_set_uniform_f_array(handle, array);
인수 설명
| 인수 | 유형 | 설명 |
|---|---|---|
| handle | Shader Uniform Handle | 설정할 셰이더 상수의 핸들입니다. |
| array | Array | 미리 초기화된 부동 소수점 값의 배열입니다. |
반환값
- N/A
활용 예제
예제 1: 기본 사용법
shader_set(shader_Glass);
tex_array[0] = 0.5;
tex_array[1] = 0.1;
tex_array[2] = 0.25;
shader_params = shader_get_uniform(shader_Glass, "u_vParams");
shader_set_uniform_f_array(shader_params, tex_array);
draw_self();
shader_reset();
예제 2: 색상 배열 설정
shader_set(shader_Color);
color_array[0] = 1.0; // Red
color_array[1] = 0.0; // Green
color_array[2] = 0.0; // Blue
color_array[3] = 1.0; // Alpha
shader_params = shader_get_uniform(shader_Color, "u_vColours");
shader_set_uniform_f_array(shader_params, color_array);
draw_self();
shader_reset();
예제 3: 다중 행렬 설정
shader_set(shader_Matrix);
for (var i = 0; i < 4; i++) {
for (var j = 0; j < 4; j++) {
matrix_array[i * 4 + j] = some_matrix[i][j];
}
}
shader_params = shader_get_uniform(shader_Matrix, "u_mMatrices");
shader_set_uniform_f_array(shader_params, matrix_array);
draw_self();
shader_reset();
이 문서에서는 shader_set_uniform_f_array 함수의 사용법과 예제를 통해 셰이더 상수를 배열로 설정하는 방법을 설명했습니다.