gfx_engine - A simple 3D visualizer Copyright Joakim Lindblad Usage: gfx_engine [world ops] [obj1 ops] [ obj2 ops ...] World options: -h,-?,--help this text -n title of the window -f flat shading from start -w wireframe on from start -l "(x,y,z, amb.r,amb.g,amb.b, diff.r,g,b, spec.r,g,b)" (if not supplied default lights are used) -L "(x,y,z, amb.r,amb.g,amb.b, diff.r,g,b, spec.r,g,b, a,b,c)" (if not supplied default lights are used) -o "(eye.x,eye.y,eye.z, z,at.x,at.y,at.z, up.x,up.y,up.z)" position observer -s overall scale factor -d view plane z-coordinate (default=-1000) -A steps for one complete turn in animation (default=64) -c capture direct to file -C capture animation direct to files (use with -A option) -g geometry of window XxY -G geometry of screen capture XxY Object options: -p "(pos.x,pos.y,pos.z)" position object -P "(pos.x,pos.y,pos.z, xdir.x,xdir.y,xdir,z,zdir.x, zdir.y,zdir.z)" position object (in lookat fashion) -s object scale factor -S object specular value -t texture map (2 parameters) is texture mapping direction x=0, y=1, z=2 -a overrule alpha setting from file -c overrule colour setting from file -C center object in the model coordinate system Example: gfx_engine -o "(600,300,350, 0,0,0, 0,0,1)" teapot.nff -s 30 -t tux.pnm 1 Note that all options are followed by a space (to allow for long options) The filename 'stdin' is used to read from standard input Keyboard interface: q = quit program v = verbose s/S = start/stop and reverse animation f = start/stop frame rate testing r = reset view matrix x/X = move observer along WorldCoordinate system x-axis y/Y = move observer along WC y-axis z/Z = move observer along WC z-axis i/I = rotate observer around ViewC x-axis o/O = rotate observer around VC y-axis p/P = rotate observer around VC z-axis a/A = move observer forward / backward j/J = rotate object around ObjectC x-axis k/K = rotate object around OC y-axis l/L = rotate object around OC z-axis +/- = scale object d/D = change perspective distance 1,2,3 = turn on/off ambient,diffuse and specular light *// = increase / decrease active illumiation 4 = turn on/off suface rendering (use with 'w') g = Gouraud / flat shading w = wireframe on / off b = backface culling on / off B = white / black Background t = texture rendering on / off T = cycle solid/alpha/transparency rendering