셰이더 상수 배열 설정 함수
이 문서는 셰이더 상수를 배열로 설정하는 함수에 대해 설명합니다. 이 함수는 shader_set_uniform_i_array로, 배열의 값을 셰이더 상수에 할당하는 데 사용됩니다.
함수 설명
shader_set_uniform_i_array 함수는 셰이더 상수를 설정하여 값의 배열을 보유하도록 합니다. 이 함수를 사용하기 전에 shader_get_uniform 함수를 통해 상수의 "핸들"을 가져와야 하며, 배열은 미리 초기화되어 있어야 합니다.
배열 값의 수
배열의 값 수는 설정하려는 유니폼의 총 값 수와 일치해야 합니다. 이는 데이터 타입의 구성 요소 수에 배열 길이를 곱한 값입니다. 예를 들어:
| 유니폼 타입 | 요구되는 값 수 |
|---|---|
uniform vec2 u_vUV; |
2 값 (2 * 1) |
uniform vec4 u_vColours[16]; |
64 값 (4 * 16) |
uniform float u_fIntensity[8]; |
8 값 (1 * 8) |
uniform mat4 u_mMatrices[4]; |
64 값 ((4x4) * 4) |
함수 문법
shader_set_uniform_i_array(handle, array);
인자 설명
| 인자 | 타입 | 설명 |
|---|---|---|
| handle | Shader Uniform Handle | 설정할 셰이더 상수의 핸들 |
| array | Array | 미리 초기화된 정수 값의 배열 |
반환값
N/A
활용 예제
다음은 shader_set_uniform_i_array 함수를 사용하는 예제입니다.
shader_set(shader_Glass);
col_array[0] = 255;
col_array[1] = 0;
col_array[2] = 255;
col_array[3] = 64;
col_array[4] = 128;
shader_params = shader_get_uniform(shader_tint, "cColourArray");
shader_set_uniform_i_array(shader_params, col_array);
draw_self();
shader_reset();
위 코드는 셰이더 상수 cColourArray의 핸들을 가져온 후, 주어진 배열로 해당 상수를 설정합니다.
추가 예제:
// 예제 1: 여러 색상을 배열로 설정
shader_set(shader_Texture);
color_array[0] = 255; // 빨강
color_array[1] = 0; // 초록
color_array[2] = 0; // 파랑
color_array[3] = 255; // 알파
shader_params = shader_get_uniform(shader_color, "u_ColorArray");
shader_set_uniform_i_array(shader_params, color_array);
// 예제 2: 조명 강도를 배열로 설정
intensity_array[0] = 1; // 첫 번째 조명
intensity_array[1] = 0.5; // 두 번째 조명
shader_params = shader_get_uniform(shader_light, "u_LightIntensity");
shader_set_uniform_i_array(shader_params, intensity_array);
이러한 예제들은 다양한 상황에서 shader_set_uniform_i_array 함수를 활용하는 방법을 보여줍니다.