Commit Graph

  • 611197c56e
    Merge pull request #10 from twistdroach/doxygen_config twistdroach 2020-10-01 19:47:00 -04:00
  • 3590c19588 Add some doxygen configuration Zachary D. Rowitsch 2020-10-01 19:36:01 -04:00
  • fa1a653cdb Add some group tests and actually run some light tests... Zachary D. Rowitsch 2020-09-30 23:13:51 -04:00
  • 1e15ab45d5 add some missing testing for lights Zachary D. Rowitsch 2020-09-30 22:54:10 -04:00
  • e1a11eae21 Add test of ARRLIST_safe_get() Zachary D. Rowitsch 2020-09-30 22:26:40 -04:00
  • cad4091e86 Minor fix to prevent potential overflow when malloc'ing canvas data Zachary D. Rowitsch 2020-09-30 21:29:44 -04:00
  • cbe5434406 Make logger reentrant Zachary D. Rowitsch 2020-09-30 21:18:49 -04:00
  • e2a3378789 Update readme to include code quality badge, fix log message format error in wavefrontobj.c Zachary D. Rowitsch 2020-09-30 21:05:49 -04:00
  • 1bd210fcc9 Woops - forgot to add test_material to the list of tests Zachary D. Rowitsch 2020-09-30 19:51:20 -04:00
  • 5b5aefa07b Try for testcoverage checking in the CI config Zachary D. Rowitsch 2020-09-30 19:09:39 -04:00
  • 82ceb7dfc1 Mark some unused parameters unused so the compiler won't complain Zachary D. Rowitsch 2020-09-30 00:43:08 -04:00
  • 95d41529a9 get rid of some unneeded CMake cruft Zachary D. Rowitsch 2020-09-30 00:42:23 -04:00
  • dca9f254a5 Add memcheck to build Zachary D. Rowitsch 2020-09-30 00:03:37 -04:00
  • ffe37d2f60 Update badge on README Zachary D. Rowitsch 2020-09-29 23:45:04 -04:00
  • c4d9f8a6e2 Rename CI workflow Zachary D. Rowitsch 2020-09-29 23:43:27 -04:00
  • 59f1a8e040 Use github actions to build/test and provide a status badge twistdroach 2020-09-29 23:01:29 -04:00
  • 45956391aa don't omit frame pointer even when optimizing. need to use BUILD_TYPE for most of these Zachary D. Rowitsch 2020-09-29 23:18:46 -04:00
  • 5c8e2e70ad Add triangle normal interpolation... Zachary D. Rowitsch 2020-09-29 22:50:49 -04:00
  • 86e46c5cf3 Modify camera to log some rendering status Zachary D. Rowitsch 2020-09-28 19:47:39 -04:00
  • 592035f55a Allow setting material on a group which really just sets the material for all members of the group Zachary D. Rowitsch 2020-09-28 19:47:13 -04:00
  • 2558670a24 Added triangle support, added obj support. added render_obj binary to load and scale an obj file and render it Zachary D. Rowitsch 2020-09-28 00:35:46 -04:00
  • 590087a44d Add triangle implementation Zachary D. Rowitsch 2020-09-26 20:05:39 -04:00
  • ce6251bbf5 Add a random sphere demo Zachary D. Rowitsch 2020-09-25 22:17:12 -04:00
  • ef31edbaa5 Adjust pattern calculation for group transforms Zachary D. Rowitsch 2020-09-25 00:42:13 -04:00
  • 7f2e53cbd1 Implement groups Zachary D. Rowitsch 2020-09-25 00:36:26 -04:00
  • 5110b6b400 Add cylinders, though the tests don't all pass. Need to fix some day Zachary D. Rowitsch 2020-09-15 21:15:17 -04:00
  • f49302d489 Finishing up cylinders Zachary D. Rowitsch 2020-09-11 20:20:38 -04:00
  • 726360753c Disable assertions when compiling optimized code...there are some assertions that check if a matrix is able to be inverted, these are expensive Zachary D. Rowitsch 2020-09-10 23:24:07 -04:00
  • 8a2550096c Cache inverse transform in pattern Zachary D. Rowitsch 2020-09-10 23:22:03 -04:00
  • 273806e7ac Beginning of cylinders, major perf improvement by caching inverse transforms on shapes, need to do same for patterns Zachary D. Rowitsch 2020-09-10 22:54:23 -04:00
  • 39d1246141 minor refactoring to pull tuples & matrix into math package, need to pull apart raytracing and datastructures next Zachary D. Rowitsch 2020-09-09 23:19:24 -04:00
  • 2a6036da3d Added support for cubes, allowed a material setting to opt out an object for shadow hit calculation, and added a matrix multiply chaining convenience function Zachary D. Rowitsch 2020-09-09 23:04:11 -04:00
  • 18a94fbb15 minor typo corrections in README.md Zachary D. Rowitsch 2020-09-07 00:08:03 -04:00
  • 66e29e41d1 Add schlick approximation to implement fresnel effect Zachary D. Rowitsch 2020-09-07 00:06:31 -04:00
  • 0506bd7b68 begin implementing refraction & transparency, no updated demo quite yet, need fresnel effect Zachary D. Rowitsch 2020-09-06 22:37:07 -04:00
  • 7de52c66a4 add recursion limit in reflection ray casting Zachary D. Rowitsch 2020-09-05 18:42:40 -04:00
  • 7a7a150590 Begin adding reflections. No recursion limit yet, so world test blows up Zachary D. Rowitsch 2020-09-05 00:54:54 -04:00
  • 6b190bbd22 minor updates to the 3 spheres/striped plane image/executable Zachary D. Rowitsch 2020-09-01 21:24:23 -04:00
  • 30ab325f8b Fix to checker pattern Zachary D. Rowitsch 2020-08-29 01:41:01 -04:00
  • 3195c406fc Add gradient, ring, checkers, solid patterns Zachary D. Rowitsch 2020-08-29 00:40:14 -04:00
  • 417d232df1 Beggining patterns, only have test & striped at the moment Zachary D. Rowitsch 2020-08-28 23:38:50 -04:00
  • e1382b90b3 Refactor shapes again, now using vtables instead of hardcoded case statements Zachary D. Rowitsch 2020-08-26 22:53:06 -04:00
  • 32f98db841 Factored out shapeholder, shapes handling is now much cleaner Zachary D. Rowitsch 2020-08-26 00:28:59 -04:00
  • 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 Zachary D. Rowitsch 2020-08-25 23:26:55 -04:00
  • c64fd3cfd0 Add a plane shape type, with tests, and a new demo executable Zachary D. Rowitsch 2020-08-25 23:12:53 -04:00
  • 8128445dd5 add memcheck target to ease running all tests under valgrind Zachary D. Rowitsch 2020-08-25 21:54:08 -04:00
  • 71726673eb Minor refactor to push shapes into their own module... Zachary D. Rowitsch 2020-08-25 20:24:25 -04:00
  • bb991af361 Minor refactoring to cleanup after creating shape parent class Zachary D. Rowitsch 2020-08-25 20:09:00 -04:00
  • ed3888f456 Abstract shapes is complete Zachary D. Rowitsch 2020-08-24 21:34:46 -04:00
  • 27ff591903 Begin abstracting shapes Zachary D. Rowitsch 2020-08-23 21:52:27 -04:00
  • 60f7cf4af2 Remove intersections module, absorb into ray Zachary D. Rowitsch 2020-08-22 22:37:27 -04:00
  • 3d35f1daa8 Add a timer utility to track time wall/user/system time Zachary D. Rowitsch 2020-08-22 22:17:29 -04:00
  • 99dc495611 Refactor tuples to be passed by-value only try_value_passing Zachary D. Rowitsch 2020-08-21 00:13:11 -04:00
  • 97c39a263e typo in README.md Zachary D. Rowitsch 2020-08-20 00:14:13 -04:00
  • af59f19026 Implment shadows, one failing world test! Zachary D. Rowitsch 2020-08-20 00:09:06 -04:00
  • 53df17a867 minor typos in README Zachary D. Rowitsch 2020-08-19 00:21:29 -04:00
  • 8165bd1eb5 Finished adding camera, build demo with three spheres Zachary D. Rowitsch 2020-08-19 00:20:18 -04:00
  • 860d88008e Beginning camera implementation Zachary D. Rowitsch 2020-08-17 23:34:32 -04:00
  • 166c0b3f25 further world implementation, light copy function Zachary D. Rowitsch 2020-08-17 22:38:01 -04:00
  • dabf643346 Further world implementation (and introduction of intersection computation cache) Zachary D. Rowitsch 2020-08-16 23:07:05 -04:00
  • dd045f5516 Begin world implementation, minor cleanup Zachary D. Rowitsch 2020-08-16 22:06:42 -04:00
  • f954f7cd16 Finally - fixed ray origin so that phong shading works correctly! Zachary D. Rowitsch 2020-08-14 23:51:46 -04:00
  • 18cc1c21d9 minor test comparison fix Zachary D. Rowitsch 2020-08-14 23:23:30 -04:00
  • 6b029b69fc More minor refactoring Zachary D. Rowitsch 2020-08-14 23:19:10 -04:00
  • 21461babe4 Refactoring... name structs that were anonymous (to help my ide), refactor to minimize heap allocations Zachary D. Rowitsch 2020-08-14 23:04:59 -04:00
  • 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 Zachary D. Rowitsch 2020-08-13 23:40:30 -04:00
  • 28c235bbd3 Update some cmake options for optimization Zachary D. Rowitsch 2020-08-13 22:24:59 -04:00
  • 68c220a3fa Configure unity to include doubles, use reallocarray in ray.c Zachary D. Rowitsch 2020-08-13 21:00:56 -04:00
  • 39dc7be979 Add some images Zachary D. Rowitsch 2020-08-13 00:13:02 -04:00
  • 594127acfc add newlines to make clang happy Zachary D. Rowitsch 2020-08-12 23:56:33 -04:00
  • 46872568fc finish SPHERE_new constructor refactor Zachary D. Rowitsch 2020-08-12 23:41:50 -04:00
  • 65d1a212d5 Add assertion to CAVAS_write_pixel Zachary D. Rowitsch 2020-08-12 23:38:41 -04:00
  • 212150d4d9 Add materials/lights, calculate phong shading, phon_render_sphere not quite shaded correctly yet... Zachary D. Rowitsch 2020-08-12 00:55:11 -04:00
  • fabba22502
    Create LICENSE twistdroach 2020-08-11 16:00:24 -04:00
  • 82e94c8ba1 Add sphere transformations (and use them when calculating ray intersections), add sphere_shadow to test Zachary D. Rowitsch 2020-08-11 05:46:08 -04:00
  • 20f06a79b5 Add rays/spheres/intersections. Spheres incomplete Zachary D. Rowitsch 2020-08-10 00:15:29 -04:00
  • 8ae827fff8 Add translations/scaling/rotations/shearing and related testing Zachary D. Rowitsch 2020-08-07 21:54:39 -04:00
  • c4d768bb59 Refactor MATRIX_init_identity to MATRIX_new_identity Zachary D. Rowitsch 2020-08-07 17:31:51 -04:00
  • 79cd5b8a6a Fix memory leak from double initialization from MATRIX_multiply refactor. Add vectorized MATRIX_destroy/delete functions Zachary D. Rowitsch 2020-08-07 17:24:29 -04:00
  • d0606dde54 Refactor MATRIX_multiply to return a newly allocated matrix to make interface more consistent Zachary D. Rowitsch 2020-08-07 16:55:38 -04:00
  • 14ff33b745 Add some more inverse matrix testing Zachary D. Rowitsch 2020-08-07 14:56:26 -04:00
  • b8afbfc36e Add many matrix operations Zachary D. Rowitsch 2020-08-07 00:09:50 -04:00
  • 8796b127e5 modify MATRIX_get_cell to MATRIX_read_cell & make it return a double instead of double* Zachary D. Rowitsch 2020-08-05 23:52:23 -04:00
  • f2f5b59b2f Beginning matrix implementation... Zachary D. Rowitsch 2020-08-05 23:47:16 -04:00
  • 28c01d0688 add debug log level Zachary D. Rowitsch 2020-08-04 20:07:33 -04:00
  • 6afb92b02e proj_exceptions.h to exceptions.h to better fit naming standards Zachary D. Rowitsch 2020-08-04 20:04:19 -04:00
  • e1700ec508 Rename main to parabola, add exception handling so we don't seg fault on error Zachary D. Rowitsch 2020-08-04 20:01:02 -04:00
  • 2573b3efcb Add readme Zachary D. Rowitsch 2020-08-04 14:47:49 -04:00
  • e1ead64d29 Setup main.c to do a simple test of canvas + tuples to simulate ballistic trajectory with gravity + wind Zachary D. Rowitsch 2020-08-04 14:45:50 -04:00
  • b3b021a533 Add ppm output generation in canvas Zachary D. Rowitsch 2020-08-04 12:16:00 -04:00
  • 5f9ce5cd82 Add canvas Zachary D. Rowitsch 2020-08-03 07:23:30 -04:00
  • 9c336281de Add colors Zachary D. Rowitsch 2020-08-02 00:05:55 -04:00
  • bdeb7dc90a Tuples are complete Zachary D. Rowitsch 2020-08-01 23:19:33 -04:00
  • 8d58ce406e Add adding/subtracing tuples Zachary D. Rowitsch 2020-08-01 10:47:51 -04:00
  • b2574227c3 basis of point/vector established Zachary D. Rowitsch 2020-08-01 01:13:16 -04:00
  • f4c6b6d7ab More bare structure, can now run tests Zachary D. Rowitsch 2020-07-31 23:12:09 -04:00
  • b016e609ad Bare-bones structure Zachary D. Rowitsch 2020-07-31 22:55:20 -04:00