-- This program automates the process of creating simple fly-by animations.
-- The rasters are saved in the `frames' directory, and if ffmpeg is
-- installed, the frames will also be combined into a video file. This script
--- must be called from the same directory where the rasterize program is.
--- The CACHE_GEOMETRY option is also recommended to improve performance.
+-- must be called from the same directory where the raytrace program is.
-- Set the number of frames to be rendered for the animation.
local frames = 360
end
-- Define the actual objects of the scene that will be rendered, in the
--- extended u3d format.
+-- extended urt format.
local scene = [[
-l -14687.0 7986.0 8976.0 1.0 1.0 1.0
-g checker.obj
-c 1.0 0.6 0.6 0.6
-m checker.ppm
-r -1.57 1.0 0.0 0.0
-p 1.0 1.0 1.0 100.0
-g teapot.raw
-c 0.9 0.7 0.1 0.2
-p 1.0 1.0 1.0 60.0
-t 0.0 0.1 0.0
-s 0.004 0.004 0.004
+l 0.0 10.0 1.0 0.8 0.7 0.8
+s 0.0 0.0 0.0 1.0 1.0 0.0 0.0
]]
-- Set the number of samples for supersampling. If this is set to a value
local supersample = 2
-- Set the width and height of the viewport.
-local size = {w = 640, h = 480}
+local size = {w = 800, h = 600}
-- Set the number of concurrent renderings (for multi-core machines).
local jobs = 6
h = h * supersample
end
local filename = fmt("frames/anim%04d.bmp", i)
- local command = fmt("./rasterize -o %s >/dev/null", filename)
+ local command = fmt("./raytrace -o %s >/dev/null", filename)
local out = io.popen(command, "w")
local e = eye(i)
local l = look(i)
write("\27[80D\27[2Kframe\t %4d / %d", i, frames)
out:write(fmt([[
-U4
+U5
%d %d
%f %f %f
%f %f %f
0 1 0
-1.57 %f 0.1 1000
+1.57 %f
1.0 1.0 1.0
%s
X