99 Commits

Author SHA1 Message Date
32b27e2225 improve performance by precomputing parts of the AABB intersection algorithm 2024-08-18 14:21:28 +02:00
871c837c34 add RandomGenerator parameter to Hittable#hit 2024-08-13 11:20:19 +02:00
9b72909d27 add command line option for number of spectral samples 2024-08-13 10:31:09 +02:00
533461204a properly implement transfer functions and apply them to the output image 2024-08-12 13:27:47 +02:00
b8aae8c2e5 rework interface between materials and rgb colors 2024-08-12 13:27:28 +02:00
9eb8afcb59 fix RGBUnboundedSpectrum 2024-08-12 10:46:37 +02:00
75c56c0032 move packages 2024-08-12 10:34:58 +02:00
903ab1409b add @Contract annotations to vector-like objects 2024-08-12 10:33:15 +02:00
791ee606c4 fixup color framework 2024-08-12 10:26:59 +02:00
00fbf4e4f1 adjust rendering pipeline for spectral rendering 2024-08-11 16:32:40 +02:00
ddc861138a align operators in Vec3, Color, ColorXYZ and SampledSpectrum 2024-08-11 00:37:04 +02:00
c9db3bf94b add color framework to prepare for spectral rendering 2024-08-11 00:36:22 +02:00
23c7a550ec minor performance improvements 2024-08-08 22:46:31 +02:00
6599c41b14 add a check to Vec3#unit to avoid unnecessary sqrt and division 2024-08-08 21:58:51 +02:00
9e79333e1e add documentation 2024-08-08 21:58:06 +02:00
dbd3d5fc4b minor performance improvements 2024-08-08 21:16:11 +02:00
e2c9609e0e add Vec3#fma to improve performance 2024-08-08 21:10:38 +02:00
89c4340821 make Vec3#random generate unit vectors by default 2024-08-08 21:06:49 +02:00
c0dccbbd0c add overloaded constructor to Box 2024-08-08 20:19:22 +02:00
ed9e50b8f2 allow multiple sampling targets in a scene 2024-08-08 20:10:05 +02:00
6e35453932 improve documentation 2024-08-08 19:46:33 +02:00
77c1a87e4f fix a possible cause of NaNs 2024-08-08 19:46:33 +02:00
cb4dcc53f1 fix a bug in PdfUtil#getSolidAngle 2024-08-08 19:46:33 +02:00
940e8ebc37 improve debuggability 2024-08-08 19:46:33 +02:00
2a2cf7b642 make renders (almost) deterministic 2024-08-08 19:29:43 +02:00
c4ee560dc9 add targeting probability density function 2024-08-08 18:23:18 +02:00
6b47f44ad2 add probability density function based materials 2024-08-08 16:54:17 +02:00
5f1e816edd add stratification to pixel sampling 2024-08-08 11:02:01 +02:00
a31488bc78 improve color averaging 2024-08-08 10:25:32 +02:00
67bfafc5b8 fix corner bias in Vec3#random(random, true) 2024-08-08 10:22:26 +02:00
f7d9153ad8 add a material that looks different on both sides 2024-08-07 22:52:10 +02:00
a22b1cb238 allow boxes to have different materials on each side 2024-08-07 22:05:48 +02:00
c91baf9e0c add final scene to readme 2024-08-07 21:41:34 +02:00
a90a0db6d5 improve AABB hit test by adding a range check 2024-08-07 16:26:30 +02:00
1b02f8a96d skip unnecessary UV calculations 2024-08-07 15:53:36 +02:00
18c179f8e3 improve performance of boxes 2024-08-07 15:53:36 +02:00
1d48a49987 refactor AABB intersection 2024-08-07 15:53:36 +02:00
9b617a82a8 remove HittableOctree 2024-08-07 15:53:36 +02:00
dfe80011c9 add "final" scene 2024-08-07 15:53:36 +02:00
37539a1906 add minor improvements to perlin noise performance 2024-08-07 15:53:36 +02:00
70f2f38e96 add perlin noise texture 2024-08-07 15:53:36 +02:00
e6447fe684 add image texture 2024-08-07 15:53:36 +02:00
7c0bc68ab2 add texture support 2024-08-07 15:53:36 +02:00
2c28b10a6e small performance improvements 2024-08-07 07:40:28 +02:00
d5173c2d5a add spheres to readme 2024-08-06 18:20:56 +02:00
48a591de7e fix length of IDAT chunk 2024-08-06 18:07:52 +02:00
9ebf8bd1c4 use a more performant RandomGenerator 2024-08-06 18:07:52 +02:00
9106ccf8b0 switch from octree to binary tree 2024-08-06 18:07:51 +02:00
3a3949f518 disallow unbounded Hittables and refactor Octree 2024-08-06 18:07:51 +02:00
414af5860b add color to DielectricMaterial 2024-08-06 18:07:51 +02:00