using BenchmarkTools using LinearAlgebra using Rotations using Images using GeometryBasics using Colors using GLMakie ## include("SimpleRayTracer.jl") world = SimpleRayTracer.World(RGB(.1,.5,.5)) push!( world, SimpleRayTracer.Plane( Vec3(0.0, -2.0, 0.0), Vec3(0.0, 1.0, 0.0), RGB(.5, .5, .5) ) ) push!(world, SimpleRayTracer.Sphere(Vec3(-4.0, 0.0, 0.0), 2.0, RGB(1, 0, 0))) push!(world, SimpleRayTracer.Sphere(Vec3( 4.0, 0.0, 0.0), 2.0, RGB(0, 1, 0))) push!(world, SimpleRayTracer.Sphere(Vec3( 0.0, 0.0, 3.0), 2.0, RGB(0, 0, 1))) camera = SimpleRayTracer.PinHoleCamera( Vec3(0.0, 4.0, -8.0), Vec3(0.0, 0.0, 0.0), Vec3(0.0, 1.0, 0.0), 0.005, (0.02, 0.01), ) resolution = (512, 256); img = SimpleRayTracer.render(world, camera, resolution); # fig = Figure(size=resolution) # ax = GLMakie.Axis(fig[1,1], aspect=2) # image!(ax, img |> rotr90) Images.save("test.png", img)