+-- Main rendering functions
+
require "Vector"
local V = Vector
print("done")
end
+Render = {
+ eps = eps,
+ max_dist2 = max_dist2,
+ bg_col = bg_col,
+ render = render
+}
-local lights = {V.new{3,-3,1}}
-
-local scene = {
- sdf =
- O.union(
- O.diff(
- O.diff(
- O.diff(
- P.make_sphere(V.new{0,0,0}, 1,
- T.make_phong_texture(lights,
- T.make_solid_pigment({0,1,0}),
- 0.2, 0.7, 1.0, 100)),
- P.make_sphere(V.new{0,0,0}, 0.8)),
- P.make_pipe(V.new{0,0,0}, 0.5, V.new{0,1,0})),
- P.make_pipe(V.new{0,0,0}, 0.5, V.new{1,0,0})),
-
- P.make_plane(V.new{0,0,-1.0}, V.new{0,0,1},
- T.make_phong_texture(lights,
- T.make_checkered_pigment({0.5,0,0.2}, {1,1,1}),
- 0.2, 1.0, 0, 1))),
- -- T.make_flat_texture(T.make_checkered_pigment({0,0,1}, {1,1,1})))),
-
- camera = {location = V.new{2,-5,1},
- point_at = V.new{0,0,0},
- right = V.x,
- fov = 1}}
-
--- render(scene, 320, 200, "test.ppm")
-render(scene, 640, 480, "test.ppm")
+return Render
--- /dev/null
+require "Vector"
+local V = Vector
+
+require "Primitives"
+local P = Primitives
+
+require "Operations"
+local O = Operations
+
+require "Textures"
+local T = Textures
+
+require "Render"
+
+local lights = {V.new{3,-3,1}}
+
+local scene = {
+ sdf =
+ O.union(
+ O.diff(
+ O.diff(
+ O.diff(
+ P.make_sphere(V.new{0,0,0}, 1,
+ T.make_phong_texture(lights,
+ T.make_solid_pigment({0,1,0}),
+ 0.2, 0.7, 1.0, 100)),
+ P.make_sphere(V.new{0,0,0}, 0.8)),
+ P.make_pipe(V.new{0,0,0}, 0.5, V.new{0,1,0})),
+ P.make_pipe(V.new{0,0,0}, 0.5, V.new{1,0,0})),
+
+ P.make_plane(V.new{0,0,-1.0}, V.new{0,0,1},
+ T.make_phong_texture(lights,
+ T.make_checkered_pigment({0.5,0,0.2}, {1,1,1}),
+ 0.2, 1.0, 0, 1))),
+
+ camera = {location = V.new{2,-5,1},
+ point_at = V.new{0,0,0},
+ right = V.x,
+ fov = 1}}
+
+Render.render(scene, 1280, 960, "holy_sphere.ppm")