Commit Graph

48 Commits

Author SHA1 Message Date
Godzil
c667ce26d7 Fix a bug in objfile where OBJ file were not the parent of the base group. 2020-03-11 16:57:49 +00:00
Godzil
13cc2c0ff9 Add more useful dump info for shapes 2020-03-11 16:56:38 +00:00
Godzil
083a5b600f typo 2020-03-11 16:54:46 +00:00
Godzil
441d758845 Add locking mechanism to prevent updating transform/parent 2020-03-10 13:55:27 +00:00
Godzil
b89f9ec331 Add a way to remove shapes from groups 2020-03-10 09:16:39 +00:00
Godzil
4e241a1871 Trying to make the dump a bit more usefull and slightly less cluttered 2020-03-09 17:41:11 +00:00
Godzil
15a861802a OBJFile now use group instead of it own list.
Change the group function to find group by name, and now name group when needed, and change tests to use group name instead of number.

Also now the default group is the base group, not a separate group.

Bonus: Add a destructor to cleanup memory
Added a function to get base group. OBJFile will still behave as a valid shape, but now we can skip it in the generated world by adding the base group instead.

Code is now cleaner.
2020-03-09 16:03:27 +00:00
Godzil
314da11005 Add support for naming groups 2020-03-09 15:58:32 +00:00
Godzil
8437ab8753 Move ShapeType into the Shape object. 2020-03-09 15:57:23 +00:00
Godzil
efa47f28ca Fix some potential buffer overflow issues.
Not critical, but better to avoid them!
2020-03-09 14:16:05 +00:00
Godzil
1510de3b36 Change CSG to derive the intersect function and do the calculation there instead of the local one.
Also use the bounding box to reject ray that don't it that CSG element.
2020-03-09 13:45:57 +00:00
Godzil
8550d4068f Correct how filterIntersections work, seems c++ don't like how thing were done. 2020-03-09 13:44:10 +00:00
Godzil
57eff4830e Sample scene for CSG \o/ 2020-03-06 21:55:32 +00:00
Godzil
b5ee92c544 And CSG! \o/
Still working on a nice scene for it.
2020-03-06 19:00:31 +00:00
Godzil
e57b5715e8 Smooth triangles! And support for them in the OBJ File parser.
Also add an interesting tea party scene!
2020-03-06 15:07:26 +00:00
Godzil
2488cc6319 Seems long ago I forgot to update/correct the local boudingbox calculation for triangles.... 2020-03-06 09:39:33 +00:00
Godzil
518ac260e1 OBJFile parser seems to work.
Can render a simple scene using it.

TODO: Need add way to set material to childs.
2020-03-06 09:38:39 +00:00
Godzil
2725b5f657 Go a bit deeper in parsing the OBJ file. Now we parse each lines into token, and it's now ready to try to execute them. 2020-03-06 01:29:26 +00:00
Godzil
c17bfadc76 Started working on parsing OBJ Files.
Why string manipulation is so tedious in C/++ :(
2020-03-05 17:46:40 +00:00
Godzil
478b1f0af1 Disable a test as it is not consistent between compilers. 2020-03-02 17:41:04 +00:00
Godzil
21749695b6 Add jitter to area light and example render of it. 2020-03-02 14:03:31 +00:00
Godzil
c4b680789e Starting working on area lights. 2020-02-28 18:35:45 +00:00
Godzil
307c125eba More bounding boxes 2020-02-28 18:33:59 +00:00
Godzil
b4ae737b40 Continuing working on dumping the world 2020-02-28 09:29:09 +00:00
Godzil
c369d2fe2d Start working on dumping the world (to a JSON file) for debug purposes. 2020-02-27 18:03:08 +00:00
Godzil
e61382a129 Doh, this was suppose to be the other way around: add to the bound IF it have finit bounds! 2020-02-27 17:22:47 +00:00
Godzil
a6f0422bd1 Add renderstat to get some info about rendering. 2020-02-27 17:20:55 +00:00
Godzil
f1849cdbc1 Pow is way too slow. 2020-02-26 16:08:34 +00:00
Godzil
7a96d42874 Add bounding box calculation to triangle..
Could be helpful XD
2020-02-26 02:17:57 +00:00
Godzil
5e4cfb84e6 Fix an issue with groups, and add Chapter 14 example! 2020-02-26 00:30:09 +00:00
Godzil
aded6bb943 Triangles!!! 2020-02-25 18:42:45 +00:00
Godzil
2ea4abdce7 Boundingboxes should be ready.
Next step (later) would be to properly use them other than group to lower the number of intersection calculation per ray.
2020-02-25 18:03:12 +00:00
Godzil
831a096281 Continue working on bounding boxes. 2020-02-25 09:20:38 +00:00
Godzil
3011544e8f Started working on boundingboxes. 2020-02-24 18:03:25 +00:00
Godzil
7bbe5e843b Group should work now. 2020-02-24 17:25:54 +00:00
Godzil
7c794f0496 Working on groups 2020-02-24 09:25:52 +00:00
Godzil
f226664fe3 And cones ! 2020-02-23 02:31:30 +00:00
Godzil
d87bbb184e And now we have cylinders! 2020-02-22 22:58:57 +00:00
Godzil
b251b632ac Add a parameter for shapes to not drop shadow. 2020-02-22 17:38:25 +00:00
Godzil
81e323fdf4 Added CUBES! 2020-02-22 17:30:15 +00:00
Godzil
4d4c4a7453 Add preliminary support for material emissivity.
Not yet sure it work as I intended.
2020-02-22 15:14:09 +00:00
Godzil
75cf59cc1a Adding support for pattern.
Still a bit more work to be done there.
2020-02-21 09:36:34 +00:00
Godzil
9d0db6a635 Added planes! 2020-02-21 00:26:48 +00:00
Godzil
66c1582a5f Shape is now an abstract class and can't be instanciated.
Change derived shape to only deal with local calculation they don't need anymore to deal with how they've been transformed.
2020-02-21 00:02:30 +00:00
Godzil
cf5597ad6d Adding shadows! 2020-02-20 17:46:03 +00:00
Godzil
a82b67faa4 Working on worlds.
It's currently crashing.
2020-02-19 18:05:48 +00:00
Godzil
af96d52c5a Renaming Object to Shape (part 2) 2020-02-18 11:43:05 +00:00
Godzil
5a4f9f4dc4 Renaming Object to Shape (part 1) 2020-02-18 11:40:55 +00:00