├── .github └── workflows │ └── rust.yml ├── .gitignore ├── Cargo.lock ├── Cargo.toml ├── LICENSE.md ├── README.md ├── examples ├── plane.rs └── sphere.rs ├── scenes ├── cornell_box.json ├── logo_shadow.json ├── logo_with_friends.json ├── models │ └── cube.obj ├── smallpt.json ├── suzanne_scene.json └── tr15.json └── src ├── bxdf ├── bsdf.rs ├── fresnel.rs ├── lambertian.rs ├── merl.rs ├── microfacet │ ├── beckmann.rs │ ├── ggx.rs │ └── mod.rs ├── microfacet_transmission.rs ├── mod.rs ├── oren_nayar.rs ├── specular_reflection.rs ├── specular_transmission.rs └── torrance_sparrow.rs ├── exec ├── distrib │ ├── master.rs │ ├── mod.rs │ └── worker.rs ├── mod.rs └── multithreaded.rs ├── film ├── animated_color.rs ├── camera.rs ├── color.rs ├── filter │ ├── gaussian.rs │ ├── mitchell_netravali.rs │ └── mod.rs ├── image.rs ├── mod.rs └── render_target.rs ├── geometry ├── animated_mesh.rs ├── bbox.rs ├── bvh.rs ├── differential_geometry.rs ├── disk.rs ├── emitter.rs ├── instance.rs ├── intersection.rs ├── mesh.rs ├── mod.rs ├── receiver.rs ├── rectangle.rs └── sphere.rs ├── integrator ├── mod.rs ├── normals_debug.rs ├── path.rs └── whitted.rs ├── lib.rs ├── light └── mod.rs ├── linalg ├── animated_transform.rs ├── keyframe.rs ├── matrix4.rs ├── mod.rs ├── normal.rs ├── point.rs ├── quaternion.rs ├── ray.rs ├── transform.rs └── vector.rs ├── main.rs ├── material ├── glass.rs ├── matte.rs ├── merl.rs ├── metal.rs ├── mod.rs ├── plastic.rs ├── rough_glass.rs └── specular_metal.rs ├── mc.rs ├── partition.rs ├── sampler ├── adaptive.rs ├── block_queue.rs ├── ld.rs ├── mod.rs ├── morton.rs └── uniform.rs ├── scene.rs └── texture ├── animated_image.rs ├── image.rs └── mod.rs /.github/workflows/rust.yml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Twinklebear/tray_rust/HEAD/.github/workflows/rust.yml -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Twinklebear/tray_rust/HEAD/.gitignore -------------------------------------------------------------------------------- /Cargo.lock: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Twinklebear/tray_rust/HEAD/Cargo.lock -------------------------------------------------------------------------------- /Cargo.toml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Twinklebear/tray_rust/HEAD/Cargo.toml -------------------------------------------------------------------------------- /LICENSE.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Twinklebear/tray_rust/HEAD/LICENSE.md -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Twinklebear/tray_rust/HEAD/README.md -------------------------------------------------------------------------------- /examples/plane.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Twinklebear/tray_rust/HEAD/examples/plane.rs -------------------------------------------------------------------------------- /examples/sphere.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Twinklebear/tray_rust/HEAD/examples/sphere.rs -------------------------------------------------------------------------------- /scenes/cornell_box.json: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Twinklebear/tray_rust/HEAD/scenes/cornell_box.json -------------------------------------------------------------------------------- /scenes/logo_shadow.json: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Twinklebear/tray_rust/HEAD/scenes/logo_shadow.json -------------------------------------------------------------------------------- /scenes/logo_with_friends.json: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Twinklebear/tray_rust/HEAD/scenes/logo_with_friends.json -------------------------------------------------------------------------------- /scenes/models/cube.obj: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Twinklebear/tray_rust/HEAD/scenes/models/cube.obj -------------------------------------------------------------------------------- /scenes/smallpt.json: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Twinklebear/tray_rust/HEAD/scenes/smallpt.json -------------------------------------------------------------------------------- /scenes/suzanne_scene.json: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Twinklebear/tray_rust/HEAD/scenes/suzanne_scene.json -------------------------------------------------------------------------------- /scenes/tr15.json: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Twinklebear/tray_rust/HEAD/scenes/tr15.json -------------------------------------------------------------------------------- /src/bxdf/bsdf.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Twinklebear/tray_rust/HEAD/src/bxdf/bsdf.rs -------------------------------------------------------------------------------- /src/bxdf/fresnel.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Twinklebear/tray_rust/HEAD/src/bxdf/fresnel.rs -------------------------------------------------------------------------------- /src/bxdf/lambertian.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Twinklebear/tray_rust/HEAD/src/bxdf/lambertian.rs -------------------------------------------------------------------------------- /src/bxdf/merl.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Twinklebear/tray_rust/HEAD/src/bxdf/merl.rs -------------------------------------------------------------------------------- /src/bxdf/microfacet/beckmann.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Twinklebear/tray_rust/HEAD/src/bxdf/microfacet/beckmann.rs -------------------------------------------------------------------------------- /src/bxdf/microfacet/ggx.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Twinklebear/tray_rust/HEAD/src/bxdf/microfacet/ggx.rs -------------------------------------------------------------------------------- /src/bxdf/microfacet/mod.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Twinklebear/tray_rust/HEAD/src/bxdf/microfacet/mod.rs -------------------------------------------------------------------------------- /src/bxdf/microfacet_transmission.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Twinklebear/tray_rust/HEAD/src/bxdf/microfacet_transmission.rs -------------------------------------------------------------------------------- /src/bxdf/mod.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Twinklebear/tray_rust/HEAD/src/bxdf/mod.rs -------------------------------------------------------------------------------- /src/bxdf/oren_nayar.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Twinklebear/tray_rust/HEAD/src/bxdf/oren_nayar.rs -------------------------------------------------------------------------------- /src/bxdf/specular_reflection.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Twinklebear/tray_rust/HEAD/src/bxdf/specular_reflection.rs -------------------------------------------------------------------------------- /src/bxdf/specular_transmission.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Twinklebear/tray_rust/HEAD/src/bxdf/specular_transmission.rs -------------------------------------------------------------------------------- /src/bxdf/torrance_sparrow.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Twinklebear/tray_rust/HEAD/src/bxdf/torrance_sparrow.rs -------------------------------------------------------------------------------- /src/exec/distrib/master.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Twinklebear/tray_rust/HEAD/src/exec/distrib/master.rs -------------------------------------------------------------------------------- /src/exec/distrib/mod.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Twinklebear/tray_rust/HEAD/src/exec/distrib/mod.rs -------------------------------------------------------------------------------- /src/exec/distrib/worker.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Twinklebear/tray_rust/HEAD/src/exec/distrib/worker.rs -------------------------------------------------------------------------------- /src/exec/mod.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Twinklebear/tray_rust/HEAD/src/exec/mod.rs -------------------------------------------------------------------------------- /src/exec/multithreaded.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Twinklebear/tray_rust/HEAD/src/exec/multithreaded.rs -------------------------------------------------------------------------------- /src/film/animated_color.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Twinklebear/tray_rust/HEAD/src/film/animated_color.rs -------------------------------------------------------------------------------- /src/film/camera.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Twinklebear/tray_rust/HEAD/src/film/camera.rs -------------------------------------------------------------------------------- /src/film/color.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Twinklebear/tray_rust/HEAD/src/film/color.rs -------------------------------------------------------------------------------- /src/film/filter/gaussian.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Twinklebear/tray_rust/HEAD/src/film/filter/gaussian.rs -------------------------------------------------------------------------------- /src/film/filter/mitchell_netravali.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Twinklebear/tray_rust/HEAD/src/film/filter/mitchell_netravali.rs -------------------------------------------------------------------------------- /src/film/filter/mod.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Twinklebear/tray_rust/HEAD/src/film/filter/mod.rs -------------------------------------------------------------------------------- /src/film/image.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Twinklebear/tray_rust/HEAD/src/film/image.rs -------------------------------------------------------------------------------- /src/film/mod.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Twinklebear/tray_rust/HEAD/src/film/mod.rs -------------------------------------------------------------------------------- /src/film/render_target.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Twinklebear/tray_rust/HEAD/src/film/render_target.rs -------------------------------------------------------------------------------- /src/geometry/animated_mesh.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Twinklebear/tray_rust/HEAD/src/geometry/animated_mesh.rs -------------------------------------------------------------------------------- /src/geometry/bbox.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Twinklebear/tray_rust/HEAD/src/geometry/bbox.rs -------------------------------------------------------------------------------- /src/geometry/bvh.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Twinklebear/tray_rust/HEAD/src/geometry/bvh.rs -------------------------------------------------------------------------------- /src/geometry/differential_geometry.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Twinklebear/tray_rust/HEAD/src/geometry/differential_geometry.rs -------------------------------------------------------------------------------- /src/geometry/disk.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Twinklebear/tray_rust/HEAD/src/geometry/disk.rs -------------------------------------------------------------------------------- /src/geometry/emitter.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Twinklebear/tray_rust/HEAD/src/geometry/emitter.rs -------------------------------------------------------------------------------- /src/geometry/instance.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Twinklebear/tray_rust/HEAD/src/geometry/instance.rs -------------------------------------------------------------------------------- /src/geometry/intersection.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Twinklebear/tray_rust/HEAD/src/geometry/intersection.rs -------------------------------------------------------------------------------- /src/geometry/mesh.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Twinklebear/tray_rust/HEAD/src/geometry/mesh.rs -------------------------------------------------------------------------------- /src/geometry/mod.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Twinklebear/tray_rust/HEAD/src/geometry/mod.rs -------------------------------------------------------------------------------- /src/geometry/receiver.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Twinklebear/tray_rust/HEAD/src/geometry/receiver.rs -------------------------------------------------------------------------------- /src/geometry/rectangle.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Twinklebear/tray_rust/HEAD/src/geometry/rectangle.rs -------------------------------------------------------------------------------- /src/geometry/sphere.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Twinklebear/tray_rust/HEAD/src/geometry/sphere.rs -------------------------------------------------------------------------------- /src/integrator/mod.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Twinklebear/tray_rust/HEAD/src/integrator/mod.rs -------------------------------------------------------------------------------- /src/integrator/normals_debug.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Twinklebear/tray_rust/HEAD/src/integrator/normals_debug.rs -------------------------------------------------------------------------------- /src/integrator/path.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Twinklebear/tray_rust/HEAD/src/integrator/path.rs -------------------------------------------------------------------------------- /src/integrator/whitted.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Twinklebear/tray_rust/HEAD/src/integrator/whitted.rs -------------------------------------------------------------------------------- /src/lib.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Twinklebear/tray_rust/HEAD/src/lib.rs -------------------------------------------------------------------------------- /src/light/mod.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Twinklebear/tray_rust/HEAD/src/light/mod.rs -------------------------------------------------------------------------------- /src/linalg/animated_transform.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Twinklebear/tray_rust/HEAD/src/linalg/animated_transform.rs -------------------------------------------------------------------------------- /src/linalg/keyframe.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Twinklebear/tray_rust/HEAD/src/linalg/keyframe.rs -------------------------------------------------------------------------------- /src/linalg/matrix4.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Twinklebear/tray_rust/HEAD/src/linalg/matrix4.rs -------------------------------------------------------------------------------- /src/linalg/mod.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Twinklebear/tray_rust/HEAD/src/linalg/mod.rs -------------------------------------------------------------------------------- /src/linalg/normal.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Twinklebear/tray_rust/HEAD/src/linalg/normal.rs -------------------------------------------------------------------------------- /src/linalg/point.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Twinklebear/tray_rust/HEAD/src/linalg/point.rs -------------------------------------------------------------------------------- /src/linalg/quaternion.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Twinklebear/tray_rust/HEAD/src/linalg/quaternion.rs -------------------------------------------------------------------------------- /src/linalg/ray.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Twinklebear/tray_rust/HEAD/src/linalg/ray.rs -------------------------------------------------------------------------------- /src/linalg/transform.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Twinklebear/tray_rust/HEAD/src/linalg/transform.rs -------------------------------------------------------------------------------- /src/linalg/vector.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Twinklebear/tray_rust/HEAD/src/linalg/vector.rs -------------------------------------------------------------------------------- /src/main.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Twinklebear/tray_rust/HEAD/src/main.rs -------------------------------------------------------------------------------- /src/material/glass.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Twinklebear/tray_rust/HEAD/src/material/glass.rs -------------------------------------------------------------------------------- /src/material/matte.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Twinklebear/tray_rust/HEAD/src/material/matte.rs -------------------------------------------------------------------------------- /src/material/merl.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Twinklebear/tray_rust/HEAD/src/material/merl.rs -------------------------------------------------------------------------------- /src/material/metal.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Twinklebear/tray_rust/HEAD/src/material/metal.rs -------------------------------------------------------------------------------- /src/material/mod.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Twinklebear/tray_rust/HEAD/src/material/mod.rs -------------------------------------------------------------------------------- /src/material/plastic.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Twinklebear/tray_rust/HEAD/src/material/plastic.rs -------------------------------------------------------------------------------- /src/material/rough_glass.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Twinklebear/tray_rust/HEAD/src/material/rough_glass.rs -------------------------------------------------------------------------------- /src/material/specular_metal.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Twinklebear/tray_rust/HEAD/src/material/specular_metal.rs -------------------------------------------------------------------------------- /src/mc.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Twinklebear/tray_rust/HEAD/src/mc.rs -------------------------------------------------------------------------------- /src/partition.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Twinklebear/tray_rust/HEAD/src/partition.rs -------------------------------------------------------------------------------- /src/sampler/adaptive.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Twinklebear/tray_rust/HEAD/src/sampler/adaptive.rs -------------------------------------------------------------------------------- /src/sampler/block_queue.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Twinklebear/tray_rust/HEAD/src/sampler/block_queue.rs -------------------------------------------------------------------------------- /src/sampler/ld.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Twinklebear/tray_rust/HEAD/src/sampler/ld.rs -------------------------------------------------------------------------------- /src/sampler/mod.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Twinklebear/tray_rust/HEAD/src/sampler/mod.rs -------------------------------------------------------------------------------- /src/sampler/morton.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Twinklebear/tray_rust/HEAD/src/sampler/morton.rs -------------------------------------------------------------------------------- /src/sampler/uniform.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Twinklebear/tray_rust/HEAD/src/sampler/uniform.rs -------------------------------------------------------------------------------- /src/scene.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Twinklebear/tray_rust/HEAD/src/scene.rs -------------------------------------------------------------------------------- /src/texture/animated_image.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Twinklebear/tray_rust/HEAD/src/texture/animated_image.rs -------------------------------------------------------------------------------- /src/texture/image.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Twinklebear/tray_rust/HEAD/src/texture/image.rs -------------------------------------------------------------------------------- /src/texture/mod.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Twinklebear/tray_rust/HEAD/src/texture/mod.rs --------------------------------------------------------------------------------