An open API service indexing awesome lists of open source software.

https://github.com/zachary-cauchi/cps5124-assignment-1

Ray/Path tracer program for CPS5124
https://github.com/zachary-cauchi/cps5124-assignment-1

global-illumination json pathtracing raytracing

Last synced: 6 months ago
JSON representation

Ray/Path tracer program for CPS5124

Awesome Lists containing this project

README

          

# CPS5124-assignment-1
Source code for my CPS5124 study unit assignment.

## Tasks
### Task 0
- [x] Add JSON file parsing to load scene data.
- [x] Output a test png/jpg image.

### Task 1
- [x] Implement basic ray-tracer functions.
- [x] `intersects` function, returning the point of intersection.
- [x] `isOccluded` function, returning whether the ray hits something or not.
- [x] Render a depth map as output of the functions.

### Task 2

- [x] Create a whitted-style ray tracer.
- [x] Point lights.
- [x] Diffuse surfaces.
- [x] Specular reflective.
- [x] Specular transmissive surfaces.
- [x] Pinhole camera with box linear filter.
- [x] Implement tone mappers.
- [x] Sigmoid tone mapper.
- [x] Linear tone mapper.

### Task 3
- [x] Extend the ray tracer to support the complex effects.
- [x] Path tracer.
- [x] Lens-based camera.
- [x] Area Lights.
- [x] Soft shadows.
- [x] Glossy and translucent surfaces.
- [x] Create the following image estimators:
- [x] Uniform random.
- [x] Stratified sampling.
- [x] Russian Roulette.

### Task 4
- [ ] Create demo scene to demonstrate progress.