105 Commits
Author SHA1 Message Date
Godzil 71c236abb0 Better to fill the function I suppose. 2020-03-17 00:31:30 +00:00
Godzil c0fc061834 Don't set the focal/aperture on the constructor and use a dedicated method for that. 2020-03-17 00:28:56 +00:00
Godzil 61ce9d3543 Add possibility to play with focal length and aperture to the camera. Not enabled by default. 2020-03-17 00:23:16 +00:00
Godzil 9849c16f66 Couple of small optimisation
Add option to build for gprof
Do not build by default with the renderstat (they have a reasonable impact on performances)
Separated created ray and castedray in the stats
Trying to force some simple function to be inlined
2020-03-13 18:22:35 +00:00
Godzil 5b6b627a43 Small but effective optimisations.
Allow inlining the function helps a bit!
2020-03-13 01:04:56 +00:00
Godzil c858b4dcde A new scene and some optimisations. 2020-03-12 17:45:29 +00:00
Godzil 7a43a98816 Adding BVH optimisation. 2020-03-12 07:21:44 +00:00
Godzil 424d58c59b Octree Optimiser seems to work.
Well.. There are a couple of weird things happening, need to investigate, but it's not that easy when scene start to be complicated :/
2020-03-12 00:14:00 +00:00
Godzil b00bb75189 Huge speed up by changing how Intersect are shared. 2020-03-12 00:11:26 +00:00
Godzil 0aa949c60b Continue working work optimiser. 2020-03-11 19:35:08 +00:00
Godzil 3a2d21b787 Starting to work on the World Optimiser sequence. 2020-03-11 09:09:30 +00:00
Godzil 441d758845 Add locking mechanism to prevent updating transform/parent 2020-03-10 13:55:27 +00:00
Godzil 5da0c10182 Started working on "world optimiser" base class.
The idea is to reorganise objets to take use of the them to prevent most object to be intersect if they are not likely to be on the ray path.
2020-03-10 09:18:15 +00:00
Godzil b89f9ec331 Add a way to remove shapes from groups 2020-03-10 09:16:39 +00:00
Godzil add3d7c861 A bit of cleanup 2020-03-10 09:15:38 +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 66a8b98aeb Add missing code \o/ 2020-03-09 15:59:52 +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 e653855556 Change World to use a base group instead of storing all the world object.
Makes the code simpler and avoid some potential issues. Add to change a bit some test to make them pass properly.
2020-03-09 13:47:42 +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 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 30db4d7ca1 Add support to load JPEG files along with PNGs. 2020-03-05 15:14:31 +00:00
Godzil 6a2c5a77ae Trying to implement image mapping.
Something not working yet.
2020-03-05 09:48:37 +00:00
Godzil 1b6c14691b fmod is not mathematically valid. Replace it by a correct one. 2020-03-04 16:15:49 +00:00
Godzil 5c10d65c8d Started working on 2D patterns. 2020-03-04 09:32:11 +00:00
Godzil 478b1f0af1 Disable a test as it is not consistent between compilers. 2020-03-02 17:41:04 +00:00
Godzil aab9df0802 Add support for Lua in world, and create the Lua Pattern (pattern can be defined with a lua function) 2020-03-02 16:30:24 +00:00
Godzil 21749695b6 Add jitter to area light and example render of it. 2020-03-02 14:03:31 +00:00
Godzil ace7d53571 Clearing up some memory to prevent stupid issues
Preparing for some optimisations. (absolutely need to reduce the ammount of allocations done.)
2020-03-02 08:24:09 +00:00
Godzil c4b680789e Starting working on area lights. 2020-02-28 18:35:45 +00:00
Godzil 53f66b554b Move renderstat function into the CPP file and add atomic to the variables. 2020-02-28 18:34:42 +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 a6f0422bd1 Add renderstat to get some info about rendering. 2020-02-27 17:20:55 +00:00
Godzil 7a96d42874 Add bounding box calculation to triangle..
Could be helpful XD
2020-02-26 02:17:57 +00:00
Godzil 1c00077949 Prepare code to be able to get material from some form of a "group leader". 2020-02-26 00:32:14 +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 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