Open-Source Ray-Tracing library
Introduction
OpenRT is a C++ ray-tracing library, which allows for synthesis of photo-realistic images. First of all, the library is developed for academic purposes: as an accompaniment to the course on computer graphics and as a teaching aid for university students. Specifically, it includes the following features:
- Distribution Ray Tracing
- Global Illumination
OpenRT aims for a realistic simulation of light transport, as compared to other rendering methods, such as rasterisation, which focuses more on the realistic simulation of geometry. Effects such as reflections and shadows, which are difficult to simulate using other algorithms, are a natural result of the ray tracing algorithm. The computational independence of each ray makes our ray-tracing library amenable to a basic level of parallelisation. OpenRT is released under a BSD license and hence it is free for both academic and commercial use. The code is written entirely in C++ with using the OpenCV library.
Features
Anti-aliasing
Constructive solid geometry (by Otmane Sabir)
Area Lights
Ambient Occlusion
VR 360° Camera (by Fjolla Dedaj)
Cornell Box
Computer Graphics Course
Lectures | Slides | Worksheets | Assignments | |
---|---|---|---|---|
1 | Introduction to Ray Tracing | slides | ||
2 | Camera and Lens Models | slides | Worksheet 1 | |
3 | Ray-geometry intersection algorithms | slides | Worksheet 2 | Assignment 1 |
4 | Spatial Index Structures | slides | Assignment 2 | |
5 | Shading: Rendering Equation & BRDF | slides | Worksheet 3 | Assignment 3 |
6 | Texturing | slides | Worksheet 4 | Assignment 4 |
7 | Distribution Ray-Tracing | slides | Assignment 5 | |
8 | Transformations | |||
9 | Animation | Worksheet 5 | Assignment 6 | |
10 | Global Illumination | |||
11 | Human Visual System | |||
12 | Color | |||
13 | Sampling and Reconstruction | |||
14 | Environment camera & Virtual Reality | Worksheet 6 |