A simple 3D computer graphics software.
This project is divided in two parts:
- The GUI application written in Java consisting of:
- A WYSIWIG 3D editor to model your scenes
- You can add primitives or complex meshes from .obj files
- Each scene can be saved to a
.scene
file for further image generation.
- Its own scripting language
- Able to edit the scene
- Each visual action is recorded and added to history in a repeatable form
- Can be loaded from file to generate complex scenes and animations
- For more information about the language
- A WYSIWIG 3D editor to model your scenes
- The Raytracer written in C++:
- Taking scenes as input and generating the corresponding image in PPM.
Supported platforms are:
- Windows x64 (tested on Windows 10)
- Linux x64
- A C++ compiler with C++14 compatibility
- If the compiler supports OpenMP it will be used to speed up the renders
- Cmake (version 2.8 or up)
This was tested on:
- Windows 10 with VS2017
- Ubuntu with clang++ 3.8
- Ubuntu with g++ 4.9, 5.0 and 6.0
To compile the Raytracer on Windows you can use Cmake to generate a Visual Studio Solution or just simply use the Open Directory feature of VS2017.
When the project is open in Visual Studio we recommend to compile using the Release preset (instead of Debug) in order to get the best performance possible.
cd raytracer
make
After creating a scene file with the GUI application, it is possible to run the raytracer to make a realistic render of this scene.
./raytracer/_build/raytracer your_input.scene out.ppm
This will generate a PPM file.
You can view this PPM file using diverse image viewer or convert it to popular image formats using a program like ImageMagick. With ImageMagick you can just launch:
convert out.ppm out.jpg
To convert the output image to JPG.
- Java 8.0 with JavaFX support
- Gradle
To build the project you can simply use Gradle:
gradle run
TODO