Giter Club home page Giter Club logo

raytracer's Introduction

raytracer

Project

This application is a ray tracer that renders a 3D scene containing different objects in various materials. The report contains technical details of the implementation. This software was created with the eventual goal of producing raytraced images using a photon map and including caustic effects through dielectric material. The project is not fully complete, and the photon maps are not currently used in the production of the image.

Features

Usage

Rust is required to run this project. You can install the Rust compiler using Rustup.

Run cargo run to build and run the project. Beware that without changes, this will generate a very high quality image (1024 x 1024) and take a long time.

The following command can be run to produce an image with the default 500 samples and 512 by 512 resolution:

cargo run --package raytracer --release -- -s [SCENE]

where [SCENE] can be one of the following: cornell, full or material to change the contents of the output. The number of samples and resolution can be changed by using --samples and -r respectively.

The output image will appear in the root directory as test.png and may look something like this example, which is the full scene rendered with 1000 samples and 1024 resolution.

Cargo Features

The "unfinished" feature contains the incomplete photon mapping and caustics map, and can be activated by adding --all-features to the cargo command like so:

cargo run --package raytracer --release --all-features -- -s [SCENE]

This will not produce a realistic render and will take significantly longer than a normal run.

raytracer's People

Contributors

gememma avatar

Watchers

 avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.