2004.10.27 공의 위치변화 에니메이션

강현숙님을 위한 POV-Ray에 관한 글입니다.

이제 clock을 사용한 애니메이션을 만들어 보겠습니다.


애니메이션을 하기 위해선 POV파일과 함께 INI라는 확장명을 가진 파일을 만들어 주어야 합니다. 먼저 INI파일의 구성을 설명드리겠습니다.

----------------------------------------------

; 파일이름 : sphere3.ini

Antialias=Off

Antialias_Threshold=0.2
Antialias_Depth=3

Input_File_Name=sphere3.pov

Initial_Frame=1
Final_Frame=10
Initial_Clock=0
Final_Clock=1

Cyclic_Animation=on
Pause_when_Done=off

----------------------------------------------

위의 INI파일에서 initial_Frame값과 Final_Frame값이 애니메이션을 시킬 그림의 개수입니다. 위에서는 모두 10장의 그림을 계속해서 그려서 에니메이션을 시키는 것입니다. 그리고 Initial_Clock값과 Final_Clock값은 임으로 정해줄 수 있지만 여기서는 0에서 1까지의 값으로 정했습니다. 즉 모두 10장의 그림을 그리기 때문에 처음 1장의 그림을 그릴 때는 clock값이 0이고, 두번째 그림에서는 0.1, ... 마지막 장에서는 clock값이 1로 변하게 됩니다.

이제 POV파일을 설명 드립니다. 아래의 소스에서 object { Ball translate <X + clock, 0, 0> }라는 부분에 clock이라는 부분을 추가했습니다.주어진 위치 <X, 0, 0>에서 clock값 만큼을 더해주고 while루프를 써서 여러개의 공을 그리는 과정입니다.처음 그림에서는 <X, 0, 0>인 위치에,두 번째 그림에서는 <X + 0.1, 0, 0>인 위치에, ...마지막 10번째 그림에서는 <X+ 1, 0, 0>인 위치에서 그림을 그리는것입니다.

이렇게 두 개의 파일(POV, INI)을 만들고 INI파일을 랜더링 시키면 모두 10장을 그리고 그림을 애니메이션을 시키면 위의 그림처럼 공이 오른쪽으로 이동하는 형태가 나오게 됩니다. 카메라는 고정되어 있는 형태입니다.

다음에는 카메라를 이동시키는 경우를 보도록 하겠습니다.

//파일이름 : sphere3.pov

#include "colors.inc"

global_settings {
assumed_gamma 1.0
max_trace_level 5
}


camera {
location <0.0, 3, -5.0>
right x*image_width/image_height
look_at <0.0, 0.0, 0.0>
}

sky_sphere {
pigment {
gradient y
color_map {
[0.0 rgb <0.6,0.7,1.0>]
[0.7 rgb <0.0,0.1,0.8>]
}
}
}

light_source {
<0, 0, 0>
color rgb <1, 1, 1>
translate <-30, 30, -30>
}


plane {
y, -1
texture
{
pigment {
checker
color rgb 1
color blue 1
scale 0.5
}
finish{
diffuse 0.8
ambient 0.1
}
}
}

#declare Ball = sphere {
<0, 0, 0>, 0.5
texture {
pigment {
color rgb <0.8,0.8,1.0>
}
finish{
diffuse 0.3
ambient 0.0
specular 0.6
reflection {
0.8
metallic
}
conserve_energy
}
}
}

#declare Step = 1;

#declare X = -5;
#declare EndX = 5;
#while (X <(EndX + Step))
object { Ball translate <X + clock, 0, 0> }
#declare X = X + Step;
#end

설정

트랙백

댓글