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
- Host: GitHub
- URL: https://github.com/zachary-cauchi/cps5124-assignment-1
- Owner: zachary-cauchi
- Created: 2021-05-10T12:44:15.000Z (over 4 years ago)
- Default Branch: master
- Last Pushed: 2023-06-29T20:07:58.000Z (over 2 years ago)
- Last Synced: 2025-02-09T23:28:56.381Z (8 months ago)
- Topics: global-illumination, json, pathtracing, raytracing
- Language: C++
- Homepage:
- Size: 2.29 MB
- Stars: 0
- Watchers: 2
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
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.