vertex_create_buffer_from_buffer 함수 설명
vertex_create_buffer_from_buffer
함수는 지정된 소스 버퍼에서 데이터를 복사하여 새로운 정점 버퍼를 생성하는 기능을 제공합니다. 소스 버퍼의 데이터는 프리미티브를 생성하기 위한 정점 형식에 맞게 미리 포맷되어 있어야 합니다. 이 함수는 주로 셰이더와 함께 사용됩니다.
문법
vertex_create_buffer_from_buffer(buffer, format);
인수 설명
인수 | 유형 | 설명 |
---|---|---|
buffer | Buffer | 정점 버퍼를 생성할 소스 버퍼입니다. |
format | Vertex Format | 사용할 정점 형식입니다. |
반환 값
- Vertex Buffer: 생성된 정점 버퍼를 반환합니다.
예제 코드
아래 코드는 새로운 정점 형식을 생성한 후, 이전에 생성된 일반 버퍼에서 새로운 정점 버퍼를 생성하는 과정을 보여줍니다.
vertex_format_begin();
vertex_format_add_position_3d();
vertex_format_add_colour();
vertex_format_add_texcoord();
var _my_format = vertex_format_end();
v_buff = vertex_create_buffer_from_buffer(global.modelBuff, _my_format);
위의 코드는 먼저 새로운 정점 형식을 생성하고, 그 후에 사용자 정의 정점 형식을 적용하여 이전에 생성된 일반 버퍼에서 새로운 정점 버퍼를 생성합니다.
활용 예제
- 3D 모델 렌더링
gml // 3D 모델의 정점 데이터를 버퍼에 복사 var model_buffer = vertex_create_buffer_from_buffer(global.modelBuff, _my_format);
- 텍스처 매핑
gml // 텍스처 좌표를 포함한 정점 버퍼 생성 var tex_buffer = vertex_create_buffer_from_buffer(global.textureBuff, _my_format);
- 애니메이션 효과
gml // 애니메이션을 위한 정점 데이터 업데이트 var anim_buffer = vertex_create_buffer_from_buffer(global.animBuff, _my_format);
- 다양한 정점 형식 적용
gml // 다른 정점 형식을 사용하여 버퍼 생성 var custom_format = vertex_format_begin(); vertex_format_add_position_3d(); vertex_format_add_normal(); var custom_v_buff = vertex_create_buffer_from_buffer(global.customBuff, custom_format);
- 버퍼 최적화
gml // 성능 향상을 위한 정점 버퍼 최적화 var optimized_buffer = vertex_create_buffer_from_buffer(global.optimizedBuff, _my_format);
이와 같이 vertex_create_buffer_from_buffer
함수는 다양한 상황에서 유용하게 사용될 수 있습니다.