본문 바로가기
GameMaker강좌[GM8]/3D기능강좌

[게임메이커강좌-3D강좌]기본모델기능

by 타락카얀 2013. 5. 5.
728x90








이제 게임메이커에서 지원되는 기본 3D모델들에 대해 알아봅시다.







◈텍스쳐



텍스쳐의 크기는 가로X세로의 크기가 같아야 하고, 모두 2의 제곱의 크기여야 제대로 표시가

됩니다.
만약 크기가 2의 제곱이 아니면 실제 화면에서 일부가 잘려서 제대로 표시가 되지 않아요.



(▲강좌에서 사용할 텍스쳐)


일단 강좌에서 사용되는 텍스쳐는 위의 그림(64X64)을 사용해 보도록 해요.
이것을 텍스쳐로 사용하려면 아래의 함수를 사용해야합니다.



텍스쳐가 스프라이트인 경우
     sprite_get_texture(spr,subimg)



사용예)



    texid=sprite_get_texture(sprite0,0);




텍스쳐가 배경인 경우
     background_get_texture(background)



사용예)



    texid=background_get_texture(background0);









◈기본모델-블럭



육면체를 표시할 수 있는 3D 모델입니다.

     d3d_draw_block(x1,y1,z1,x2,y2,z2,texid,hrepeat,vrepeat)



(▲블)


texid : 사용할 텍스처 ID를 지정,
hrepeat : 텍스쳐를 수평으로 몇번 반복시킬지를 지정(값은 1이상).
vrepeat : 텍스쳐를 수직으로 몇번 반복시킬지를 지정(값은 1이상).

텍스쳐 모양대로 표시하려면 아래처럼 하시면 됩니다.


사용예)



     d3d_draw_block(-10,-10,10,10,10,-10,texid,1,1);








◈기본모델-실린더



     d3d_draw_cylinder(x1,y1,z1,x2,y2,z2,texid,hrepeat,vrepeat,closed,steps)



(▲실린더)


texid : 사용할 텍스처 ID를 지정,
hrepeat : 텍스쳐를 수평으로 몇번 반복시킬지를 지정(값은 1이상).
vrepeat : 텍스쳐를 수직으로 몇번 반복시킬지를 지정(값은 1이상).
closed : 모델의 위와 아래를 닫을지를 지정. 0이면 위와 아래의 원부분을 면으로 막지 않고

          열린상태가 됩니다.


steps : 모델의 각을 지정합니다. 예를 들어 8이면 8각 실린더가 됩니다.



(▲closed가 0일 경우)


사용예)



     d3d_draw_cylinder(-10,10,10,10,-10,-10,texid,2,1,0,12);







◈기본모델-원뿔



     d3d_draw_cone(x1,y1,z1,x2,y2,z2,texid,hrepeat,vrepeat,closed,steps)



(▲원뿔)


texid : 사용할 텍스처 ID를 지정,
hrepeat : 텍스쳐를 수평으로 몇번 반복시킬지를 지정(값은 1이상).
vrepeat : 텍스쳐를 수직으로 몇번 반복시킬지를 지정(값은 1이상).
closed : 모델의 원부분을 닫을지를 지정. 0이면 원부분을 면으로 막지 않고 열린상태가 됩니다.
steps : 모델의 각을 지정합니다. 예를 들어 8이면 8각 원뿔가 됩니다.

사용예)


 

    d3d_draw_cone(-10,10,10,10,-10,-10,texid,2,1,1,100);





(▲텍스쳐 모양대로 하려면 뒤집어야함)






◈기본모델-구형



     d3d_draw_ellipsoid(x1,y1,z1,x2,y2,z2,texid,hrepeat,vrepeat,steps)



(▲구)


texid : 사용할 텍스처 ID를 지정,
hrepeat : 텍스쳐를 수평으로 몇번 반복시킬지를 지정(값은 1이상).
vrepeat : 텍스쳐를 수직으로 몇번 반복시킬지를 지정(값은 1이상).
steps : 모델의 각을 지정합니다. 값이 클수록 부드럽게 됩니다.

사용예)



     d3d_draw_ellipsoid(-10,10,-10,10,-10,10,texid,2,1,50);









◈기본모델-벽



     d3d_draw_wall(x1,y1,z1,x2,y2,z2,texid,hrepeat,vrepeat)



(▲벽)


이것은 주로 벽을 만들 때 사용합니다.
texid : 사용할 텍스처 ID를 지정,
hrepeat : 텍스쳐를 수평으로 몇번 반복시킬지를 지정(값은 1이상).
vrepeat : 텍스쳐를 수직으로 몇번 반복시킬지를 지정(값은 1이상).

사용예)



     d3d_draw_wall(-10,0,10,10,0,-10,texid,1,1);









◈기본모델-바닥



     d3d_draw_floor(x1,y1,z1,x2,y2,z2,texid,hrepeat,vrepeat)



(▲바닥)


이것은 주로 바닥을 만들 때 사용합니다.
texid : 사용할 텍스처 ID를 지정,
hrepeat : 텍스쳐를 수평으로 몇번 반복시킬지를 지정(값은 1이상).
vrepeat: 텍스쳐를 수직으로 몇번 반복시킬지를 지정(값은 1이상).

사용예)



     
d3d_draw_floor(-10,-10,0,10,10,0,texid,1,1);







300x250

댓글