GPU를 사용하여 방 안에서 물체를 그릴 때, 그리기 방식에 대해 더 세밀한 제어가 필요할 수 있습니다. 예를 들어, 알파 블렌딩을 사용하지 않거나, 컬링(culling)을 적용하거나, 텍스처 보간(interpolation)을 켜거나 끌 수 있습니다. 이러한 모든 작업은 아래에 나열된 GPU 컨트롤러 함수를 사용하여 가능합니다. 대부분의 함수는 전역적으로 적용되며, 설정하거나 변경하면 이후 모든 그리기에 영향을 미칩니다.
함수 참조
Getter 함수
함수 이름 |
설명 |
gpu_get_blendenable |
블렌딩 활성화 여부를 반환합니다. |
gpu_get_ztestenable |
Z 테스트 활성화 여부를 반환합니다. |
gpu_get_zfunc |
Z 함수의 설정을 반환합니다. |
gpu_get_zwriteenable |
Z 쓰기 활성화 여부를 반환합니다. |
gpu_get_depth |
깊이 값을 반환합니다. |
gpu_get_fogg |
안개 효과 활성화 여부를 반환합니다. |
gpu_get_cullmode |
컬링 모드를 반환합니다. |
gpu_get_blendmode |
블렌드 모드를 반환합니다. |
gpu_get_blendmode_ext |
확장 블렌드 모드를 반환합니다. |
gpu_get_blendmode_ext_sepalpha |
세퍼레이터 알파 블렌드 모드를 반환합니다. |
gpu_get_blendmode_src |
소스 블렌드 모드를 반환합니다. |
gpu_get_blendmode_dest |
대상 블렌드 모드를 반환합니다. |
gpu_get_blendmode_srcalpha |
소스 알파 블렌드 모드를 반환합니다. |
gpu_get_blendmode_destalpha |
대상 알파 블렌드 모드를 반환합니다. |
gpu_get_blendequation |
블렌드 방정식을 반환합니다. |
gpu_get_colourwriteenable |
색상 쓰기 활성화 여부를 반환합니다. |
gpu_get_alphatestenable |
알파 테스트 활성화 여부를 반환합니다. |
gpu_get_alphatestref |
알파 테스트 기준값을 반환합니다. |
gpu_get_texfilter |
텍스처 필터링 모드를 반환합니다. |
gpu_get_texfilter_ext |
확장 텍스처 필터링 모드를 반환합니다. |
gpu_get_texrepeat |
텍스처 반복 모드를 반환합니다. |
gpu_get_texrepeat_ext |
확장 텍스처 반복 모드를 반환합니다. |
gpu_get_scissor |
가위 모드를 반환합니다. |
Setter 함수
함수 이름 |
설명 |
gpu_set_blendenable |
블렌딩 활성화 여부를 설정합니다. |
gpu_set_ztestenable |
Z 테스트 활성화 여부를 설정합니다. |
gpu_set_zfunc |
Z 함수의 설정을 변경합니다. |
gpu_set_zwriteenable |
Z 쓰기 활성화 여부를 설정합니다. |
gpu_set_depth |
깊이 값을 설정합니다. |
gpu_set_fogg |
안개 효과 활성화 여부를 설정합니다. |
gpu_set_cullmode |
컬링 모드를 설정합니다. |
gpu_set_blendmode |
블렌드 모드를 설정합니다. |
gpu_set_blendmode_ext |
확장 블렌드 모드를 설정합니다. |
gpu_set_blendmode_ext_sepalpha |
세퍼레이터 알파 블렌드 모드를 설정합니다. |
gpu_set_blendequation |
블렌드 방정식을 설정합니다. |
gpu_set_blendequation_sepalpha |
세퍼레이터 알파 블렌드 방정식을 설정합니다. |
gpu_set_colourwriteenable |
색상 쓰기 활성화 여부를 설정합니다. |
gpu_set_alphatestenable |
알파 테스트 활성화 여부를 설정합니다. |
gpu_set_alphatestref |
알파 테스트 기준값을 설정합니다. |
gpu_set_texfilter |
텍스처 필터링 모드를 설정합니다. |
gpu_set_texfilter_ext |
확장 텍스처 필터링 모드를 설정합니다. |
gpu_set_texrepeat |
텍스처 반복 모드를 설정합니다. |
gpu_set_texrepeat_ext |
확장 텍스처 반복 모드를 설정합니다. |
gpu_set_scissor |
가위 모드를 설정합니다. |
블렌드 모드 함수 사용 전에 이들이 어떻게 작동하는지 이해하는 것이 중요합니다. 올바른 결과를 얻기 위해서는 블렌드 모드 사용 가이드를 참조하세요.
스텐실 버퍼
함수 이름 |
설명 |
gpu_get_stencil_enable |
스텐실 활성화 여부를 반환합니다. |
gpu_get_stencil_func |
스텐실 함수의 설정을 반환합니다. |
gpu_get_stencil_ref |
스텐실 참조 값을 반환합니다. |
gpu_get_stencil_pass |
스텐실 패스 설정을 반환합니다. |
gpu_get_stencil_fail |
스텐실 실패 설정을 반환합니다. |
gpu_get_stencil_depth_fail |
스텐실 깊이 실패 설정을 반환합니다. |
gpu_get_stencil_read_mask |
스텐실 읽기 마스크를 반환합니다. |
gpu_get_stencil_write_mask |
스텐실 쓰기 마스크를 반환합니다. |
gpu_set_stencil_enable |
스텐실 활성화 여부를 설정합니다. |
gpu_set_stencil_func |
스텐실 함수의 설정을 변경합니다. |
gpu_set_stencil_ref |
스텐실 참조 값을 설정합니다. |
gpu_set_stencil_pass |
스텐실 패스 설정을 변경합니다. |
gpu_set_stencil_fail |
스텐실 실패 설정을 변경합니다. |
gpu_set_stencil_depth_fail |
스텐실 깊이 실패 설정을 변경합니다. |
gpu_set_stencil_read_mask |
스텐실 읽기 마스크를 설정합니다. |
gpu_set_stencil_write_mask |
스텐실 쓰기 마스크를 설정합니다. |
GPU 스택
함수 이름 |
설명 |
gpu_push_state |
현재 GPU 상태를 스택에 푸시합니다. |
gpu_pop_state |
스택에서 GPU 상태를 팝합니다. |
gpu_get_state |
현재 GPU 상태를 반환합니다. |
gpu_set_state |
GPU 상태를 설정합니다. |
프러스텀 컬링
함수 이름 |
설명 |
gpu_get_sprite_cull |
스프라이트 컬링 활성화 여부를 반환합니다. |
gpu_set_sprite_cull |
스프라이트 컬링 활성화 여부를 설정합니다. |
활용 예제
// 블렌딩 활성화
gpu_set_blendenable(true);
// Z 테스트 활성화
gpu_set_ztestenable(true);
// 컬링 모드 설정
gpu_set_cullmode(cull_back);
// 텍스처 필터링 설정
gpu_set_texfilter(tex_filter_linear);
// 스텐실 활성화
gpu_set_stencil_enable(true);
// 스프라이트 컬링 비활성화
gpu_set_sprite_cull(false);
// 알파 테스트 활성화
gpu_set_alphatestenable(true);
// 알파 테스트 기준값 설정
gpu_set_alphatestref(128);
// 깊이 쓰기 활성화
gpu_set_zwriteenable(true);
// 안개 효과 활성화
gpu_set_fogg(true);
// 블렌드 모드 설정
gpu_set_blendmode(blend_alpha);
// 스텐실 패스 설정
gpu_set_stencil_pass(stencil_keep);
// 스텐실 실패 설정
gpu_set_stencil_fail(stencil_decrement);
// 스텐실 깊이 실패 설정
gpu_set_stencil_depth_fail(stencil_decrement);