Commit Graph

119 Commits

Author SHA1 Message Date
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
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
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
18965fe1bd They say it is better to do this way. 2020-03-06 21:59:16 +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
6bef6a1b77 over 9000 years of shame on me.
What where I thinking when I wrote that?!
2020-03-05 16:28:49 +00:00
Godzil
f8aa5cc920 Fix a "bug" in UV Image introduced while debugging 2020-03-05 15:15:20 +00:00
Godzil
30db4d7ca1 Add support to load JPEG files along with PNGs. 2020-03-05 15:14:31 +00:00
Godzil
317148a37d Lua include is only added if lua support is enabled.
Add NanoJPEG dependency to the main library
2020-03-05 15:13:40 +00:00
Godzil
6a2c5a77ae Trying to implement image mapping.
Something not working yet.
2020-03-05 09:48:37 +00:00
Godzil
3ebe403de0 Continue working on Cube mapping 2020-03-05 00:10:39 +00:00
Godzil
f5685a45e1 Add AlignCheck UV Pattern 2020-03-04 16:42:43 +00:00
Godzil
7209244f48 Add cylindrical mapping! 2020-03-04 16:16:35 +00:00
Godzil
1b6c14691b fmod is not mathematically valid. Replace it by a correct one. 2020-03-04 16:15:49 +00:00
Godzil
107b612130 Added planar mapping 2020-03-04 13:35:09 +00:00
Godzil
1ceabe7e62 Change CMake files to simplify them.
Also disable dorayme.cpp for now as it if wrongly taken in the rayonnement library.
2020-03-04 13:21:39 +00:00
Godzil
3e37b5ca44 Add spherical mapping for UV Textures. 2020-03-04 13:20:15 +00:00
Godzil
5c10d65c8d Started working on 2D patterns. 2020-03-04 09:32:11 +00:00
Godzil
3cfbb604b0 Fix missing includes. 2020-03-02 23:34:44 +00:00
Godzil
478b1f0af1 Disable a test as it is not consistent between compilers. 2020-03-02 17:41:04 +00:00
Godzil
1cebcd4f8b Fix my own stupidity. 2020-03-02 16:49:10 +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
8ceb68fdff Add dependencies to Lua. 2020-02-28 00:05:14 +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
2926166ce6 Add Lua dependencies.
Lua is going to be used for both scene description (it will also provide a YAML importer) and some future expansion in the code. Expect some fun surprises!

(just playing with lua on the main app for now)
2020-02-27 17:24:40 +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
a4ddfddbf3 Found the problem with openmp.
X here need to be declared as private, else each thread are sharing the same variable which... well.... don't work well .. :/
2020-02-26 16:09:28 +00:00
Godzil
f1849cdbc1 Pow is way too slow. 2020-02-26 16:08:34 +00:00
Godzil
ed347e304d Quick (and dirty) change to be able to use OpenMP for rendering. 2020-02-26 02:18:54 +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