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

[게임메이커 강좌-3D강좌][GMS2]3D의 시작-2

by 타락카얀 2018. 7. 20.
728x90

 

 

GAME MAKER 강좌

 

 

KAYAN

 

 


◈ 3D에서 사용할 수 있는 몇가지 기능들

 

 

기본적으로 모델에 입혀진 텍스쳐가 픽셀형태로 표시되는데, 텍스쳐를 부드럽게 보간 처리하고 싶다면
아래 함수를 사용하면 됩니다.

 



   gpu_set_tex_filter(enable)


     enable : true=보간 처리 , false=보간처리 안함.



   예) gpu_set_tex_filter(true);

 

 

기본값은 false 이기 때문에, 텍스쳐를 부드럽게 보이도록 하려면 true 값을 사용해야 합니다.

 


(▲ 보간처리. 안했을 때(왼쪽)와 처리했을 때(오른쪽, 텍스쳐를 부드럽게 처리함))


z-버퍼 사용은 아래 함수를 사용하여 기능을 on/off 할 수 있습니다. 기본값은 true 으로 z-버퍼를

사용합니다.

 



   gpu_set_ztestenable(enable) : 기본값 false
 
      enable : true=사용 , false=사용 안함.



   gpu_set_zwriteenable(enable) : 기본값 true

 
      enable : true=사용 , false=사용 안함.
 
 
   예)

   gpu_set_ztestenable(true);
   gpu_set_zwriteenable(true);
 

 

투명도가 있는 텍스쳐를 입힌 모델 뒤에 다른 모델이 있는 경우, 투명한 텍스쳐이지만,
뒤에 있는 모델이 보이지 않는 경우가 있습니다. 텍스쳐를 전체를 불투명으로 인식하는 경우인데,
그럴 때는 아래 함수를 사용하면 됩니다.

 



   gpu_set_alphatestenable(enable)


      true=사용, false=사용안함  (기본값 false)
 

 

 


(▲ 사용했을 때(왼쪽)와 사용하지 않았을 때(오른쪽. 뒤에 있는 모델이 가려짐) 차이.)



광원 기능을 사용하려면 아래 함수를 호출하여 광원을 활성화하면 됩니다.

 



   draw_set_lighting(enable)

     enable : true=사용 , false=사용 안함.

 

 

그리고 구체적인 광원 설정은 아래 함수를 사용하여 설정하면 됩니다.

 



   draw_light_define_direction(ind, x, y, z, col) : 기본 광원. 전체 광원. x,y,z 값은 -1~1 사이의 값
   draw_light_define_point(ind, x, y, z, range, col) : 지정 위치를 중심으로 광원처리

   draw_light_enable(ind, enable) : 정의된 광원 사용

 

 

먼저 draw_light_define_direction, 또는 draw_light_define_point를 사용하여 광원을 정의하고,
draw_light_enable 함수로 정의된 광원을 표시하면 됩니다.

 



   예)


   draw_set_lighting(true);//광원 활성화

   draw_light_define_direction(1,-1,-1,-1,c_white);//1번 광원 정의
   draw_light_enable(1,true);//1번 광원 사용.

 

 

그리고 아래 함수를 사용하면 광원 사용시 모델의 명암 색을 변경할 수 있습니다.
참고로 기본값은 검은색(c_black)입니다.

 

 

   draw_light_define_ambient(col)

 

예를들어, 명암을 짙은 회색으로 처리하려면,

 



   예)
 
   draw_light_define_ambient(c_dkgray);
 

 

위와 같이 할 수 있겠지요.

아래 함수를 사용하면 3D에 안개를 적용할 수도 있습니다.

 



   gpu_set_fog(enable, color, start, end)

      enable : 사용
      color : 안개 색상
     start : 카메라의 위치를 중심으로 안개를 적용할 시작위치(투명)
      end :  카메라의 위치를 중심으로 안개를 적용할 끝위치(불투명)

 

 

예를 들면, 아래와 같이 할 수 있지요.

 



   예) 카메라의 위치로 부터 8~1000 거리까지 안개를 서서히 적용

   gpu_set_fog(true, c_black, 8, 1000);

 

 

 

 

 

300x250

댓글