Shader Get Uniform 설명 및 활용 예제
개요
shader_get_uniform 함수는 셰이더 상수의 핸들을 가져오는 데 사용됩니다. 셰이더 내부에서 상수 값을 변경할 수 없기 때문에, 셰이더를 호출하기 전에 이 함수를 사용하여 상수의 핸들을 가져와야 합니다. 이 함수는 두 개의 프로그램(버텍스와 프래그먼트)을 구분하지 않고, 지정된 셰이더 상수의 핸들을 반환합니다.
문법
shader_get_uniform(shader, uniform);
인수 설명
| 인수 | 유형 | 설명 |
|---|---|---|
| shader | Shader Asset | 사용할 셰이더의 핸들입니다. |
| uniform | String | 핸들을 가져올 셰이더 상수의 이름입니다. |
반환값
- 셰이더 상수 핸들
예제
다음 코드는 "u_vRefractColour"라는 셰이더 상수의 핸들을 가져오는 예제입니다.
shader_params = shader_get_uniform(shd_glass, "u_vRefractColour");
활용 예제
1. 셰이더 상수 설정하기
// 셰이더를 활성화
shader_set(shd_glass);
// 셰이더 상수 핸들 가져오기
shader_params = shader_get_uniform(shd_glass, "u_vRefractColour");
// 셰이더 상수 값 설정
shader_set_uniform_f(shader_params, 1.0, 0.5, 0.5);
2. 여러 셰이더 상수 사용하기
// 셰이더 활성화
shader_set(shd_water);
// 각 상수의 핸들 가져오기
color_param = shader_get_uniform(shd_water, "u_color");
wave_param = shader_get_uniform(shd_water, "u_waveSpeed");
// 셰이더 상수 값 설정
shader_set_uniform_f(color_param, 0.0, 0.0, 1.0); // 파란색
shader_set_uniform_f(wave_param, 0.1); // 파도 속도
3. 셰이더 상수 업데이트하기
// 셰이더 활성화
shader_set(shd_light);
// 조명 강도 핸들 가져오기
light_intensity_param = shader_get_uniform(shd_light, "u_lightIntensity");
// 조명 강도 값 업데이트
shader_set_uniform_f(light_intensity_param, 2.0);
이와 같이 shader_get_uniform 함수를 활용하여 셰이더 상수를 효과적으로 관리하고 설정할 수 있습니다.