Merge pull request #10 from twistdroach/doxygen_config
twistdroach
2020-10-01 19:47:00 -04:00
3590c19588Add some doxygen configuration
Zachary D. Rowitsch
2020-10-01 19:36:01 -04:00
fa1a653cdbAdd some group tests and actually run some light tests...
Zachary D. Rowitsch
2020-09-30 23:13:51 -04:00
1e15ab45d5add some missing testing for lights
Zachary D. Rowitsch
2020-09-30 22:54:10 -04:00
e1a11eae21Add test of ARRLIST_safe_get()
Zachary D. Rowitsch
2020-09-30 22:26:40 -04:00
cad4091e86Minor fix to prevent potential overflow when malloc'ing canvas data
Zachary D. Rowitsch
2020-09-30 21:29:44 -04:00
cbe5434406Make logger reentrant
Zachary D. Rowitsch
2020-09-30 21:18:49 -04:00
e2a3378789Update 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
1bd210fcc9Woops - forgot to add test_material to the list of tests
Zachary D. Rowitsch
2020-09-30 19:51:20 -04:00
5b5aefa07bTry for testcoverage checking in the CI config
Zachary D. Rowitsch
2020-09-30 19:09:39 -04:00
82ceb7dfc1Mark some unused parameters unused so the compiler won't complain
Zachary D. Rowitsch
2020-09-30 00:43:08 -04:00
95d41529a9get rid of some unneeded CMake cruft
Zachary D. Rowitsch
2020-09-30 00:42:23 -04:00
dca9f254a5Add memcheck to build
Zachary D. Rowitsch
2020-09-30 00:03:37 -04:00
ffe37d2f60Update badge on README
Zachary D. Rowitsch
2020-09-29 23:45:04 -04:00
c4d9f8a6e2Rename CI workflow
Zachary D. Rowitsch
2020-09-29 23:43:27 -04:00
59f1a8e040Use github actions to build/test and provide a status badge
twistdroach
2020-09-29 23:01:29 -04:00
45956391aadon'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
5c8e2e70adAdd triangle normal interpolation...
Zachary D. Rowitsch
2020-09-29 22:50:49 -04:00
86e46c5cf3Modify camera to log some rendering status
Zachary D. Rowitsch
2020-09-28 19:47:39 -04:00
592035f55aAllow 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
2558670a24Added 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
590087a44dAdd triangle implementation
Zachary D. Rowitsch
2020-09-26 20:05:39 -04:00
ce6251bbf5Add a random sphere demo
Zachary D. Rowitsch
2020-09-25 22:17:12 -04:00
ef31edbaa5Adjust pattern calculation for group transforms
Zachary D. Rowitsch
2020-09-25 00:42:13 -04:00
7f2e53cbd1Implement groups
Zachary D. Rowitsch
2020-09-25 00:36:26 -04:00
5110b6b400Add cylinders, though the tests don't all pass. Need to fix some day
Zachary D. Rowitsch
2020-09-15 21:15:17 -04:00
f49302d489Finishing up cylinders
Zachary D. Rowitsch
2020-09-11 20:20:38 -04:00
726360753cDisable 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
8a2550096cCache inverse transform in pattern
Zachary D. Rowitsch
2020-09-10 23:22:03 -04:00
273806e7acBeginning 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
39d1246141minor 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
2a6036da3dAdded 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
18a94fbb15minor typo corrections in README.md
Zachary D. Rowitsch
2020-09-07 00:08:03 -04:00
66e29e41d1Add schlick approximation to implement fresnel effect
Zachary D. Rowitsch
2020-09-07 00:06:31 -04:00
0506bd7b68begin implementing refraction & transparency, no updated demo quite yet, need fresnel effect
Zachary D. Rowitsch
2020-09-06 22:37:07 -04:00
7de52c66a4add recursion limit in reflection ray casting
Zachary D. Rowitsch
2020-09-05 18:42:40 -04:00
7a7a150590Begin adding reflections. No recursion limit yet, so world test blows up
Zachary D. Rowitsch
2020-09-05 00:54:54 -04:00
6b190bbd22minor updates to the 3 spheres/striped plane image/executable
Zachary D. Rowitsch
2020-09-01 21:24:23 -04:00
30ab325f8bFix to checker pattern
Zachary D. Rowitsch
2020-08-29 01:41:01 -04:00
417d232df1Beggining patterns, only have test & striped at the moment
Zachary D. Rowitsch
2020-08-28 23:38:50 -04:00
e1382b90b3Refactor shapes again, now using vtables instead of hardcoded case statements
Zachary D. Rowitsch
2020-08-26 22:53:06 -04:00
32f98db841Factored out shapeholder, shapes handling is now much cleaner
Zachary D. Rowitsch
2020-08-26 00:28:59 -04:00
569aa41f46Add 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
c64fd3cfd0Add a plane shape type, with tests, and a new demo executable
Zachary D. Rowitsch
2020-08-25 23:12:53 -04:00
8128445dd5add memcheck target to ease running all tests under valgrind
Zachary D. Rowitsch
2020-08-25 21:54:08 -04:00
71726673ebMinor refactor to push shapes into their own module...
Zachary D. Rowitsch
2020-08-25 20:24:25 -04:00
bb991af361Minor refactoring to cleanup after creating shape parent class
Zachary D. Rowitsch
2020-08-25 20:09:00 -04:00
ed3888f456Abstract shapes is complete
Zachary D. Rowitsch
2020-08-24 21:34:46 -04:00
27ff591903Begin abstracting shapes
Zachary D. Rowitsch
2020-08-23 21:52:27 -04:00
60f7cf4af2Remove intersections module, absorb into ray
Zachary D. Rowitsch
2020-08-22 22:37:27 -04:00
3d35f1daa8Add a timer utility to track time wall/user/system time
Zachary D. Rowitsch
2020-08-22 22:17:29 -04:00
99dc495611Refactor tuples to be passed by-value only
try_value_passing
Zachary D. Rowitsch
2020-08-21 00:13:11 -04:00
97c39a263etypo in README.md
Zachary D. Rowitsch
2020-08-20 00:14:13 -04:00
af59f19026Implment shadows, one failing world test!
Zachary D. Rowitsch
2020-08-20 00:09:06 -04:00
53df17a867minor typos in README
Zachary D. Rowitsch
2020-08-19 00:21:29 -04:00
8165bd1eb5Finished adding camera, build demo with three spheres
Zachary D. Rowitsch
2020-08-19 00:20:18 -04:00
860d88008eBeginning camera implementation
Zachary D. Rowitsch
2020-08-17 23:34:32 -04:00
166c0b3f25further world implementation, light copy function
Zachary D. Rowitsch
2020-08-17 22:38:01 -04:00
dabf643346Further world implementation (and introduction of intersection computation cache)
Zachary D. Rowitsch
2020-08-16 23:07:05 -04:00
dd045f5516Begin world implementation, minor cleanup
Zachary D. Rowitsch
2020-08-16 22:06:42 -04:00
f954f7cd16Finally - fixed ray origin so that phong shading works correctly!
Zachary D. Rowitsch
2020-08-14 23:51:46 -04:00
18cc1c21d9minor test comparison fix
Zachary D. Rowitsch
2020-08-14 23:23:30 -04:00
6b029b69fcMore minor refactoring
Zachary D. Rowitsch
2020-08-14 23:19:10 -04:00
21461babe4Refactoring... 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
715695778eOptimize 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
28c235bbd3Update some cmake options for optimization
Zachary D. Rowitsch
2020-08-13 22:24:59 -04:00
68c220a3faConfigure unity to include doubles, use reallocarray in ray.c
Zachary D. Rowitsch
2020-08-13 21:00:56 -04:00
39dc7be979Add some images
Zachary D. Rowitsch
2020-08-13 00:13:02 -04:00
594127acfcadd newlines to make clang happy
Zachary D. Rowitsch
2020-08-12 23:56:33 -04:00
46872568fcfinish SPHERE_new constructor refactor
Zachary D. Rowitsch
2020-08-12 23:41:50 -04:00
65d1a212d5Add assertion to CAVAS_write_pixel
Zachary D. Rowitsch
2020-08-12 23:38:41 -04:00
212150d4d9Add materials/lights, calculate phong shading, phon_render_sphere not quite shaded correctly yet...
Zachary D. Rowitsch
2020-08-12 00:55:11 -04:00
82e94c8ba1Add 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
20f06a79b5Add rays/spheres/intersections. Spheres incomplete
Zachary D. Rowitsch
2020-08-10 00:15:29 -04:00
8ae827fff8Add translations/scaling/rotations/shearing and related testing
Zachary D. Rowitsch
2020-08-07 21:54:39 -04:00
c4d768bb59Refactor MATRIX_init_identity to MATRIX_new_identity
Zachary D. Rowitsch
2020-08-07 17:31:51 -04:00
79cd5b8a6aFix 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
d0606dde54Refactor MATRIX_multiply to return a newly allocated matrix to make interface more consistent
Zachary D. Rowitsch
2020-08-07 16:55:38 -04:00
14ff33b745Add some more inverse matrix testing
Zachary D. Rowitsch
2020-08-07 14:56:26 -04:00
b8afbfc36eAdd many matrix operations
Zachary D. Rowitsch
2020-08-07 00:09:50 -04:00
8796b127e5modify 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
f2f5b59b2fBeginning matrix implementation...
Zachary D. Rowitsch
2020-08-05 23:47:16 -04:00
28c01d0688add debug log level
Zachary D. Rowitsch
2020-08-04 20:07:33 -04:00
6afb92b02eproj_exceptions.h to exceptions.h to better fit naming standards
Zachary D. Rowitsch
2020-08-04 20:04:19 -04:00
e1700ec508Rename 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
2573b3efcbAdd readme
Zachary D. Rowitsch
2020-08-04 14:47:49 -04:00
e1ead64d29Setup 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
b3b021a533Add ppm output generation in canvas
Zachary D. Rowitsch
2020-08-04 12:16:00 -04:00
5f9ce5cd82Add canvas
Zachary D. Rowitsch
2020-08-03 07:23:30 -04:00
9c336281deAdd colors
Zachary D. Rowitsch
2020-08-02 00:05:55 -04:00
bdeb7dc90aTuples are complete
Zachary D. Rowitsch
2020-08-01 23:19:33 -04:00
8d58ce406eAdd adding/subtracing tuples
Zachary D. Rowitsch
2020-08-01 10:47:51 -04:00
b2574227c3basis of point/vector established
Zachary D. Rowitsch
2020-08-01 01:13:16 -04:00
f4c6b6d7abMore bare structure, can now run tests
Zachary D. Rowitsch
2020-07-31 23:12:09 -04:00
b016e609adBare-bones structure
Zachary D. Rowitsch
2020-07-31 22:55:20 -04:00