Skip to content

Latest commit

 

History

History
83 lines (60 loc) · 4.14 KB

README.md

File metadata and controls

83 lines (60 loc) · 4.14 KB

RayDream

A photorealistic raytracer and editor designed to create stunning rendered images with ease and flexibility. Featuring an intuitive interface for editing objects, importing models, and adjusting raytracer settings.

Editor

Features

  • Photorealistic Rendering: High-quality raytracing for realistic lighting, shadows, and reflections.
  • Acceleration Structures:
    • Bounding Volume Hierarchies (BVH): Speeds up rendering by optimizing object intersections.
    • Adaptive Supersampling: Enhances image quality by dynamically refining pixel sampling in detailed areas.
    • Multithreading: Leverages multiple CPU cores for faster rendering.
  • GUI and Editing:
    • Object Editing: Modify object properties such as position, rotation, scale, and material.
    • Settings Panel: Adjust rendering parameters like resolution, recursion depth, and lighting settings.
    • Model Import: Load and integrate OBJ models, complete with support for:
      • Textures: Apply image-based materials to models.
      • Bump Mapping: Add surface detail for increased realism.

Images Rendered with RayDream

Scratched Glass

Glass Cups

Toys

Spider

Getting Started

Prerequisites:

  • Apache Maven
  • Java JDK 22 or greater
  • A system that supports OpenGL and the latest graphics drivers installed

Compile and Run

  1. Clone the repository:

    git clone https://github.com/JacksonHoggard/raydream.git
    cd raydream
  2. Compile the program:

    mvn clean package

  3. Once the program has finished compiling, either double click on the raydream-jar-with-dependencies.jar file in the newly created target folder, or run the following commands to run the program:

    cd target/
    java -jar raydream-jar-with-dependencies.jar

Contributions

Contributions to RayDream are welcome! Whether you want to fix bugs, add new features, or improve documentation, your contributions are greatly appreciated. Just fork the repository, make your changes, and submit a pull request.

License

This project is licensed under the MIT License.

Acknowledgments

Resources used for this project: