Skip to content

clementlrd/Ray-Tracer

Repository files navigation

Ray-Tracer

The Ray-tracer is a project for ENSTA Course IN204 developped by Clément Laroudie and Antoine Domingues. It will continue to be improved even after the final presentation.

Example of scene

Project description

Our Rendering Engine is able to render a scene composed of various 3D objects that can have a range of materials and colours.

The project exports the image to a .ppm file initially, for simplicity.

Requirement

  • The ray-tracer generates images in ppm format. If you do not have applications that can read this file format, you can use an online viewer/converter. We have chosen to use the application for linux ImageMagick (also available for Windows) for its simplicity of use.
  • The project has been built with CMake.

Create project

You can simply use the make command to build the project and run the ray-tracer with the default configuration. Other Makefile commands are available for simplicity:

  • all: Build the project, run the programme and convert image to png.
  • init: Clean folders and build the project
  • start: Starts the program with the default settings
  • build: Initialise cmake and build the project

You can convert the programme result in a format supported by ImageMagick with the following command : make png (Exemple pour le format png)

If you want to start the project manually, type the following command :

build/ray-tracer apps/config.json

Configuration

Rendering can be configured from Json files :

  • A config.json file for the rendering parameters.
  • A scene.json file that represents the scene.

Only the config.json file may be passed to the program as a parameter.

Details of the parameters are detailled here.

Development

We use the clang-format formatter.

Editor must be configured to work with cmake. (with >CMake: Configure for VSCode with the CMake tools extension).

Project has been configured to be developped using clangd or intellisense linter.