Commit Graph

50 Commits

Author SHA1 Message Date
Camden Dixie O'Brien
c8ca24e572 Tweak demo scene 2025-09-23 15:35:26 +01:00
Camden Dixie O'Brien
f386270842 Allow negative sky colour to be specified 2025-09-23 15:35:26 +01:00
Camden Dixie O'Brien
fd1a1e0f5a Create multiple demo programs 2025-09-23 15:35:26 +01:00
Camden Dixie O'Brien
139ff40f12 Add area light material 2025-09-23 15:35:26 +01:00
Camden Dixie O'Brien
42976ef40b Allow -1 to be passed for auto focal length 2025-09-23 15:35:26 +01:00
Camden Dixie O'Brien
fad9dca35e Set absorbed colour in material scatter function 2025-09-23 15:35:26 +01:00
Camden Dixie O'Brien
f89a779b8f Add camera aperture / depth-of-field 2025-09-23 15:35:26 +01:00
Camden Dixie O'Brien
f32ec378a3 Add PNGs to .gitignore 2025-09-23 15:35:26 +01:00
Camden Dixie O'Brien
f66e306e8f Add rng_xy() 2025-09-23 15:35:26 +01:00
Camden Dixie O'Brien
36bca27462 Rename rng_disc() to rng_plusminus() 2025-09-23 15:35:26 +01:00
Camden Dixie O'Brien
f35cb77630 Adjust camera to focus at target 2025-09-23 15:35:26 +01:00
Camden Dixie O'Brien
d891320a2a Move rendering functions to own module 2025-09-23 15:35:26 +01:00
Camden Dixie O'Brien
43670cbfba Randomise scene 2025-09-23 15:35:26 +01:00
Camden Dixie O'Brien
7299dff677 Increase MAX_ITER in camera 2025-09-23 15:35:26 +01:00
Camden Dixie O'Brien
6c832324e2 Create scene data structure 2025-09-23 15:35:26 +01:00
Camden Dixie O'Brien
30472cd7f6 Change sky colour 2025-09-23 15:35:26 +01:00
Camden Dixie O'Brien
4b093f43b6 Allow camera position and target position to vary 2025-09-23 15:35:26 +01:00
Camden Dixie O'Brien
483dab82ef Remove focal_len parameter from camera (hard-code as 1.0) 2025-09-23 15:35:26 +01:00
Camden Dixie O'Brien
37d9b9e823 Specify camera FOV instead of viewport height 2025-09-23 15:35:26 +01:00
Camden Dixie O'Brien
d47e7d7d9d Add fuzz parameter to reflective material 2025-09-23 15:35:26 +01:00
Camden Dixie O'Brien
746b902302 Make samples per pixel a camera parameter 2025-09-23 15:35:26 +01:00
Camden Dixie O'Brien
73028df5b3 Add dielectric material 2025-09-23 15:35:26 +01:00
Camden Dixie O'Brien
313619d8d5 Add progress output 2025-09-23 15:35:26 +01:00
Camden Dixie O'Brien
c12ae7b4a5 Tweak demo scene a little 2025-09-23 15:35:26 +01:00
Camden Dixie O'Brien
3b6bc953b5 Add reflective material 2025-09-23 15:35:26 +01:00
Camden Dixie O'Brien
7f1103a179 Create material abstraction 2025-09-23 15:35:26 +01:00
Camden Dixie O'Brien
219219ce64 Gamma correct pixels before writing out 2025-09-23 15:35:26 +01:00
Camden Dixie O'Brien
31adfd66f4 Implement Lambertian diffuse scattering 2025-09-23 15:35:26 +01:00
Camden Dixie O'Brien
d8a2b8a3d8 Implement Gaussian anti-aliasing 2025-09-23 15:35:26 +01:00
Camden Dixie O'Brien
259f0922b3 Parallelise rendering 2025-09-23 15:35:26 +01:00
Camden Dixie O'Brien
d07ccec5ba Sample each pixel multiple times 2025-09-23 15:35:26 +01:00
Camden Dixie O'Brien
790882417a Implement diffuse scattering 2025-09-23 15:35:26 +01:00
Camden Dixie O'Brien
bbe7744088 Prevent potential divide by zero in vec3_unit() 2025-09-23 15:35:26 +01:00
Camden Dixie O'Brien
f4fcdc8a02 Implement RNG module 2025-09-23 15:35:26 +01:00
Camden Dixie O'Brien
ca8166e98e Simplify hit detection logic 2025-09-23 15:35:26 +01:00
Camden Dixie O'Brien
6a6fc20dac Move rendering logic into camera module 2025-09-23 15:35:26 +01:00
Camden Dixie O'Brien
fca3c433ba Handle hits on multiple objects 2025-09-23 15:35:26 +01:00
Camden Dixie O'Brien
d9cef496cb Add "ground" to demo scene 2025-09-23 15:35:26 +01:00
Camden Dixie O'Brien
6eb4da9e06 Add front/back face detection 2025-09-23 15:35:26 +01:00
Camden Dixie O'Brien
77723aefa0 Move camera initialisation into seperate module 2025-09-23 15:35:26 +01:00
Camden Dixie O'Brien
08f1a2a4dc Create obj module for scene objects 2025-09-23 15:35:26 +01:00
Camden Dixie O'Brien
0ea0c1edd2 Colour sphere based on normal 2025-09-23 15:35:26 +01:00
Camden Dixie O'Brien
58e3a869bb Implement simple intersection detection with sphere 2025-09-23 15:35:26 +01:00
Camden Dixie O'Brien
9da18b734f Set up camera and bg in demo 2025-09-23 15:35:26 +01:00
Camden Dixie O'Brien
0d3871ff24 Create vec3 module 2025-09-23 15:35:26 +01:00
Camden Dixie O'Brien
1e0ccabeb0 Add license (Komorebi) 2025-09-23 15:35:26 +01:00
Camden Dixie O'Brien
2cab9b06c7 Write simple CMake build config 2025-09-23 15:35:26 +01:00
Camden Dixie O'Brien
2447c2bcac Add .gitignore for build directory and output images 2025-09-23 15:35:26 +01:00
Camden Dixie O'Brien
9b578c4e59 Create initial demo writing an image 2025-09-23 15:35:26 +01:00
Camden Dixie O'Brien
e58e5c3967 Write simple farbfeld-writing module 2025-09-23 15:35:26 +01:00