GAME MAKER 강좌
KAYAN
일반적으로 2D의 텍스쳐 이미지를 프리미티브에 입히는 방법을 'UV 매핑' 이라고 합니다.
(▲텍스쳐를 프리미티브에 적용)
이 기능을 활용하면 다양한 도형 이미지들을 만들어 낼 수 있지요.
이번 강좌에서는 프리미티브에 텍스쳐를 적용하는 방법에 대해 알아보도록 합시다.
◈ 텍스쳐 도형 |
텍스쳐 도형을 만들 때는, 먼저 아래 함수를 사용하여 어떤 도형으로 구성할 것인지 설정해야 합니다.
draw_primitive_begin_texture(kind, tex) : 지정한 종류의 도형 구성을 시작(텍스쳐 타입) draw_primitive_end( ) : 기초 도형 종료 |
kind 는 프리미티브의 종류(pr_trianglelist, pr_trianglestrip, pr_trianglefan)를 지정하고,
tex 는 텍스쳐 id를 지정합니다.
※ [주의] pr_trianglefan 은 HTML5 대상 플랫폼에서는 사용할 수 없으며, 일부 플랫폼에서는
제대로 작동하지 않을 수 있습니다.
텍스쳐 id는 아래 함수를 통해 스프라이트 이미지의 텍스쳐 정보를 얻을 수 있습니다.
sprite_get_texture(sprite,subimg) sprite : 텍스쳐 정보를 가져올 스프라이트 이미지 subimg : 스프라이트 이미지의 서브 이미지 번호 |
이것을 사용하여, 텍스쳐 정보를 아래와 같이 프리미티브에 적용하면 됩니다.
예) texid=sprite_get_texture(spr_texture, 0); //텍스쳐 정보 draw_primitive_begin_texture(pr_trianglelist, texid); //텍스쳐 정보를 프리미티브에 적용 ... draw_primitive_end( ); |
텍스쳐의 크기는 가로X세로의 크기가 같아야 하고, 모두 2의 제곱의 크기여야 제대로 표시가 됩니다.
만약 크기가 2의 제곱이 아니면 실제 화면에서 일부가 잘려서 제대로 표시가 되지 않을 수 있습니다.
그리고 스프라이트 설정의 Separate Texture Page를 체크해야 지정한 스프라이트 이미지를 텍스쳐로
적용 시킬 수 있습니다.
(▲ 스프라이트 설정)
도형에 사용되는 텍스쳐 타입의 버텍스에는 아래 함수를 사용할 수 있습니다.
draw_vertex_texture(x, y, xtex, ytex) : 기본 버텍스 함수 x,y : 표시 좌표 xtex, ytex : 텍스쳐 uv 매핑 좌표 draw_vertex_texture_colour(x, y, xtex, ytex, color, alpha) : 확장 버텍스 함수(색+투명도 추가 지정) color : 색상 alpha : 투명도 |
이전 강좌에서 알아본 프리미티브의 버텍스 함수에 매핑 정보가 추가된 함수입니다.
(xtex, ytex)는 텍스쳐 매핑 좌표로 각각 0~1 사이의 값으로 지정할 수 있습니다.
(▲ 텍스쳐 이미지)
텍스쳐에서 좌측 상단이 (0, 0), 좌측 하단은 (0, 1), 그리고, 우측 상단이 (1, 0), 우측 하단은 (1, 1) 입니다.
(▲ 텍스쳐 이미지의 uv값)
예를 들어, 위의 텍스쳐 이미지에서 매핑 좌표를 적용한 프리미티브를 구성한다면,
(▲ 텍스쳐 모델)
아래와 같이 순서대로 삼각형을 만들면서 원하는 형태로 구성합니다.
그리고 그 위치에 따른 텍스쳐의 매핑 정보를 지정해주면 됩니다.
예) 256X256의 정사각형 모델 texid=sprite_get_texture(spr_texture, 0); draw_primitive_begin_texture(pr_trianglelist, texid); draw_vertex_texture(0,0,0,0); //0 draw_vertex_texture(0,256,0,1); //1 draw_vertex_texture(256,0,1,0); //2 draw_vertex_texture(256,0,1,0); //3 draw_vertex_texture(0,256,0,1); //4 draw_vertex_texture(256,256,1,1); //5 draw_primitive_end( ); |
'GameMaker강좌[GMS2] > GMS2기초강좌' 카테고리의 다른 글
[게임메이커 강좌-기초][GMS2] 가상 키-1-마우스 클릭 또는 화면 터치 (1) | 2021.01.16 |
---|---|
[게임메이커 강좌-기초][GMS2]프리미티브(Primitive) 종류 - 텍스쳐 매핑 2 (0) | 2019.04.03 |
[게임메이커 강좌-기초][GMS2]프리미티브(Primitive) 종류 - 면 (3) | 2019.03.27 |
[게임메이커 강좌-기초][GMS2]프리미티브(Primitive) 종류 - 점, 선 (0) | 2019.03.27 |
[게임메이커 강좌-기초][GMS2]프리미티브(Primitive) (0) | 2019.03.27 |
댓글