56 Commits

Author SHA1 Message Date
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
9175377ac4 move examples to their own file 2024-08-06 18:07:51 +02:00
96909002d7 fix checksum of IEND chunk 2024-08-06 18:07:51 +02:00
ac5a42e7bc add README.md 2024-08-06 18:07:51 +02:00
e4e241a314 add command line argument parser 2024-08-06 00:10:43 +02:00
360fb2c990 add constant density mediums 2024-08-05 18:35:10 +02:00
c002b8215a prevent StackOverflowError in SimpleRenderer 2024-08-05 17:54:04 +02:00
580d8eca12 add transforms 2024-08-05 16:42:21 +02:00
27e3fc0990 fix tests 2024-08-05 16:42:21 +02:00
ebbf711403 add cornell box 2024-08-05 16:42:21 +02:00
3be855cffd add light sources 2024-08-05 15:13:28 +02:00
36de714f46 refactor Scene 2024-08-05 15:13:28 +02:00
8ea894cd3e fix live canvas clipping 2024-08-05 14:15:50 +02:00
b5acbd1b6c add 2d primitives 2024-08-05 14:15:50 +02:00
86b6f1891c move material package 2024-08-05 13:01:03 +02:00
7a5526f987 configure java version and main class in gradle 2024-08-05 12:59:41 +02:00
137c0b2190 add octree to improve rendering performance by reducing the number of ray-sphere-intersection calculations 2024-08-05 12:35:31 +02:00
a84ed5c050 add bounding box to sphere 2024-08-04 23:54:35 +02:00
8b7b99b184 add simple scene 2024-08-04 23:54:18 +02:00
828c332e76 make scene deterministic 2024-08-04 23:53:46 +02:00
07cdc0c213 remove Double#isFinite checks in Vec3 constructor
A performance analysis showed, that the Double#isFinite checks in the Vec3 constructor add significant overhead without providing much value to the application.
2024-08-04 19:54:21 +02:00
b47ded6c56 add iterative rendering mode for faster results
In normal mode, the image is rendered one pixel at a time, taking multiple samples per pixel and averaging them before continuing with the next pixel.

In iterative mode, the image is rendered one sample at a time, taking one sample per pixel, then taking another sample and averaging it with the one before, and so on.
2024-08-04 19:15:44 +02:00
0c6db707e0 separate camera from rendering 2024-08-04 19:04:25 +02:00
c17b9aedf5 add "final" scene 2024-08-04 18:54:31 +02:00
bb326e82a6 abstract Image and add support for watching the image as its being rendered 2024-08-04 17:43:54 +02:00
1080711229 add depth of field 2024-08-04 00:18:54 +02:00
d89d15f1a4 add Camera.Builder 2024-08-04 00:18:54 +02:00
94231f6a5b play with camera settings and fix handedness of camera 2024-08-03 22:37:00 +02:00
82b38d4501 add total internal reflection 2024-08-03 22:16:53 +02:00
088263b344 add dielectric material 2024-08-03 22:05:02 +02:00
ca769c56b2 add metal fuzz 2024-08-03 21:42:18 +02:00
a41b14da48 add metal 2024-08-03 21:30:22 +02:00
2e5659a04a add custom Materials 2024-08-03 21:19:01 +02:00
927f63adf0 add support for png images 2024-08-03 17:02:19 +02:00
cf0ed6f13f apply gamma correction 2024-08-03 03:00:11 +02:00
0f122e2062 use Lambertian reflection 2024-08-03 02:56:24 +02:00
8e77662b33 fix "shadow acne" 2024-08-03 02:54:15 +02:00
d2ca6922ef add diffuse material 2024-08-03 02:52:07 +02:00
9d204f6aa4 add antialiasing 2024-08-03 02:42:15 +02:00
af3dc8dac7 refactor Camera 2024-08-03 02:36:21 +02:00
672dc6af8b refactor Shape 2024-08-03 02:15:03 +02:00
1113b91077 move render method to Camera 2024-08-03 02:15:03 +02:00
7757b3d573 add Range to optimize Shape#hit 2024-08-03 02:15:02 +02:00
5e52db65d4 add another sphere 2024-08-03 01:53:48 +02:00