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{1,-1,1}} local plane_normal = V.normalize(V.new{0.0,-1,0.0}) local texture_y = V.normalize(V.cross(plane_normal,V.x)) local texture_x = V.cross(texture_y,plane_normal) local scene = { sdf = P.make_plane(V.new{0,0,0}, plane_normal, T.make_phong_texture(lights, T.map_rectangular( T.make_rainbow_pigment(0.1), texture_x, texture_y), 0.2, 1.0, 0, 1)), camera = {location = V.new{-0.5,-5,0}, point_at = V.new{-0.5,0,0}, right = V.x, fov = 1}} Render.render(scene, 320, 200, "out/rainbow_wall.ppm")