39 Commits

Author SHA1 Message Date
301dcd3c61 Add complex scene rendering example 2022-11-14 18:15:59 +01:00
d6636bc844 Tweak the complex scene parameters 2022-11-14 11:07:00 +01:00
0140db6247 Fix constant medium rendering 2022-11-14 11:06:35 +01:00
060e27523f Render a complex scene 2022-11-13 20:55:41 +01:00
3e90f7e7cd Add participating media 2022-11-13 20:19:45 +01:00
990b36d9eb Add basic transforms
This change allows us to render a complete Cornell box.
2022-11-13 19:41:48 +01:00
e78b539258 Add box hittables 2022-11-13 18:25:33 +01:00
990b9d3016 Add an empty Cornell box 2022-11-13 18:04:49 +01:00
baa67b51db Move to CMake 2022-11-13 17:43:49 +01:00
007bb10b7b Add diffuse lights 2022-11-13 17:28:20 +01:00
8db2d5aa2c Reduce the public API of Hittable and Material 2022-11-13 16:42:05 +01:00
391aa6240e Add image textures 2022-11-13 16:35:37 +01:00
fc35055466 Introduce a marble-like noise texture 2022-11-13 16:01:49 +01:00
8400ea96aa Add Perlin noise 2022-11-13 15:53:22 +01:00
20a77499bc Add solid textures 2022-11-13 15:18:29 +01:00
9b0abbc5bb Move to unions instead of structure headers
Using explicit pointer casts silences some compiler warnings that may
introduce subtle bugs in the code. The union approach is the officially
documented way of doing type punning, so there is no reason not to use
it.
2022-11-13 13:56:25 +01:00
f23e454358 Add a bounding volume hierarchy 2022-11-12 18:59:57 +01:00
1034668c66 Add moving spheres 2022-11-12 16:46:13 +01:00
2abc2ba697 Cleanup the API 2022-11-12 16:17:42 +01:00
67cf29b684 Introduce memory arenas 2022-11-12 14:08:11 +01:00
c97d9664e0 Render a larger scene 2022-11-12 13:36:03 +01:00
482a3bf196 Add defocus blur 2022-11-11 22:58:22 +01:00
e5e5863c1d Parametrize the camera 2022-11-11 22:46:52 +01:00
7e6ba7d445 Add glass material 2022-11-11 12:27:06 +01:00
21b3d0e713 Add materials 2022-11-11 12:06:18 +01:00
062f51c7e6 Ignore valgrind core files 2022-11-11 11:36:52 +01:00
f6278ce63e Simplify the Hittable API
We need to disable strict aliasing, but it is weird anyways:
https://blog.regehr.org/archives/1307
2022-11-11 11:27:00 +01:00
e397ee9ad9 Use true Lambertian diffusion 2022-11-11 09:48:49 +01:00
204180b1a7 Add gamma correction and fix rounding errors 2022-11-11 09:44:01 +01:00
0f5b6a756c Render a diffuse sphere 2022-11-11 09:39:51 +01:00
d2a6aec56c Add a simple camera and antialiasing 2022-11-10 23:26:18 +01:00
ec322b7c16 Add hittable objects 2022-11-10 23:09:05 +01:00
6352cbf0fd Simplify the ray-sphere intersection code 2022-11-10 22:17:22 +01:00
647abd385d Render surface normals 2022-11-10 22:12:35 +01:00
e1173e5bd3 Add a simple sphere 2022-11-10 22:07:37 +01:00
c9e8fb7091 Add background color 2022-11-10 22:03:35 +01:00
14fa4b6c9a Add vectors, points and colors 2022-11-10 21:35:56 +01:00
e13b93fac0 Add a progress indicator 2022-11-10 21:34:14 +01:00
7e9c50b764 Initial commit 2022-11-10 21:17:15 +01:00