Skip to content

Multithreaded Recursive Raytracer with XML scene loading support C++

Notifications You must be signed in to change notification settings

xinoip/xml-raytracer

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

1 Commit
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

xml-raytracer

Multithreaded, experimental, C++ recursive raytracer that can render complex meshes with lighting, reflection and shadow support. Renderer supports shading with ambient, diffuse, specular, phong and reflective materials. Example scenes are created with blender 3d.

It reads scene data from xml files and renders the resulting frame as a PPM image file.

Build

Build uses VCPKG to manage dependencies.

mkdir build
cd build
cmake ..
cmake -build .

Usage

Program takes the scene file in xml format as a cli argument. You can place lights, objects (meshes) with different materials into the scene. You can also configure your camera setup in the xml file. Check the provided example scenes for more info on the format of xml scene files.

./xml-raytracer [path-to-xml-scene-file]

Results

test_blender_1.xml result

test_shadow.xml result

test_monkey.xml result

test_monkey_2.xml result

About

Multithreaded Recursive Raytracer with XML scene loading support C++

Topics

Resources

Stars

Watchers

Forks