X-Git-Url: https://thelambdalab.xyz/gitweb/index.cgi?a=blobdiff_plain;f=holy_sphere.lua;fp=holy_sphere.lua;h=b26f67e45572059d2ed5dca85206100501301495;hb=ef4dde6203d251741131f06824200c3d7f01f56d;hp=0000000000000000000000000000000000000000;hpb=46c0ad2326b3d4edae71c00b6f4fcecb5eff4e07;p=raymarcher.git diff --git a/holy_sphere.lua b/holy_sphere.lua new file mode 100644 index 0000000..b26f67e --- /dev/null +++ b/holy_sphere.lua @@ -0,0 +1,41 @@ +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")