Camden Dixie O'Brien
506027c194
Tweak demo scene
2025-09-23 15:02:21 +01:00
Camden Dixie O'Brien
53198edaa4
Allow negative sky colour to be specified
2025-09-23 14:19:30 +01:00
Camden Dixie O'Brien
a8c69c2386
Create multiple demo programs
2025-09-23 14:18:57 +01:00
Camden Dixie O'Brien
9db19eb2e9
Add area light material
2025-09-23 03:17:30 +01:00
Camden Dixie O'Brien
35c6d4a784
Allow -1 to be passed for auto focal length
2025-09-23 03:17:13 +01:00
Camden Dixie O'Brien
a6b70503f7
Set absorbed colour in material scatter function
2025-09-23 00:14:15 +01:00
Camden Dixie O'Brien
209ec3430f
Add camera aperture / depth-of-field
2025-09-23 00:09:47 +01:00
Camden Dixie O'Brien
4f6cbb008f
Add PNGs to .gitignore
2025-09-23 00:09:38 +01:00
Camden Dixie O'Brien
d3edbad772
Add rng_xy()
2025-09-23 00:09:38 +01:00
Camden Dixie O'Brien
d90b72e047
Rename rng_disc() to rng_plusminus()
2025-09-23 00:09:27 +01:00
Camden Dixie O'Brien
a79b414b37
Adjust camera to focus at target
2025-09-22 23:12:37 +01:00
Camden Dixie O'Brien
7e273a3e8d
Move rendering functions to own module
2025-09-22 23:08:53 +01:00
Camden Dixie O'Brien
1ee0571178
Randomise scene
2025-09-22 22:01:13 +01:00
Camden Dixie O'Brien
4062285bb7
Increase MAX_ITER in camera
2025-09-22 22:00:27 +01:00
Camden Dixie O'Brien
bbaec554d8
Create scene data structure
2025-09-22 20:36:14 +01:00
Camden Dixie O'Brien
fe5055f161
Change sky colour
2025-09-22 20:17:28 +01:00
Camden Dixie O'Brien
fb09a5553e
Allow camera position and target position to vary
2025-09-22 20:16:41 +01:00
Camden Dixie O'Brien
6e8dd39d43
Remove focal_len parameter from camera (hard-code as 1.0)
2025-09-22 19:49:13 +01:00
Camden Dixie O'Brien
22a8b3a009
Specify camera FOV instead of viewport height
2025-09-22 19:49:13 +01:00
Camden Dixie O'Brien
157bf8d93e
Add fuzz parameter to reflective material
2025-09-22 19:49:13 +01:00
Camden Dixie O'Brien
524f8ad085
Make samples per pixel a camera parameter
2025-09-22 19:49:13 +01:00
Camden Dixie O'Brien
a71aa553db
Add dielectric material
2025-09-22 19:49:13 +01:00
Camden Dixie O'Brien
4a18ad238e
Add progress output
2025-09-22 19:49:13 +01:00
Camden Dixie O'Brien
ed6ab77cc8
Tweak demo scene a little
2025-09-22 19:49:13 +01:00
Camden Dixie O'Brien
c0d7f106ee
Add reflective material
2025-09-22 19:49:13 +01:00
Camden Dixie O'Brien
d7667fa266
Create material abstraction
2025-09-22 19:49:13 +01:00
Camden Dixie O'Brien
aabfe7924d
Gamma correct pixels before writing out
2025-09-22 19:49:13 +01:00
Camden Dixie O'Brien
7552ec2fc9
Implement Lambertian diffuse scattering
2025-09-22 19:49:13 +01:00
Camden Dixie O'Brien
89597c9b01
Implement Gaussian anti-aliasing
2025-09-22 19:49:13 +01:00
Camden Dixie O'Brien
172956ae46
Parallelise rendering
2025-09-22 19:49:13 +01:00
Camden Dixie O'Brien
219415aee6
Sample each pixel multiple times
2025-09-22 19:49:13 +01:00
Camden Dixie O'Brien
6215927179
Implement diffuse scattering
2025-09-22 19:49:13 +01:00
Camden Dixie O'Brien
2037b5681f
Prevent potential divide by zero in vec3_unit()
2025-09-22 19:49:13 +01:00
Camden Dixie O'Brien
77cb219749
Implement RNG module
2025-09-22 19:49:13 +01:00
Camden Dixie O'Brien
d5474546ca
Simplify hit detection logic
2025-09-22 19:49:13 +01:00
Camden Dixie O'Brien
7400228c0c
Move rendering logic into camera module
2025-09-22 19:49:13 +01:00
Camden Dixie O'Brien
bf05f1df59
Handle hits on multiple objects
2025-09-22 19:49:13 +01:00
Camden Dixie O'Brien
8482373b4c
Add "ground" to demo scene
2025-09-22 19:49:13 +01:00
Camden Dixie O'Brien
d08629a4df
Add front/back face detection
2025-09-22 19:49:13 +01:00
Camden Dixie O'Brien
d6f583c260
Move camera initialisation into seperate module
2025-09-22 19:49:13 +01:00
Camden Dixie O'Brien
a345835703
Create obj module for scene objects
2025-09-22 19:49:13 +01:00
Camden Dixie O'Brien
88dc098db2
Colour sphere based on normal
2025-09-22 19:49:13 +01:00
Camden Dixie O'Brien
9048039be0
Implement simple intersection detection with sphere
2025-09-22 19:49:13 +01:00
Camden Dixie O'Brien
163874c175
Set up camera and bg in demo
2025-09-22 19:49:13 +01:00
Camden Dixie O'Brien
e00c16f9df
Create vec3 module
2025-09-22 19:49:13 +01:00
Camden Dixie O'Brien
db37197a49
Add license (Komorebi)
2025-09-20 14:45:42 +01:00
Camden Dixie O'Brien
93a8f52549
Write simple CMake build config
2025-09-20 14:45:42 +01:00
Camden Dixie O'Brien
4eacecfdbf
Add .gitignore for build directory and output images
2025-09-20 14:45:42 +01:00
Camden Dixie O'Brien
a78c8914d5
Create initial demo writing an image
2025-09-20 14:45:42 +01:00
Camden Dixie O'Brien
04bdedd131
Write simple farbfeld-writing module
2025-09-20 13:31:22 +01:00