source: trunk/documents/UserDoc/UsersGuides/ForApplicationDeveloper/html/Visualization/makingamovie.html @ 1231

Last change on this file since 1231 was 1208, checked in by garnier, 15 years ago

CVS update

File size: 5.9 KB
Line 
1<HTML>
2<TITLE>Making a Movie</title>
3<HEAD>
4</HEAD>
5<BODY>
6
7<TABLE WIDTH="100%" >
8<TR>
9<TD>
10</A>
11<A HREF="index.html">
12<IMG SRC="../../../../resources/html/IconsGIF/Contents.gif" ALT="Contents" HEIGHT=16 WIDTH=59></A>
13<A HREF="markertext.html">
14<IMG SRC="../../../../resources/html/IconsGIF/Previous.gif" ALT="Previous" HEIGHT=16 WIDTH=59></A>
15<IMG SRC="../../../../resources/html/IconsGIF/NextGR.gif" ALT="Next" HEIGHT=16 WIDTH=59>
16</TD>
17
18<TD ALIGN="Right"><FONT COLOR="#238E23"><FONT SIZE=-1>
19<B>Geant4 User's Guide</B> <BR>
20<B>For Application Developers</B> <BR>
21<B>Visualization</B> </FONT></FONT> </TD>
22</TR>
23</TABLE>
24
25<CENTER><FONT COLOR="#238E23"><FONT SIZE=+3>
26<b>8.10 Making a Movie</b><BR>
27</FONT></FONT></CENTER>
28<BR>
29
30<HR ALIGN="Center" SIZE="7%"><BR>
31
32  These instructions are suggestive only.  The following procedures
33  have not been tested on all platforms.  There are clearly some
34  instructions that apply only to Unix-like systems with an X-Windows
35  based windowing system.  However, it should not be difficult to take
36  the ideas presented here and extend them to other platforms and
37  systems.
38
39  The procedures described here need graphics drivers that can produce
40  picture files that can be converted to a form suitable for an MPEG
41  encoder.  There may be other ways of capturing the screen images and
42  we would be happy to hear about them.  Graphics drivers currently
43  capable of producing picture files are:
44
45<BR><BR>
46<TABLE BORDER=1 cellpadding=2>
47<TR><TD><B>Driver</B></TD><TD><B>File type</B></TD></TR>
48<TR><TD>DAWNFILE</TD><TD>prim then eps using <b>dawn</b></TD></TR>
49<TR><TD>HepRepFile</TD><TD>HepRep1</TD></TR>
50<TR><TD>HepRep</TD><TD>HepRep2</TD></TR>
51<TR><TD>OGLX</TD><TD>eps</TD></TR>
52<TR><TD>RayTracer</TD><TD>jpeg</TD></TR>
53<TR><TD>VRMLFILE</TD><TD>vrml</TD></TR>
54</TABLE>
55<BR>
56
57  So far, only DAWNFILE, OGLX and RayTracer have been "road tested".
58  Once in a standard format, such as eps, the <b>convert</b> program
59  from <a href="http://www.imagemagick.org">ImageMagick</a> can
60  convert to ppm files suitable for <b>mpeg2encode</b>.
61
62<h4>8.10.1 OGLX</h4>
63
64  Make a macro something like this:
65
66<PRE>
67/control/verbose 2
68/vis/open OGLSX 600x600-0+0
69/vis/drawVolume
70/vis/viewer/reset
71/vis/viewer/set/style surface
72/vis/viewer/set/projection perspective 50 deg
73/control/alias phi 30
74/control/loop movie.loop theta 0 360 1
75</PRE>
76
77  which invokes movie.loop, which is something like:
78
79<PRE>
80/vis/viewer/set/viewpointThetaPhi {theta} {phi}
81/vis/viewer/zoom 1.005
82/vis/oglx/printEPS
83</PRE>
84
85  This produces lots of eps files.  Then...
86
87<PRE>
88<a href="make_mpeg2encode_parfile.sh">make_mpeg2encode_parfile.sh</a> G4OpenGL_*eps
89</PRE>
90
91  Then edit mpeg2encode.par to specify file type and size, etc.:
92
93<PRE>
94$ diff mpeg2encode.par~ mpeg2encode.par
957c7
96< 1         /* input picture file format: 0=*.Y,*.U,*.V, 1=*.yuv, 2=*.ppm */
97---
98> 2         /* input picture file format: 0=*.Y,*.U,*.V, 1=*.yuv, 2=*.ppm */
9915,17c15,17
100<    /* horizontal_size */
101<   /* vertical_size */
102< 8         /* aspect_ratio_information 1=square pel, 2=4:3, 3=16:9, 4=2.11:1 */
103---
104> 600   /* horizontal_size */
105> 600  /* vertical_size */
106> 1         /* aspect_ratio_information 1=square pel, 2=4:3, 3=16:9, 4=2.11:1 */
107</PRE>
108
109  Then convert to ppm:
110
111<PRE>
112for i in G4OpenGL*eps; do j=`basename $i .eps`; command="convert $i $j.ppm"; echo $command; $command; done
113</PRE>
114
115  Then
116
117<PRE>
118mpeg2encode mpeg2encode.par G4OpenGL.mpg
119</PRE>
120
121  Then, on Mac, for example:
122
123<PRE>
124open G4OpenGL.mpg
125</PRE>
126
127  opens a QuickTime player.
128
129<h4>8.10.2 DAWNFILE</h4>
130
131  You need to invoke <b>dawn</b> in "direct" mode, which picks up
132  parameters from .DAWN_1.history, and suppress the GUI:
133
134<PRE>
135alias dawn='dawn -d'
136export DAWN_BATCH=1
137</PRE>
138
139  Change OGLSX to DAWNFILE in the above set of Geant4 commands and
140  run.  Then convert to ppm files as above:
141
142<PRE>
143for i in g4_*.eps; do j=`basename $i .eps`; command="convert $i $j.ppm"; echo $command; $command; done
144</PRE>
145
146  Then make a .par file:
147
148<PRE>
149<a href="make_mpeg2encode_parfile.sh">make_mpeg2encode_parfile.sh</a> g4_*ppm
150</PRE>
151
152  and edit mpeg2encode.par:
153
154<PRE>
155$ diff mpeg2encode.par~ mpeg2encode.par
1567c7
157< 1         /* input picture file format: 0=*.Y,*.U,*.V, 1=*.yuv, 2=*.ppm */
158---
159> 2         /* input picture file format: 0=*.Y,*.U,*.V, 1=*.yuv, 2=*.ppm */
1609c9
161< 1         /* number of first frame */
162---
163> 0         /* number of first frame */
16415,16c15,16
165<    /* horizontal_size */
166<   /* vertical_size */
167---
168> 482   /* horizontal_size */
169> 730  /* vertical_size */
170</PRE>
171
172Then encode and play:
173
174<PRE>
175mpeg2encode mpeg2encode.par DAWN.mpg
176open DAWN.mpg
177</PRE>
178
179<h4>8.10.3 RayTracerX</h4>
180
181<PRE>
182/control/verbose 2
183/vis/open RayTracerX 600x600-0+0
184# (Raytracer doesn't need a scene; smoother not to /vis/drawVolume.)
185/vis/viewer/reset
186/vis/viewer/set/style surface
187/vis/viewer/set/projection perspective 50 deg
188/control/alias phi 30
189/control/loop movie.loop theta 0 360 1
190</PRE>
191
192  where movie.loop is as above.  This produces lots of jpeg files
193  (but takes 3 days!!!).  Then...
194
195<PRE>
196<a href="make_mpeg2encode_parfile.sh">make_mpeg2encode_parfile.sh</a> g4RayTracer*jpeg
197</PRE>
198
199  Then edit mpeg2encode.par to specify file type and size, etc.:
200
201<PRE>
202$ diff mpeg2encode.par.orig mpeg2encode.par     
2037c7
204< 1         /* input picture file format: 0=*.Y,*.U,*.V, 1=*.yuv, 2=*.ppm */
205---
206> 2         /* input picture file format: 0=*.Y,*.U,*.V, 1=*.yuv, 2=*.ppm */
20715,17c15,17
208<    /* horizontal_size */
209<   /* vertical_size */
210< 8         /* aspect_ratio_information 1=square pel, 2=4:3, 3=16:9, 4=2.11:1 */
211---
212> 600   /* horizontal_size */
213> 600  /* vertical_size */
214> 1         /* aspect_ratio_information 1=square pel, 2=4:3, 3=16:9, 4=2.11:1 */
215</PRE>
216
217  Then convert to ppm, encode and play:
218
219<PRE>
220for i in g4*jpeg; do j=`basename $i .jpeg`; command="convert $i $j.ppm"; echo $command; $command; done
221mpeg2encode mpeg2encode.par g4RayTracer.mpg
222open g4RayTracer.mpg
223</PRE>
224
225<P>
226<HR>
227 <A HREF="index.html">Back to contents</A>
228
229</BODY>
230</HTML>
Note: See TracBrowser for help on using the repository browser.