vertex_create_buffer_from_buffer_ext 함수 설명
vertex_create_buffer_from_buffer_ext
함수는 지정된 소스 버퍼에서 데이터를 복사하여 새로운 정점 버퍼를 생성하는 기능을 제공합니다. 소스 버퍼의 데이터는 기본적으로 프리미티브를 생성하기 위한 정점 형식에 맞춰 미리 포맷되어 있어야 하며, 복사할 소스 버퍼 내의 오프셋과 최종 버퍼가 가져야 할 정점 수를 지정할 수 있습니다. 만약 복사되는 정점 수와 최종 버퍼의 정점 수가 일치하지 않으면 정점 데이터가 손상될 수 있습니다.
함수 문법
vertex_create_buffer_from_buffer_ext(buffer, format, src_offset, vert_num);
인수 설명
인수 | 타입 | 설명 |
---|---|---|
buffer | Buffer | 정점 버퍼를 생성할 소스 버퍼입니다. |
format | Primitive Type Constant | 사용할 프리미티브 정점 형식입니다. |
src_offset | Real | 복사할 소스 버퍼 내의 오프셋입니다. |
vert_num | Real | 정점 버퍼가 가져야 할 정점 수입니다. |
반환값
- 정점 버퍼
예제 코드
다음 코드는 새로운 정점 형식을 생성한 후, 이전에 생성된 일반 버퍼에서 새로운 정점 버퍼를 생성하는 예제입니다. 사용자 정의 정점 형식이 적용되며, 오프셋은 0으로 설정됩니다. 이 함수는 새로운 정점 버퍼가 512개의 정점을 예상해야 함을 알려줍니다.
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, myFormat, 0, 512);
활용 예제
- 3D 모델 렌더링: 3D 모델의 정점 데이터를 소스 버퍼에서 새로운 정점 버퍼로 복사하여 렌더링할 수 있습니다.
gml var model_buffer = vertex_create_buffer_from_buffer_ext(global.modelBuff, myFormat, 0, global.modelVertexCount);
- 텍스처 매핑: 텍스처 좌표를 포함한 정점 버퍼를 생성하여 다양한 텍스처를 적용할 수 있습니다.
gml var texture_buffer = vertex_create_buffer_from_buffer_ext(global.textureBuff, myFormat, 0, global.textureVertexCount);
- 애니메이션 효과: 애니메이션을 위한 정점 데이터를 소스 버퍼에서 복사하여 새로운 버퍼를 생성하고, 이를 통해 애니메이션 효과를 구현할 수 있습니다.
gml var animated_buffer = vertex_create_buffer_from_buffer_ext(global.animationBuff, myFormat, 0, global.animationVertexCount);
- 다양한 정점 형식 적용: 여러 종류의 정점 형식을 사용하여 다양한 그래픽 효과를 구현할 수 있습니다.
gml var custom_buffer = vertex_create_buffer_from_buffer_ext(global.customBuff, myFormat, 0, global.customVertexCount);
- 성능 최적화: 정점 데이터를 미리 준비된 버퍼에서 복사하여 성능을 최적화할 수 있습니다.
gml var optimized_buffer = vertex_create_buffer_from_buffer_ext(global.optimizedBuff, myFormat, 0, global.optimizedVertexCount);