54 Commits

Author SHA1 Message Date
twistdroach
e2c819261c Refactor functions with no arguments to make sure they have a prototype 2023-10-02 20:05:58 -04:00
Zachary D. Rowitsch
b86753e165 clang-format commit 4 2020-10-23 23:41:36 -04:00
Zachary D. Rowitsch
fd7b1612ee Add bounding volume hierarchies. Move groups to a linked list implementation instead of the array backed list (lots of removals with BVH calculation). Turn off OpenMP for Debug builds 2020-10-08 21:45:29 -04:00
Zachary D. Rowitsch
bc478d660a add Constructive Solid Geometry support 2020-10-04 20:33:41 -04:00
Zachary D. Rowitsch
e3ecba7b84 pull raytracer stuff out of datastructures 2020-10-03 11:34:11 -04:00
Zachary D. Rowitsch
c8e64670ac Avoid some setjmp/longjmp clobbering errors that show up in the release build 2020-10-01 23:21:01 -04:00
Zachary D. Rowitsch
fa1a653cdb Add some group tests and actually run some light tests... 2020-09-30 23:13:51 -04:00
Zachary D. Rowitsch
1e15ab45d5 add some missing testing for lights 2020-09-30 22:54:10 -04:00
Zachary D. Rowitsch
e1a11eae21 Add test of ARRLIST_safe_get() 2020-09-30 22:26:40 -04:00
Zachary D. Rowitsch
1bd210fcc9 Woops - forgot to add test_material to the list of tests 2020-09-30 19:51:20 -04:00
Zachary D. Rowitsch
5c8e2e70ad Add triangle normal interpolation... 2020-09-29 22:50:49 -04:00
Zachary D. Rowitsch
2558670a24 Added triangle support, added obj support. added render_obj binary to load and scale an obj file and render it 2020-09-28 00:35:46 -04:00
Zachary D. Rowitsch
39d1246141 minor refactoring to pull tuples & matrix into math package, need to pull apart raytracing and datastructures next 2020-09-09 23:19:24 -04:00
Zachary D. Rowitsch
66e29e41d1 Add schlick approximation to implement fresnel effect 2020-09-07 00:06:31 -04:00
Zachary D. Rowitsch
0506bd7b68 begin implementing refraction & transparency, no updated demo quite yet, need fresnel effect 2020-09-06 22:37:07 -04:00
Zachary D. Rowitsch
7de52c66a4 add recursion limit in reflection ray casting 2020-09-05 18:42:40 -04:00
Zachary D. Rowitsch
7a7a150590 Begin adding reflections. No recursion limit yet, so world test blows up 2020-09-05 00:54:54 -04:00
Zachary D. Rowitsch
417d232df1 Beggining patterns, only have test & striped at the moment 2020-08-28 23:38:50 -04:00
Zachary D. Rowitsch
32f98db841 Factored out shapeholder, shapes handling is now much cleaner 2020-08-26 00:28:59 -04:00
Zachary D. Rowitsch
569aa41f46 Add WORLD_delete_all_objects for convenience so we don't have to track of ptrs to all the objects in a world outside of the world 2020-08-25 23:26:55 -04:00
Zachary D. Rowitsch
71726673eb Minor refactor to push shapes into their own module... 2020-08-25 20:24:25 -04:00
Zachary D. Rowitsch
bb991af361 Minor refactoring to cleanup after creating shape parent class 2020-08-25 20:09:00 -04:00
Zachary D. Rowitsch
ed3888f456 Abstract shapes is complete 2020-08-24 21:34:46 -04:00
Zachary D. Rowitsch
27ff591903 Begin abstracting shapes 2020-08-23 21:52:27 -04:00
Zachary D. Rowitsch
60f7cf4af2 Remove intersections module, absorb into ray 2020-08-22 22:37:27 -04:00
Zachary D. Rowitsch
af59f19026 Implment shadows, one failing world test! 2020-08-20 00:09:06 -04:00
Zachary D. Rowitsch
8165bd1eb5 Finished adding camera, build demo with three spheres 2020-08-19 00:20:18 -04:00
Zachary D. Rowitsch
860d88008e Beginning camera implementation 2020-08-17 23:34:32 -04:00
Zachary D. Rowitsch
166c0b3f25 further world implementation, light copy function 2020-08-17 22:38:01 -04:00
Zachary D. Rowitsch
dabf643346 Further world implementation (and introduction of intersection computation cache) 2020-08-16 23:07:05 -04:00
Zachary D. Rowitsch
dd045f5516 Begin world implementation, minor cleanup 2020-08-16 22:06:42 -04:00
Zachary D. Rowitsch
18cc1c21d9 minor test comparison fix 2020-08-14 23:23:30 -04:00
Zachary D. Rowitsch
21461babe4 Refactoring... name structs that were anonymous (to help my ide), refactor to minimize heap allocations 2020-08-14 23:04:59 -04:00
Zachary D. Rowitsch
715695778e Optimize matrixes a bit - put double array inside the struct instead of a ptr. Inlined a few matrix functions. Reduced optimized run time of phone_sphere benchmark from 2m to 1m 2020-08-13 23:40:30 -04:00
Zachary D. Rowitsch
212150d4d9 Add materials/lights, calculate phong shading, phon_render_sphere not quite shaded correctly yet... 2020-08-12 00:55:11 -04:00
Zachary D. Rowitsch
82e94c8ba1 Add sphere transformations (and use them when calculating ray intersections), add sphere_shadow to test 2020-08-11 05:46:08 -04:00
Zachary D. Rowitsch
20f06a79b5 Add rays/spheres/intersections. Spheres incomplete 2020-08-10 00:15:29 -04:00
Zachary D. Rowitsch
8ae827fff8 Add translations/scaling/rotations/shearing and related testing 2020-08-07 21:54:39 -04:00
Zachary D. Rowitsch
c4d768bb59 Refactor MATRIX_init_identity to MATRIX_new_identity 2020-08-07 17:31:51 -04:00
Zachary D. Rowitsch
79cd5b8a6a Fix memory leak from double initialization from MATRIX_multiply refactor. Add vectorized MATRIX_destroy/delete functions 2020-08-07 17:24:29 -04:00
Zachary D. Rowitsch
d0606dde54 Refactor MATRIX_multiply to return a newly allocated matrix to make interface more consistent 2020-08-07 16:55:38 -04:00
Zachary D. Rowitsch
14ff33b745 Add some more inverse matrix testing 2020-08-07 14:56:26 -04:00
Zachary D. Rowitsch
b8afbfc36e Add many matrix operations 2020-08-07 00:09:50 -04:00
Zachary D. Rowitsch
8796b127e5 modify MATRIX_get_cell to MATRIX_read_cell & make it return a double instead of double* 2020-08-05 23:52:23 -04:00
Zachary D. Rowitsch
f2f5b59b2f Beginning matrix implementation... 2020-08-05 23:47:16 -04:00
Zachary D. Rowitsch
e1ead64d29 Setup main.c to do a simple test of canvas + tuples to simulate ballistic trajectory with gravity + wind 2020-08-04 14:45:50 -04:00
Zachary D. Rowitsch
b3b021a533 Add ppm output generation in canvas 2020-08-04 12:16:00 -04:00
Zachary D. Rowitsch
5f9ce5cd82 Add canvas 2020-08-03 07:23:30 -04:00
Zachary D. Rowitsch
9c336281de Add colors 2020-08-02 00:05:55 -04:00
Zachary D. Rowitsch
bdeb7dc90a Tuples are complete 2020-08-01 23:19:33 -04:00