Compare commits

...

917 Commits

Author SHA1 Message Date
Faerbit
3b25514233 Removing out gl_FragDepth as nvidia driver complains about it. 2016-04-15 10:44:26 +02:00
Faerbit
45d969c16e Removing -O2 flag because it breaks the windows build. 2015-06-04 11:52:44 +02:00
Faerbit
fe8b0a57cd Optimized scheduling once again. 2015-06-04 11:22:27 +02:00
Faerbit
3437ce6173 Updated glfw to version 3.1.1. 2015-06-03 23:15:52 +02:00
Faerbit
8452d18575 Fixing a bug in the scheduling. 2015-06-03 14:05:57 +02:00
Faerbit
4c40ddd12d Simplifying if condition. 2015-06-03 11:23:17 +02:00
Faerbit
00a08bf5f0 Fixing a crash when maxShadowRenderCount is set to one. 2015-06-03 02:25:47 +02:00
Faerbit
52ea40100f Correcting scheduling of shadows. 2015-06-03 02:18:31 +02:00
Faerbit
4ba056c6d9 Correctly intializing farPlane variable in Level. 2015-06-03 02:12:00 +02:00
Faerbit
67b44042bd Made getClosestLights output more lights to take advantage of the higher maxShadowSampleCount. 2015-06-02 21:37:58 +02:00
Faerbit
1ef8047f42 Implemented a function to check how high the maxShadowSampleCount should be. 2015-06-02 21:14:54 +02:00
Faerbit
b8114ebd91 Increasing maxShadowSampleCount to 26. 2015-06-02 21:14:22 +02:00
Faerbit
a6876f0872 Optimizing scheduling of shadow renders. 2015-06-02 20:46:21 +02:00
Faerbit
5f779ea3d5 Fixing moving shadows of flames once again. 2015-06-02 20:15:48 +02:00
Faerbit
bedc836cb0 Merge branch 'master' of github.com:Faerbit/Saxum 2015-06-02 19:33:23 +02:00
Faerbit
56ca9d694b Added a little bit of input validation. 2015-06-02 18:39:17 +02:00
Fabian
d752b34dfc Lowering default graphics options. 2015-06-02 17:43:41 +02:00
Faerbit
b55a5e1906 Merge branch 'shadow-renderqueue' 2015-06-02 17:39:08 +02:00
Faerbit
ea8e7b6048 Fixing the rendering of the shadows. Closes #10. 2015-06-02 17:36:55 +02:00
Faerbit
e8c1dee3b5 Improved scheduling of point lights for the render queue by fixing a bug. 2015-06-02 00:33:55 +02:00
Faerbit
819584ef15 Implemented updating of shadow render queue. Doesn't work satisfactory right now. (#10) 2015-06-02 00:18:22 +02:00
Faerbit
ea194309ef Moving shadows of flames correctly with wind. 2015-06-01 22:35:05 +02:00
Faerbit
b280ad8c12 Small performance optimization. 2015-06-01 16:17:37 +02:00
Faerbit
90dbd52aca Implemented rendering of shadow render queue (#10). 2015-06-01 15:47:30 +02:00
Faerbit
2a09c7f83c Fixing wrong shader getting used. 2015-06-01 13:35:23 +02:00
Faerbit
3fffa4c4ca Removing code meant for shadow-renderqueue branch. 2015-06-01 13:29:08 +02:00
Faerbit
592f84b548 Implemented the the initilization of the shadow render queue.(#10) 2015-06-01 10:48:56 +02:00
Faerbit
836f75d7fe Various cleanups. 2015-06-01 10:45:15 +02:00
Faerbit
f389aa2f4a Fixed pointlight shadows not getting rendered correctly. 2015-06-01 00:57:36 +02:00
Faerbit
4a35c4feba Increase maximum possible point light shadows to 15. 2015-05-31 21:31:31 +02:00
Faerbit
53e8e6d719 Fixing a memory leak by converting pointers to smart pointers. 2015-05-31 21:17:46 +02:00
Faerbit
b8db45fc7c Reenabled bias calculation depeding on distance. 2015-05-31 20:31:12 +02:00
Faerbit
34cac6f464 Moving torch because of shadow artifacts. 2015-05-31 18:46:44 +02:00
Faerbit
5dbf839f76 Reverting to old way when to sample the directional shadow, because of a bug introduced by this. 2015-05-31 17:51:11 +02:00
Faerbit
806182835f Changed wind direction because of flames clipping into the terrain. 2015-05-31 17:36:58 +02:00
Faerbit
52a36c9b18 Added additional directional shadow maps for better looking sun shadows. 2015-05-31 17:36:21 +02:00
Faerbit
1f1741effb Added poison sampling to point light shadows. Closes #11. 2015-05-31 16:34:14 +02:00
Faerbit
96f146d6f0 Adding optimization flags to release build. 2015-05-31 15:52:00 +02:00
Faerbit
23618a2fa8 Added additional torches to better light some previously too dark areas. 2015-05-31 15:42:21 +02:00
Faerbit
030f8b298a Increased the geometry resolution of the flames. 2015-05-31 15:23:54 +02:00
Faerbit
c8ba61ca56 Performance optimization for deciding when the directional shadow gets rendered. 2015-05-28 15:03:08 +02:00
Faerbit
a8ce6916e7 Refactored level.cc to use the new getSurroundingChunks function. 2015-05-28 11:23:54 +02:00
Faerbit
b110551db6 Added a parameter to getSurroundingChunks to limit the chunkRenderDistance. 2015-05-28 11:23:27 +02:00
Faerbit
9ea1630057 Fixed a bug in getSurroundingChunks. 2015-05-28 11:16:30 +02:00
Faerbit
32b9d6597e Enable debug symbols for debug compilation. 2015-05-28 10:42:12 +02:00
Faerbit
b6467a92a3 Added getSurroundingChunks method to level. 2015-05-27 10:27:08 +02:00
Faerbit
0bee5f915d Removing useless include. 2015-05-26 21:32:37 +02:00
Faerbit
536ffc899e Fixing game not getting scaled correctly in fullscreen. 2015-05-16 13:54:01 +02:00
Faerbit
a56907a956 Fixing crash in fullscreen. 2015-05-16 12:05:37 +02:00
Faerbit
5a1ab063b7 Removing last mutex. 2015-04-25 23:27:12 +02:00
Faerbit
a173e1b9eb Making constant variable constant. 2015-04-25 22:56:11 +02:00
Faerbit
95ce45c944 Make packaging fail if compilation failed. 2015-04-25 22:48:45 +02:00
Faerbit
faf19aa424 Should have been in the last commit. 2015-04-25 22:42:44 +02:00
Faerbit
9b89007674 Removing mutexes because threading is going to be implemented differently.(#6) 2015-04-25 22:38:44 +02:00
Faerbit
40dfbf33d9 Updating loading screen during loading. 2015-04-25 22:29:37 +02:00
Faerbit
96a8943cb7 Protected some functions of graphics with the init_mutex. 2015-04-12 21:56:04 +02:00
Faerbit
b52bef795a Added init mutex to graphics. 2015-04-12 21:51:11 +02:00
Faerbit
9b2ca4d1d3 Made sun brighter during sun rise. 2015-04-12 21:16:17 +02:00
Faerbit
93f790ec22 Simplifing object render method by givin the skydome day texture it's own texture unit. 2015-04-12 21:06:59 +02:00
Faerbit
9b57eb0df1 Moving resizing of loading screen to resize method. 2015-04-12 20:16:24 +02:00
Faerbit
2962acfded Made sun shine through the fog. 2015-03-27 15:05:01 +01:00
Faerbit
d642582956 Protecting some functions with the light_mutex. 2015-03-24 20:41:38 +01:00
Faerbit
127ee7a6ca Adding mutex to level. 2015-03-24 20:37:56 +01:00
Faerbit
fc2ce96771 Moving updateClosestLights() to level class. 2015-03-24 19:50:26 +01:00
Faerbit
2b2e05f009 Protecting all member functions of entity class with the mutex. 2015-03-24 19:12:33 +01:00
Faerbit
5546abd24a Adding mutex to entity class. 2015-03-24 19:09:39 +01:00
Faerbit
796db123b7 Removing useless assignment. 2015-03-24 19:09:14 +01:00
Faerbit
b39e6702cc Changing default init of camera. 2015-03-24 19:08:49 +01:00
Faerbit
6d167a2d2a Removing commented code. 2015-03-24 18:29:28 +01:00
Faerbit
319b57bf7a Removing useless assignment. 2015-03-22 13:49:25 +01:00
Faerbit
300f14c752 Fixing mismatching deallocation. 2015-03-22 13:25:43 +01:00
Faerbit
3de85042d0 Prettified sun rise. 2015-03-21 21:46:58 +01:00
Faerbit
2a2e89d445 Changed when light contributions are not taken into account. Increased FPS. 2015-03-21 20:55:21 +01:00
Faerbit
78972a87bf Fixed water plane not getting rendered after introducing rendering queue. 2015-03-21 19:02:24 +01:00
Faerbit
2a3f976b5e Slight fps increas by reducing the amount the point lights have to render. 2015-03-21 18:57:14 +01:00
Faerbit
1fd6058eaf Finshed work now sorting objects after loading. 2015-03-21 18:44:08 +01:00
Faerbit
a07a4bbb91 Commiting unfinished work. 2015-03-21 15:05:22 +01:00
Faerbit
2a0cb3ca1d Implemented a renderQueue which is sorted by materials. Not feasible. Closes #12. 2015-03-20 23:45:28 +01:00
Faerbit
795801faa6 Sped up the lookup of the texture unit. 2015-03-19 18:26:51 +01:00
Faerbit
3680abfba4 Loaded all textures at the beginning of the application. Closes #7. 2015-03-18 16:26:20 +01:00
Faerbit
09282f51fd Changing where uniform are set minimizing the communication with the gpu. 2015-03-18 09:14:09 +01:00
Faerbit
3a2156492e Removing useless light update. 2015-03-18 08:58:24 +01:00
Faerbit
43b752ee63 Implemented cross chunk objects. This concludes the chunk render implementation and closes #4. 2015-03-18 08:54:38 +01:00
Faerbit
f9212c9938 Increased renderdistance a bit to prevent popping of chunks. 2015-03-18 08:53:31 +01:00
Faerbit
79223b4c02 Do not render behind the skydome. 2015-03-17 19:10:23 +01:00
Faerbit
ac48ab8cc0 Now also using the correct chunks for the objects and rendering only the chunks which are necessary. 2015-03-17 14:54:18 +01:00
Faerbit
d0fed9a321 Now generating seperate terrain meshes for chunks. 2015-03-17 12:08:49 +01:00
Faerbit
a7fb739204 Removing useless variable. 2015-03-17 09:42:51 +01:00
Faerbit
7957b8b555 Reenabling fps display in release build. 2015-03-17 09:41:37 +01:00
Faerbit
498be94102 Added generation of chunks. 2015-03-17 09:39:42 +01:00
Faerbit
7b742e913f Introduced chunk class. 2015-03-16 16:58:50 +01:00
Faerbit
73f7ec6a70 Removing unsafe deleteObject function. 2015-03-16 16:15:12 +01:00
Faerbit
761d25e9c7 Removing unused lua scripts. 2015-03-16 16:14:22 +01:00
Faerbit
1dde41d5f4 Do not update objects which have a mass of zero and can therefore by definition not change position or rotation. 2015-03-16 16:05:36 +01:00
Faerbit
07e036451d Merge branch 'master' of github.com:Faerbit/Saxum 2015-03-16 15:26:40 +01:00
Faerbit
ab7d1c81df Adding parameters to the makeTrinagleMesh to control the area for which it creates the terrain. Also changing most unsigned ints to ints to make said more roboust in use. 2015-03-16 15:26:30 +01:00
Fabian
10a87be81f Gave a few infos about modding. 2015-03-15 23:15:25 +01:00
Fabian
ea21910255 Downloads are now available. 2015-03-15 23:14:13 +01:00
Faerbit
15412b9b45 Increasing zip compression level. 2015-03-15 22:51:32 +01:00
Faerbit
78e7362392 Changing circle script to respect changes of the package renaming. 2015-03-15 22:39:16 +01:00
Faerbit
5f0e5cf623 Changing window title and moving fps display to debug build. 2015-03-15 22:32:13 +01:00
Faerbit
0ae43db53e Fixing loading not getting correctly scaled in fullscreen. 2015-03-15 22:11:26 +01:00
Faerbit
9fced79888 Change the filename of the compiled package. 2015-03-15 22:01:27 +01:00
Faerbit
c74397a567 Adding another torch on a bridge. (#5) 2015-03-15 21:49:07 +01:00
Faerbit
f338fe8c94 Changing lighting parameters. 2015-03-15 21:36:39 +01:00
Faerbit
1f6dc97e12 Adding torches on the first two bridges. Closes #5. 2015-03-15 21:21:06 +01:00
Faerbit
c091c3fd38 Adding hint to progress report of converter. 2015-03-15 21:14:21 +01:00
Faerbit
22d4ee0769 Fixing lights not getting rotated correctly with compositions. 2015-03-15 21:11:56 +01:00
Faerbit
6bb9624908 Fixing lights not respecting ignoreHeightmap setting. 2015-03-15 20:12:55 +01:00
Fabian
d58ba7c1c7 Added more comments to the config.xml 2015-03-15 19:12:36 +01:00
Faerbit
857fc76c40 Removing debug output from lua scripts for release builds. 2015-03-15 18:46:44 +01:00
Faerbit
48d9f173f3 Added first checkpoint. Closes #3. 2015-03-15 18:33:12 +01:00
Faerbit
a1de7e5231 Changing when the endgame triggers. 2015-03-15 18:13:43 +01:00
Faerbit
e06eea7c5d Adding debug key to print the position. 2015-03-15 18:06:24 +01:00
Faerbit
7b80f34f4f Removing pointless increment. 2015-03-15 17:58:42 +01:00
Faerbit
d1df99914a Adding additional comments to config.xml. 2015-03-15 17:53:23 +01:00
Faerbit
40da86aad6 Introducing windowed fullscreen. Closes #9. 2015-03-15 17:48:46 +01:00
Faerbit
36173438cc Removing backup files from git. 2015-03-15 17:35:59 +01:00
Faerbit
e9179eba71 Improving lighting situation at the back of the level. 2015-03-15 17:33:59 +01:00
Faerbit
d6aef2a244 Optimized shadows of the torches. 2015-03-15 17:15:15 +01:00
Faerbit
e13ddb14f6 Adding new brazier model because the old one crashed bullet. 2015-03-15 16:35:41 +01:00
Faerbit
b19118252f Changing how the loading screen is approximated. Fixes #2. 2015-03-15 15:39:24 +01:00
Faerbit
608c159aa6 Changing how textures are approximated. 2015-03-15 15:38:33 +01:00
Faerbit
33e7baed94 Reenabling debug features for debug builds. 2015-03-15 15:18:16 +01:00
Faerbit
5d52c9cdaf Only register keypresses after loading which are not escape. 2015-03-15 15:02:30 +01:00
Faerbit
dd9997dc82 Removing debug stuff from release build. Fixes #8. 2015-03-15 14:55:12 +01:00
Faerbit
e2ed7cac88 Removing object files. 2015-03-15 14:30:34 +01:00
Faerbit
bf9ec726fc Fixing loading of triangle meshes in physics by using the obj loader from ACGL. 2015-03-15 14:19:12 +01:00
Faerbit
f4adcb122b Fixing typo. 2015-03-15 12:29:23 +01:00
Faerbit
2b0be77ac9 Removing code duplication. 2015-03-15 11:20:06 +01:00
Faerbit
85d08d81d2 Changing fog color to better fit the new night texture. 2015-03-15 11:02:29 +01:00
Faerbit
398147d79c Changing night skydome to a new texture, because polar mapping looks bad. 2015-03-15 10:57:02 +01:00
Faerbit
834496699d Moving lowering level of test level to zero. 2015-03-14 15:07:26 +01:00
Faerbit
92fbc39dc5 Adding test level. 2015-03-14 15:02:26 +01:00
Faerbit
33c59fc387 Setting mass of column to zero because it doesn't need to move. 2015-03-14 15:01:59 +01:00
Faerbit
f35d35cc94 Do not render waterPlane if it doesn't exist. 2015-03-14 15:01:06 +01:00
Faerbit
e888d7df0e Had to split the level xml path and the level xml name to properly work with the converter. 2015-03-14 14:57:42 +01:00
Faerbit
dfaf8c0965 Updating converter with needed default values. 2015-03-14 14:54:43 +01:00
Faerbit
65552409f0 Removed debug draw memory leak. 2015-03-14 14:52:40 +01:00
Faerbit
8f6c27ae32 Changing in which order stuff is drawn. 2015-03-14 14:34:45 +01:00
Faerbit
63acfef341 Removed hardcoded level file path and moved it into the config.xml. 2015-03-14 13:04:33 +01:00
Faerbit
370135fca8 Made heightmap path configurable from level. 2015-03-14 13:00:47 +01:00
Faerbit
7e0394df00 Adding comment for loading screen path. 2015-03-14 12:55:46 +01:00
Faerbit
680f32424f Changing LICENSE.txt. 2015-03-14 09:42:54 +01:00
Faerbit
70b7289a43 Changing textuer because of clearer licensing. 2015-03-14 09:22:39 +01:00
Faerbit
68a355dbe9 Removing useless loop. 2015-03-13 23:53:19 +01:00
Faerbit
a725cf8b43 Added switch for rendering world. 2015-03-13 15:43:10 +01:00
Faerbit
ab6d2e4ffd Implemented debug draw for bullet. 2015-03-13 15:30:21 +01:00
Faerbit
4d6ee7093f Reduce compiler warnings in bullet. 2015-03-13 15:01:28 +01:00
Faerbit
436495f0c7 Decreasing concurrent light count for better fps. 2015-03-12 19:24:50 +01:00
Faerbit
e2e343db1a Adding debug switchtes for flames and shadows. 2015-03-12 19:24:10 +01:00
Faerbit
9a54c033c0 Changed how key states are handled. 2015-03-12 19:14:14 +01:00
Faerbit
3614ff4892 Removing install and uninstall targets for glfw. 2015-03-12 18:47:24 +01:00
Faerbit
3d6a681676 Fixing typo. 2015-03-12 17:03:30 +01:00
Faerbit
08d809ea51 Game is not in a releasable state yet. 2015-03-12 17:02:58 +01:00
Faerbit
9faa23784d Changing text on loadingscreen to refer at LICENSE.txt. 2015-03-12 16:43:21 +01:00
Faerbit
e8fae9fb59 Fixing automated builds. 2015-03-12 16:32:24 +01:00
Faerbit
285b049f04 Merge branch 'master' of github.com:Faerbit/swp 2015-03-12 16:25:22 +01:00
Faerbit
26834c1b0f Account for repo name change. 2015-03-12 16:25:03 +01:00
Fabian
144d82fd63 Update Readme.md 2015-03-12 16:15:54 +01:00
Faerbit
b967085e7d Stripping binaries for packaging. 2015-03-12 15:59:50 +01:00
Faerbit
89874b8612 Fixing cursor position staying the same introduced by GLFW 3.1. 2015-03-12 15:44:21 +01:00
Faerbit
1bf34b6751 Making all directories lowercase. 2015-03-12 15:18:48 +01:00
Faerbit
df2435efdc Removing useless stuff. 2015-03-12 15:18:23 +01:00
Faerbit
da26ac016d Formatting changes. 2015-03-12 15:15:53 +01:00
Faerbit
5e9b550ea1 Changed CMakeLists.txt to account for name change. 2015-03-12 15:15:05 +01:00
Faerbit
efa2fb5ef5 Changing name of src to game to better communicate what is in it. 2015-03-12 15:08:30 +01:00
Faerbit
86be3f43dd Changing files to account for the movement of the source files. 2015-03-12 15:04:26 +01:00
Faerbit
db2d696374 Moving sources to src folder. 2015-03-12 14:54:12 +01:00
Faerbit
96aaee816e Adding tinyxml2 license. 2015-03-12 14:42:20 +01:00
Faerbit
f32e78f06b Changing CMakeLists.txt to account for new tinyxml location. 2015-03-12 14:40:38 +01:00
Faerbit
41eed47edb Moving tinyxml to extern folder. 2015-03-12 14:40:14 +01:00
Faerbit
5569079511 Added License. 2015-03-12 13:26:14 +01:00
Faerbit
e2de06fe2b Shouldn't have commited compiled files. 2015-03-12 12:59:58 +01:00
Faerbit
09fc128136 Updated GLFW to version 3.1. 2015-03-12 12:55:54 +01:00
Faerbit
79e75b70ec Removing useless math-scripts. 2015-03-12 12:09:28 +01:00
Faerbit
680b8bcd5d Updating lodepng. 2015-03-12 11:42:22 +01:00
Faerbit
3a0ec498ae Only using the lodepng files in extern. 2015-03-12 11:41:19 +01:00
Faerbit
710644a822 Rexported objects to include normals. 2015-03-11 23:56:11 +01:00
Faerbit
8a66c35b64 Make error level dependent on build type. 2015-03-11 23:47:47 +01:00
Faerbit
534405ffdf Changing night texture for copyright reasons. 2015-03-11 23:22:18 +01:00
Faerbit
8e18b24f94 Changing how the game is build. 2015-03-11 12:25:46 +01:00
Faerbit
bc8315db35 Adding logo. 2015-03-11 11:21:45 +01:00
Faerbit
6c0d2e72bf Removing unused textures. 2015-03-11 11:18:56 +01:00
Faerbit
5966a54a1c Moving textures from cgtextures into their own folder. 2015-03-11 11:16:17 +01:00
Faerbit
0b6df8ef5a Removing useless files. 2015-03-11 10:59:28 +01:00
Faerbit
15a0d4aefb Moving gimp files to their own folder. 2015-03-11 10:58:49 +01:00
Faerbit
5616e9ce7b Removing now useless files. 2015-03-11 10:57:23 +01:00
Fabian Klemp
87942dbb14 Merge branch 'master' of github.com:Faerbit/swp
Conflicts:
	report/report.log
	report/report.synctex.gz
2015-03-10 16:38:32 +01:00
Fabian Klemp
d10047176d Cleanup. 2015-03-10 16:38:01 +01:00
sfroitzheim
4d941a52a5 Fiixed a typo and a tempus mistake in the final report 2015-03-10 16:28:31 +01:00
Jasper
c74d2c8b89 report fixes 2015-03-10 16:15:01 +01:00
sfroitzheim
8325611c28 updated report 2015-03-10 15:41:25 +01:00
Fabian Klemp
c25d2b86a0 Expanded on the graphics part of the report. 2015-03-10 15:32:50 +01:00
Jasper
c856227b47 report added 2015-03-10 15:24:56 +01:00
sfroitzheim
f4d84a2b11 Added the four submission screenshots 2015-03-10 14:03:42 +01:00
sfroitzheim
e7a2eac348 Added the teaserimage 2015-03-10 13:36:41 +01:00
Faerbit
8349f8594e Made fog stay red longer. 2015-03-10 08:13:45 +01:00
Faerbit
3090c5e0f9 Making sun color dependent on angle. 2015-03-10 08:09:02 +01:00
Faerbit
428c9df4ea Decreased bias for point light shadows. 2015-03-09 22:33:10 +01:00
Faerbit
1b3fa3eed3 Changed on what sun angle shadows get rendered. 2015-03-09 22:31:45 +01:00
sfroitzheim
cbb65848d9 Merge branch 'master' of https://github.com/Faerbit/swp 2015-03-09 19:05:18 +01:00
sfroitzheim
75396ce127 Improved the hint 2015-03-09 19:04:37 +01:00
Jasper
dbd2b665be Physics force endgame distance and correct starting direction 2015-03-09 18:57:40 +01:00
Fabian Klemp
6e27f018a7 Merge branch 'master' of github.com:Faerbit/swp 2015-03-09 18:35:16 +01:00
Fabian Klemp
2c3a73d556 Added cheating teleport for presentation. 2015-03-09 18:35:11 +01:00
sfroitzheim
2b90ca6d3c Added a few torches and changed the hinttorches to green 2015-03-09 18:32:48 +01:00
Steffen Fündgens
71decbd5b3 Fixed the broken hint model 2015-03-09 17:36:46 +01:00
Jasper
8d5ce5cf18 modified light intensity 2015-03-09 17:06:47 +01:00
Jasper
be21855e1d Merge branch 'master' of github.com:Faerbit/swp 2015-03-09 17:03:28 +01:00
Jasper
28119ea906 modified marbel rolling and box to allow somewhat easier movement 2015-03-09 17:01:14 +01:00
Fabian Klemp
b03520f1e7 Increasing terrain ambient factor be better visible on the beamer. 2015-03-09 17:01:14 +01:00
Steffen Fündgens
f1e87f4cb9 Merge branch 'master' of github.com:Faerbit/swp 2015-03-09 16:54:33 +01:00
Fabian Klemp
b4f20affeb Changed green flame parameters. They don't clip anymore. 2015-03-09 16:53:26 +01:00
Steffen Fündgens
9001de47ee Merge branch 'master' of github.com:Faerbit/swp 2015-03-09 16:52:23 +01:00
Steffen Fündgens
6136c095ae Added slides for the final presentation. 2015-03-09 16:52:12 +01:00
Fabian Klemp
7359e95d4c Corrected bias calculation for point light shadows. 2015-03-09 16:41:12 +01:00
Fabian Klemp
3ae3c84a39 Changed a few material parameters. 2015-03-09 16:01:03 +01:00
Fabian Klemp
7ef0fddd1f Changed how fast the marble is dying and spawning. 2015-03-09 16:00:07 +01:00
Jasper
f71f9e0590 Merge branch 'master' of github.com:Faerbit/swp 2015-03-09 15:46:10 +01:00
Jasper
caf5d3cf22 changed ambient factors 2015-03-09 15:45:49 +01:00
Fabian Klemp
f3887390a9 Made sunrise last longer. 2015-03-09 15:43:44 +01:00
Fabian Klemp
abb8c981bc Changed a few parameters corresponding with the sunrise. 2015-03-09 15:43:12 +01:00
Fabian Klemp
0a75dd030a Chaging executable name to game name. 2015-03-09 15:16:18 +01:00
Fabian Klemp
c2d669e5b3 Fixing waterPlane not being rendered last, leading to incorrect alpha. 2015-03-09 14:59:22 +01:00
Jasper
67c1c812a5 Merge branch 'master' of github.com:Faerbit/swp 2015-03-09 14:40:51 +01:00
Jasper
95de9295e7 reduced shadow amount 2015-03-09 14:40:29 +01:00
Steffen Fündgens
4992292563 Merge branch 'loading-screen' 2015-03-09 14:36:17 +01:00
Fabian Klemp
8694025e08 Do not render shadows for waterPlane. 2015-03-09 14:28:09 +01:00
Fabian Klemp
3ad7ddf1cd Merge branch 'master' of github.com:Faerbit/swp 2015-03-09 14:14:22 +01:00
Fabian Klemp
2fce9296a7 Added wind simulation. 2015-03-09 14:14:17 +01:00
sfroitzheim
936ab87ba0 Added a half transparent water texture to files and scene 2015-03-09 14:13:27 +01:00
Jasper
251048bbd0 modified starting sunhight + sunrise functions 2015-03-09 13:58:48 +01:00
Steffen Fündgens
bfd8b25a7d Fixed loading screen resizing. 2015-03-09 13:41:34 +01:00
Jasper
4bfcc282a1 modified death 2015-03-09 12:30:50 +01:00
Faerbit
b313bd0645 Made flickering dependent of the wind power. 2015-03-09 11:13:12 +01:00
Faerbit
9609c50335 Removing skewing of flame. Rotate looks correct now. 2015-03-09 10:32:25 +01:00
Faerbit
5599a39eff Reenabling multisampling. 2015-03-09 08:21:44 +01:00
Faerbit
4a7c552508 Reexport exit plate because the normals were wrong. 2015-03-09 00:44:27 +01:00
Faerbit
86fa3b1c66 Removing useless mtl file. 2015-03-09 00:42:52 +01:00
Faerbit
6e8d3c36df Gave sun rise more different colors. 2015-03-09 00:39:59 +01:00
Faerbit
eda952df70 Changed flame function to cosine to be able to rotate it properly. Also changed corresponding parameters. 2015-03-08 23:13:16 +01:00
Faerbit
528108e7bc Switched flame function to cosine. 2015-03-08 22:11:49 +01:00
Faerbit
371cccb273 Made attempt at scaling loading screen. 2015-03-08 17:05:52 +01:00
Faerbit
65e2e326ed Fixed parameters for new brazier model. 2015-03-08 16:04:15 +01:00
Faerbit
3ee8cfdbad Fixed shadow flickering. 2015-03-08 15:59:35 +01:00
Faerbit
ea248caa47 Changed flame parameters for the braziers. 2015-03-08 14:58:51 +01:00
Faerbit
abca7c9f1e Disabled directional light if its below the map. 2015-03-08 14:56:18 +01:00
Faerbit
b8538be749 Added new brazier model. 2015-03-08 14:55:21 +01:00
Faerbit
bac8308ae2 Changed torch to smooth shading. 2015-03-08 12:25:01 +01:00
Faerbit
c89ce83fb3 Increases frequency of flickering. 2015-03-08 11:31:06 +01:00
Faerbit
451a0836cf Made flames transparent. 2015-03-08 11:25:10 +01:00
Faerbit
ecb88e9140 Improved flicker functions a bit. 2015-03-08 10:50:12 +01:00
Faerbit
185371d78c Only rendering sun shadows when the sun is actually shining. 2015-03-08 10:36:45 +01:00
Faerbit
93f87cc9c5 Added flickering to lighting shader. 2015-03-08 01:59:38 +01:00
Faerbit
b68015a6c4 Added flickering to the geometry shader. 2015-03-08 01:53:00 +01:00
Faerbit
bd584c3ce4 Flames can now be skewed. 2015-03-08 01:28:34 +01:00
Faerbit
b90f03c397 Ensuring triggers don't get triggered in the first two seconds. 2015-03-07 23:27:41 +01:00
Faerbit
d64d7ca0dc Removing debug messages. 2015-03-07 23:14:55 +01:00
Faerbit
3eeea52f5e Gave flames their own class again. The size of the flames are now respected. 2015-03-07 22:48:44 +01:00
Faerbit
d3c812bba3 Added loading screen. Had to restructure quite a bit of the program. 2015-03-07 19:59:52 +01:00
Faerbit
48174a4fb5 Removing useless shaders. 2015-03-07 18:57:24 +01:00
Faerbit
e02d223574 Reintroduced night texture. Throw a bunch of stuff out. 2015-03-07 18:25:14 +01:00
Faerbit
d24e70dbdd Added movement to water texture. Movement speed currently hard coded. 2015-03-07 14:56:16 +01:00
Faerbit
86619fd2dd Changed night texture to procedual night sky generation. 2015-03-07 14:39:01 +01:00
Faerbit
1ab8bb9a92 Merge branch 'master' of github.com:Faerbit/swp 2015-03-07 14:36:12 +01:00
Faerbit
0b8c426adb Also generating star sizes. 2015-03-07 14:36:05 +01:00
Faerbit
45fce8b464 Improved formatting. 2015-03-07 14:17:15 +01:00
SteffenFuendgens
e2078cb4a2 Merge branch 'master' of https://github.com/Faerbit/swp 2015-03-07 13:42:06 +01:00
SteffenFuendgens
0f8f261d30 Added lights that get created and deleted from lua. Scripts dont crash but i cant test it further until monday. 2015-03-07 13:41:35 +01:00
Faerbit
4b5e9416a1 Ignoring *.pyc files. 2015-03-07 13:24:56 +01:00
Faerbit
5b5b4a8676 Added script which generates star positions. 2015-03-07 13:24:39 +01:00
Faerbit
376c92d9b0 Moved math scripts in it's own folder. 2015-03-07 12:50:03 +01:00
Faerbit
736aa50ac6 Changed texture coordinates of water plane so that it can use the water texture properly. 2015-03-07 12:48:07 +01:00
Steffen Fündgens
f38d57bb70 Made death animation quicker. 2015-03-06 17:55:01 +01:00
Steffen Fündgens
7d480d654f Merging level.cc und level.hh. 2015-03-06 17:49:21 +01:00
Steffen Fündgens
5dfa5f89e8 Changed the camera so it is less likely to go through the heightmap. 2015-03-06 17:45:51 +01:00
Steffen Fündgens
5778696d29 Added a reset for the second moveable box. 2015-03-06 17:44:34 +01:00
Jasper
7288ff6fc9 ./ruMerge branch 'master' of github.com:Faerbit/swp 2015-03-06 16:57:50 +01:00
Jasper
3d5289da45 corrrected reset position 2015-03-06 16:57:38 +01:00
Jasper
49f612fe67 changed waterlevel 2015-03-06 16:57:10 +01:00
Jasper
60a127eefc fixed problem where pressing buttons while respawning would lead to overflow and segmentation fault 2015-03-06 16:56:20 +01:00
sfroitzheim
9a4cb335a0 Added torches to the scene 2015-03-06 16:44:24 +01:00
sfroitzheim
49f041341a Merge branch 'master' of https://github.com/Faerbit/swp 2015-03-06 16:29:05 +01:00
sfroitzheim
c3a9652cf1 Added the exit to models and scene 2015-03-06 16:28:38 +01:00
Jasper
e328298474 Merge branch 'master' of github.com:Faerbit/swp 2015-03-06 16:20:18 +01:00
Jasper
cb762be52b Added endgame. 2015-03-06 16:19:57 +01:00
Jasper
39a0883466 Fixed y value of the sun. 2015-03-06 16:14:59 +01:00
Steffen Fündgens
a835604a5a Merge branch 'master' of github.com:Faerbit/swp 2015-03-06 15:24:49 +01:00
Steffen Fündgens
b7fa9ee5a1 Added waterPlane.(with skydome texture) 2015-03-06 15:24:02 +01:00
sfroitzheim
dfe83042b5 Merge branch 'master' of https://github.com/Faerbit/swp 2015-03-06 15:19:45 +01:00
sfroitzheim
e34d9e4e38 Added the loading screen to the data plus replaced switch-torches with braziers 2015-03-06 15:19:28 +01:00
Jasper
1399f6ad7a Added smooth respawn in the forcePlayer function 2015-03-06 15:01:22 +01:00
Jasper
23f8ea8fa7 modified run amounts 2015-03-06 14:00:59 +01:00
Jasper
0460b463d1 Merge branch 'master' of github.com:Faerbit/swp 2015-03-06 13:58:46 +01:00
Jasper
522e2f0db5 resized camera object 2015-03-06 13:58:25 +01:00
Steffen Fündgens
62e7c42ec6 Adjusted constraints and triggers to lowered switches. 2015-03-06 13:39:04 +01:00
Steffen Fündgens
f1526fd389 Finished lua script for the sunrise and added triggers to call it. 2015-03-06 13:22:04 +01:00
Steffen Fündgens
db18560dbf Added an errorcheck when loading lua files. 2015-03-06 13:18:55 +01:00
Faerbit
1b8b8125f4 Added shader which could manipulate the color of the flames. 2015-03-06 09:21:38 +01:00
Faerbit
00506c6b3e Merge branch 'master' of github.com:Faerbit/swp 2015-03-06 09:16:37 +01:00
Faerbit
e4c9418d4a Gave the flames it's own framebuffer to be able to manipulate it's color. 2015-03-06 09:16:29 +01:00
SteffenFuendgens
0f7240b047 Added lua scripts for the sunrise. 2015-03-05 18:30:50 +01:00
Faerbit
2dd09aff19 Removing unused code. 2015-03-05 16:17:21 +01:00
Faerbit
95c88979f4 Changed brazier parameters to sensible values. 2015-03-05 12:48:32 +01:00
Faerbit
019c150521 Triangulted faces of brazier. 2015-03-05 12:41:31 +01:00
Faerbit
99995d0745 Fixed brazier model. 2015-03-05 12:31:34 +01:00
Faerbit
d9f0950463 Disabled multisampling because we draw to an offscreen fbo anyway. 2015-03-04 23:37:10 +01:00
Faerbit
fa8ba1335e Made use of the night texture. Now blends to night texture if the sun vector is pointing down. 2015-03-04 21:50:47 +01:00
Faerbit
3e86b70778 Gave the skydome it's own class which contains the nightTexture and changed the loader and the level XML. 2015-03-04 21:28:46 +01:00
Faerbit
2c333773b2 Removed hardcoded obj file name from skydome. 2015-03-04 21:05:24 +01:00
Steffen Fündgens
6af54ab02f Merge branch 'master' of github.com:Faerbit/swp 2015-03-04 18:11:38 +01:00
Steffen Fündgens
8224250867 Made the block for the switches lighter and adjusted the triggers. 2015-03-04 18:11:32 +01:00
Steffen Fündgens
79faa2edea Added 'Safepoints' to the resetPlayer script. 2015-03-04 18:10:49 +01:00
Steffen Fündgens
bb30aee8d3 Added a check to catch the error that a typeID does not exist in Compositions.xml. 2015-03-04 18:04:17 +01:00
Fabian Klemp
bed9f09539 Merge branch 'master' of github.com:Faerbit/swp 2015-03-04 17:47:41 +01:00
Fabian Klemp
fce73f1285 Added fading to the sun. 2015-03-04 17:47:34 +01:00
Fabian Klemp
b7f95ebb40 Added sun to skydome. 2015-03-04 17:09:46 +01:00
sfroitzheim
4b0c875504 Merge branch 'master' of https://github.com/Faerbit/swp 2015-03-04 17:09:25 +01:00
sfroitzheim
d17ed99d96 Added torches for the switches plus added the hint to the scene 2015-03-04 17:08:53 +01:00
Fabian Klemp
d273d131e2 Increases vertex count of skydome. 2015-03-04 17:08:47 +01:00
Fabian Klemp
6004651adc Using new skydome texture. 2015-03-04 16:10:15 +01:00
Fabian Klemp
98e8d10cdd Merge branch 'master' of github.com:Faerbit/swp 2015-03-04 16:08:11 +01:00
Fabian Klemp
01a61f43ac Gave skydome it's own shader. 2015-03-04 16:08:03 +01:00
Jasper
aa2ed3083a added playermove 2015-03-04 16:01:55 +01:00
Steffen Fündgens
afae5ccd68 Merge branch 'master' of github.com:Faerbit/swp 2015-03-04 15:52:39 +01:00
Steffen Fündgens
12f76ddd5a Added a trigger that resets the player when his z value is below 15. 2015-03-04 15:52:28 +01:00
Steffen Fündgens
e14a2305a0 Added new undo parameter for triggers to the converter. 2015-03-04 15:45:48 +01:00
sfroitzheim
11322c0446 Merge branch 'master' of https://github.com/Faerbit/swp 2015-03-04 15:42:51 +01:00
sfroitzheim
88d5229b35 adjusted height for first blockswitch 2015-03-04 15:41:25 +01:00
Jasper
cdde802756 Merge branch 'master' of github.com:Faerbit/swp 2015-03-04 15:33:50 +01:00
Jasper
d827bb8197 fix 2015-03-04 15:33:31 +01:00
Steffen Fündgens
c01ca1a1f2 Merge branch 'master' of github.com:Faerbit/swp 2015-03-04 15:22:14 +01:00
Steffen Fündgens
16ba763ddc Added flameHeight and flameWidth with loading from xml. 2015-03-04 15:22:07 +01:00
sfroitzheim
8e1c776f80 Merge branch 'master' of https://github.com/Faerbit/swp 2015-03-04 15:11:14 +01:00
Jasper
94cdd16394 Merge branch 'master' of github.com:Faerbit/swp 2015-03-04 15:09:50 +01:00
sfroitzheim
f48d6d4648 Seperated skydome and sun 2015-03-04 15:06:58 +01:00
Jasper
ef9c089d91 modified the update in level.cc. Now the ball no longer goes bouncy. 2015-03-04 15:04:46 +01:00
sfroitzheim
20055d7fc5 Merge branch 'master' of https://github.com/Faerbit/swp 2015-03-04 15:04:32 +01:00
Steffen Fündgens
93fe07678c Merge branch 'master' of github.com:Faerbit/swp 2015-03-04 14:35:26 +01:00
Steffen Fündgens
6fee8a81b1 Changed triggers so the undo function can be in the same lua file. Fixed triggers for the second door. 2015-03-04 14:35:14 +01:00
Steffen Fündgens
8b5f6f9b74 Made the block for the switches heavier so it can activate the switches again. 2015-03-04 13:38:38 +01:00
Jasper
b7718d73e8 modified camera to a directional camera as requested 2015-03-04 13:37:27 +01:00
Faerbit
a811ed57be Now also blurring the edges of the flames. 2015-03-04 12:13:58 +01:00
Faerbit
fa47c93b46 Fixed blurring of flames with stencil buffer. 2015-03-04 11:25:02 +01:00
Jasper
0292ab422a Merge branch 'master' of github.com:Faerbit/swp 2015-03-04 11:16:22 +01:00
Faerbit
a88112d639 Merge branch 'master' of github.com:Faerbit/swp 2015-03-04 00:55:11 +01:00
Faerbit
2930a86959 Made first attempt at blurring flames. Conceptually bad, looks very bad. 2015-03-04 00:55:01 +01:00
Faerbit
f34dbf891c Removed now useless stuff from the flame shader. 2015-03-03 23:32:43 +01:00
Faerbit
916c26cda1 Introduced flame post processing shader. 2015-03-03 23:27:41 +01:00
Steffen
b28f4d3bef Added checks and error messages in case files do not exist. 2015-03-03 18:45:02 +01:00
Steffen
dd0afd1978 Changed array initialization because it did not compile under windows. 2015-03-03 17:37:03 +01:00
Faerbit
686647fe93 Moved torch light up to account for new torch model. 2015-03-03 11:05:34 +01:00
Faerbit
6fe51809a0 Made bias variable to get smaller bias for smaller shadow maps. 2015-03-03 11:04:39 +01:00
Steffen Fündgens
0d8256abe5 Removed shift of the physical heightmap, because the graphical heightmap is corect now. 2015-03-02 17:27:49 +01:00
Steffen Fündgens
8f0ec319c4 Merge branch 'master' of github.com:Faerbit/swp 2015-03-02 17:20:16 +01:00
Steffen Fündgens
e043fe482a Added scripts and triggers to open the second door. 2015-03-02 17:20:02 +01:00
Steffen Fündgens
d5771f8eea Fixed a bug with shifting the heightmap. 2015-03-02 17:17:06 +01:00
sfroitzheim
6140c38813 Merge branch 'master' of https://github.com/Faerbit/swp 2015-03-02 16:47:54 +01:00
sfroitzheim
4d0f2d7be5 Made a new torch model 2015-03-02 16:47:42 +01:00
Steffen Fündgens
48ed278101 Recalculated normals because they were wrong. 2015-03-02 15:09:29 +01:00
Steffen Fündgens
9555786a09 Ignored first two seconds of triggering to give switches time to position themselves. 2015-03-02 14:28:19 +01:00
Steffen Fündgens
986ed9ea8e Added lua scripts and triggers for the third door. 2015-03-02 12:58:34 +01:00
Steffen Fündgens
c372a2d652 Moved unused scripts into a subfolder. 2015-03-02 12:42:04 +01:00
Steffen Fündgens
81d5f86db1 Added position constraints for all switch_inner. 2015-03-02 12:22:47 +01:00
Steffen Fündgens
2fecf21509 Adjusted the size of switch_inner so it does not move to the sides. 2015-03-02 12:16:29 +01:00
Faerbit
813d50ee94 Tried to further improve the rendering of the flame; didn't quite work. 2015-03-01 23:28:36 +01:00
Faerbit
805a5f19b5 Corrected flame normals. 2015-03-01 22:22:48 +01:00
Faerbit
2125243a31 Tried adding normals for color calculation seems wrong. 2015-03-01 19:40:39 +01:00
Faerbit
7dd4122d44 Fixed normals. 2015-03-01 18:56:56 +01:00
Faerbit
7ecb76dffa Using the color of the lights for the flame color. 2015-03-01 18:45:31 +01:00
Faerbit
bb090fcf91 Added another two render calls to further increase the number of vertices of the flame. 2015-03-01 18:19:19 +01:00
Faerbit
6e33af8e61 Reducing the number of sample from 8 to 4. 2015-03-01 17:56:30 +01:00
Faerbit
395803109d Should have been in the last commit. 2015-03-01 17:04:13 +01:00
Faerbit
b61e7df089 Made two render calls to circumvent vertex limitation of geometry shader. 2015-03-01 17:01:41 +01:00
Faerbit
8c34df49b7 Enabled multisampling for the window. 2015-03-01 16:52:44 +01:00
Faerbit
b9bdb594f0 Enabled multisampling for the window. 2015-03-01 16:43:03 +01:00
Faerbit
47bcf0bf1c Moved glEnables to graphics.init(). 2015-03-01 16:41:46 +01:00
Faerbit
4cc21fd378 Closing flame at the top. 2015-03-01 16:11:43 +01:00
Faerbit
41de72e3a1 Fixed popping of directional shadows. 2015-02-28 15:53:12 +01:00
Faerbit
97b9eeeac6 Mix borders of directional shadow maps. 2015-02-28 15:10:14 +01:00
Faerbit
585e40bb8b Reintroduced cascaded shadow mapping while also fixing it. The old bug with popping shadows should be fixed now. 2015-02-28 14:40:54 +01:00
Faerbit
0887ff5f46 Removed unused code. 2015-02-28 13:51:22 +01:00
Faerbit
0489fc81fa Moved flame down a little bit to better fit the new flame. 2015-02-28 00:53:23 +01:00
Faerbit
899253b53c Got generation of flame geometry working. 2015-02-28 00:52:58 +01:00
Faerbit
8c1369ad2e Cull front faces of flames(normals are backwards). 2015-02-28 00:51:20 +01:00
Faerbit
1dad2f589f More output from solver. 2015-02-28 00:02:26 +01:00
Faerbit
086713341b Got generation of circular quads working. 2015-02-28 00:00:30 +01:00
Faerbit
b974508683 Merge branch 'master' of github.com:Faerbit/swp 2015-02-27 23:34:33 +01:00
Faerbit
39882d43c3 Fixed solver and improved him. 2015-02-27 23:34:25 +01:00
Steffen Fündgens
7f8150d5ed Integrated Simons Level1.png changes from the .xcf. 2015-02-27 17:21:52 +01:00
Steffen Fündgens
635f6ae546 Merge with the worst possible conflicts: png and xml. Think i didnt yet integrate Simons latest png changes. 2015-02-27 17:11:44 +01:00
Steffen Fündgens
eab9270b94 Turned the heightmap loading around so the level now is like the png. The wall backsides dont seem to have textures... 2015-02-27 16:53:46 +01:00
Steffen Fündgens
87b9634703 Moved the heightmap, so it nearly fits with the graphical one. 2015-02-27 16:20:29 +01:00
Steffen Fündgens
650ad89067 Adjusted variable name i forgot earlier. 2015-02-27 16:01:59 +01:00
Jasper
a64b1dac00 Merge branch 'master' of github.com:Faerbit/swp 2015-02-27 16:01:17 +01:00
Jasper
d49baa2a8c added convextrianglemeshshape 2015-02-27 15:58:21 +01:00
sfroitzheim
23a3730c37 Merge branch 'master' of https://github.com/Faerbit/swp 2015-02-27 15:48:39 +01:00
sfroitzheim
134faaa67e prepared switch room for adding braziers 2015-02-27 15:47:36 +01:00
Faerbit
272dce8900 Merge branch 'master' of github.com:Faerbit/swp 2015-02-27 15:43:52 +01:00
Faerbit
eff6cabd09 Added solver which helps with selecting a fit function for the flames. 2015-02-27 15:43:33 +01:00
sfroitzheim
84a9899516 Completed work on the switch room (for now) 2015-02-27 15:42:16 +01:00
Steffen Fündgens
6c78c93c2b Increased size of directional light shadow map. 2015-02-27 14:37:57 +01:00
Steffen Fündgens
abeab11875 Solved jittering by moving physics update in the level update. 2015-02-27 12:56:02 +01:00
Steffen Fündgens
2d65071887 Not updating old camera twice anymore. 2015-02-27 12:55:06 +01:00
sfroitzheim
9f19d74c2a Added an example of bridges meeting properly to the scene (in the big switch room where are no switches yet) 2015-02-26 17:11:02 +01:00
sfroitzheim
501aa3def9 Added the hidden hint model 2015-02-26 15:50:36 +01:00
sfroitzheim
53b6db98e6 Added a brazier model 2015-02-26 15:49:34 +01:00
Faerbit
a77e06f8c8 Added simple geometry shader which draws a red triangle which changes it's height over time. 2015-02-24 23:30:59 +01:00
Faerbit
174fafe5bc Removing flame offset from Level.xml because it should be in the Compositions.xml. 2015-02-24 15:28:53 +01:00
Faerbit
2b93aff35d Clarifing which offset is meant. 2015-02-24 14:04:56 +01:00
Faerbit
510001b943 Adding flame. 2015-02-24 12:56:55 +01:00
Faerbit
97a315661f Removing flame class and integrate it into light class because it was unpractical. 2015-02-24 12:56:40 +01:00
Faerbit
b3b215e628 Fixing windows build. Lua now cross compiles. 2015-02-24 11:07:52 +01:00
Faerbit
edd4f53f66 While cleaning also clean lua. 2015-02-24 11:02:24 +01:00
Faerbit
fd21dd0f9f Removing maybe unitiliazed errors. 2015-02-24 10:50:11 +01:00
Steffen Fündgens
320b765951 Adjusted the converter to be robust against IDs being overwritten with zeros in the png. Sucessfully ran it. 2015-02-20 15:06:43 +01:00
Steffen Fündgens
087d36aa15 Unified object and texture filenames. 2015-02-20 13:56:40 +01:00
Steffen Fündgens
236067435d Updated Level0 to be runable. 2015-02-20 13:40:59 +01:00
Steffen Fündgens
8a76ad4133 Updated currently unused scripts. 2015-02-20 13:26:09 +01:00
Steffen Fündgens
563bde0616 Now using xml query functions in the converter. Also adjusted the converter to use config.xml. Running the converter would delete all triggers and position constraints though, because the IDs in the png were manually overwritten with zeros. 2015-02-20 13:11:05 +01:00
Faerbit
c2621752fc Removing outdated comment. 2015-02-19 00:30:35 +01:00
Steffen
153e0116c7 Now using the xml query functions everywhere in the loader class. 2015-02-18 21:20:29 +01:00
Steffen
99d8a45380 Added xml query functions to the loader class, using them in loadConfig(). 2015-02-18 20:10:30 +01:00
Steffen Fündgens
af9f6d6933 Added loading of flames. 2015-02-17 12:54:21 +01:00
Steffen Fündgens
f92c7bf6c3 Added vector of flames to the level. 2015-02-17 12:41:15 +01:00
Steffen Fündgens
c8788f3329 Added new flame class. 2015-02-17 12:36:43 +01:00
Steffen Fündgens
88d31bc68a Adjusted the mass of switchInner and the force that keeps it in place. The movableBlock can now push the switch down. 2015-02-17 12:25:12 +01:00
Steffen Fündgens
3764bb5c6a Adjusted the size of the movableBlock. 2015-02-17 12:04:15 +01:00
Faerbit
1742d83d4b Give the luaState a proper name. 2015-02-15 19:37:13 +01:00
Faerbit
efa151aa73 Do not implicitly set extensions of script files. 2015-02-15 19:34:15 +01:00
Faerbit
fb028a899f Moved setting of package.path in lua to init.lua 2015-02-15 19:32:19 +01:00
Faerbit
ae1d04b5ee Removed commented code. 2015-02-15 19:20:21 +01:00
Steffen
2c699590e2 Changed position constraints so they dont bounce the door up and down. 2015-02-15 16:12:11 +01:00
Steffen
0e550e52c6 Got scripts to work as intended, had to use an ugly hack for it. 2015-02-15 16:11:31 +01:00
Faerbit
de2ba0acb9 Updated package.sh to fit new directory structure. 2015-02-15 11:20:03 +01:00
Faerbit
431a9e58b1 Unified how pathes are interpreted in config.xml. 2015-02-14 09:55:43 +01:00
Faerbit
97329141bc Restructured directory tree. 2015-02-14 09:49:29 +01:00
Faerbit
f05e3d301c Moved setting of sleepingThreshold of PositionConstraints. 2015-02-14 09:39:16 +01:00
Faerbit
12099cb4a1 Fixed first door not opening. 2015-02-14 00:40:52 +01:00
Steffen Fündgens
e9d6ca1c1e Merge branch 'master' of github.com:Faerbit/swp 2015-02-13 19:25:11 +01:00
Steffen Fündgens
9bae3554a2 Added a trigger to open the first door, cant close it again cause apparently i have no idea what the difference between global and shared variables in lua is... 2015-02-13 19:24:57 +01:00
sfroitzheim
1f86981271 Merge branch 'master' of https://github.com/Faerbit/swp 2015-02-13 18:18:03 +01:00
sfroitzheim
1adb8f1d80 made some extreme level-layout improvements (putting walls properly together etc) 2015-02-13 18:17:47 +01:00
Steffen Fündgens
dc5a281956 Merge branch 'master' of github.com:Faerbit/swp 2015-02-13 18:10:55 +01:00
Steffen Fündgens
2873d300a8 Added position constraints 2015-02-13 18:10:49 +01:00
Jasper
760a7c9d86 changed hight of camera and added camera move methode in physics 2015-02-13 17:47:21 +01:00
Jasper
3d59fb43c8 Merge branch 'master' of github.com:Faerbit/swp 2015-02-13 17:36:11 +01:00
Fabian Klemp
df230ea677 Fixed updating of lights. 2015-02-13 17:35:56 +01:00
Jasper
f2bfd12aa5 Merge branch 'master' of github.com:Faerbit/swp 2015-02-13 17:23:21 +01:00
Jasper
d4fe5e1ae1 added move system and modified the camera for less bobidity 2015-02-13 17:22:01 +01:00
Steffen Fündgens
1492a312ed Merge branch 'master' of github.com:Faerbit/swp 2015-02-13 17:14:38 +01:00
Steffen Fündgens
265c0b2ce5 Added resetPlayer function to the level. 2015-02-13 17:14:29 +01:00
Fabian Klemp
5e07aec885 Updated Readme.md. 2015-02-13 17:11:47 +01:00
Fabian Klemp
fd1f32be6a maxShadowRenderCount now works correctly. 2015-02-13 17:09:25 +01:00
Fabian Klemp
377902a255 Now also ignoring *.swp files. 2015-02-13 17:02:36 +01:00
Jasper
3f1616adf1 corrected camera position for specular lighting 2015-02-13 16:35:35 +01:00
Jasper
818178e665 Camera now with less jitter! 2015-02-13 16:34:39 +01:00
Jasper
51e9b26379 Merge branch 'master' of github.com:Faerbit/swp 2015-02-13 16:22:06 +01:00
Fabian Klemp
281466ebd5 Added maxShadowRenderCount. Controls how many shadows get rendered. 2015-02-13 16:20:22 +01:00
Jasper
98718b517e Fixed non rotating objects 2015-02-13 16:09:18 +01:00
Fabian Klemp
599c849bb0 Merge branch 'debug-shadows'
Conflicts:
	graphics.cc
	graphics.hh
	object.cc
2015-02-13 16:02:12 +01:00
Fabian Klemp
55434daa24 Updated how shadows are applied. Looks nice now. 2015-02-13 15:51:49 +01:00
Jasper
9049458ad5 Merge branch 'master' of github.com:Faerbit/swp 2015-02-13 15:46:46 +01:00
Jasper
75792a5723 added debug Camear (keys L and K to switch) 2015-02-13 15:46:00 +01:00
Steffen Fündgens
3fc8e9c11a Undid something i did not want to include in the last commit. 2015-02-13 15:38:43 +01:00
Steffen Fündgens
d55bb3465c Reenabled zooming with the mouse wheel. 2015-02-13 15:20:32 +01:00
sfroitzheim
38d4ef8125 changed heightmap to incorporate the whole vague level layout 2015-02-13 14:35:48 +01:00
Steffen Fündgens
e91d045a37 Code rework. Basically cleaned up a mess of tabs and whitespaces. 2015-02-13 13:46:41 +01:00
Steffen Fündgens
1585195779 Reduced camera mass so the camera can practically not move objects anymore. Fixed the scaling of forces on the camera with the (no more inverted) mass. 2015-02-13 13:00:47 +01:00
Steffen Fündgens
6ee8af58e3 Made it possible again to move the camera upwards. 2015-02-13 12:47:34 +01:00
Steffen Fündgens
d02a7fa02f Changed position constraints to be less bouncy. 2015-02-13 12:15:54 +01:00
Faerbit
1ac9e4e270 Fixing parameters. 2015-02-12 16:28:24 +01:00
Faerbit
84d52fbaf2 Another syntax fix. 2015-02-12 01:38:18 +01:00
Faerbit
aaadcbe413 Syntax fix. 2015-02-12 01:28:26 +01:00
Faerbit
de960237a4 Fixing CI system. 2015-02-12 01:19:34 +01:00
Faerbit
1d8bbba1ca Now only using the 32 closest light sources. 2015-02-12 01:13:26 +01:00
Faerbit
ba2cada6dc Completed shadows for now. Lighting model is still a little bit off. 2015-02-10 18:19:26 +01:00
Faerbit
9afb3595d0 Fixed directional shadows. 2015-02-10 00:27:13 +01:00
Faerbit
282eb32267 Got multiple shadows working. The really ugly way. 2015-02-09 21:29:44 +01:00
Faerbit
c28b35667f Changed cube map shadows sampler to a sampler array. 2015-02-09 14:26:04 +01:00
Steffen
8cc467a806 Now loading the resolution of the shadow cube maps from config.xml. 2015-02-07 20:24:11 +01:00
Steffen
2b4a8885b5 Moved loading of the config.xml to the loader class. 2015-02-07 20:08:59 +01:00
Steffen
096cf12df0 Changed the switch object, its graphics and physics should work now(untested). Objects without physics also do not need damping values anymore. 2015-02-07 19:34:40 +01:00
Steffen
d132cdd233 Made None an available physicsType for objects without physics. 2015-02-07 19:23:27 +01:00
Steffen
7647c5f1c0 objectData now has a new value called renderable, if it is false the object will not get rendered. 2015-02-07 19:09:49 +01:00
Steffen Fündgens
21d94a420f Merged physics.cc. 2015-02-06 18:04:20 +01:00
Steffen Fündgens
d2cf4f0003 Added loading from config.xml, then debuged it for more than three hours... 2015-02-06 18:00:14 +01:00
Jasper
44153cd554 Merge branch 'master' of github.com:Faerbit/swp 2015-02-06 17:32:30 +01:00
Jasper
c4bed4c506 addede max camera speed 2015-02-06 17:31:52 +01:00
sfroitzheim
a669c83943 Finally fixed wall and gate physics plus made some heightmap modifications 2015-02-06 16:31:21 +01:00
Jasper
017c96bd55 got the marble to no longer jitter all over the place 2015-02-06 16:26:22 +01:00
Steffen Fündgens
a14d3420d5 Implemented loading of config.xml, the loaded values are not used yet. 2015-02-06 13:37:42 +01:00
Steffen Fündgens
ea58f2fbce Added config.xml, not using it yet. 2015-02-06 13:06:42 +01:00
Steffen Fündgens
320c1cb152 Moved loading of the terrain to the loader, now also reading parameters for it from xml. 2015-02-06 12:51:53 +01:00
Steffen Fündgens
5c2491557b Added terrain parameters to the xml. 2015-02-06 12:37:00 +01:00
Faerbit
ed10994ebc Added non-linearization to get rid of fragments. 2015-02-05 13:19:51 +01:00
Faerbit
7c8d149e3a Increased precision of depth textures. 2015-02-04 23:10:51 +01:00
Faerbit
ac19eac671 Additional cleanup. 2015-02-04 23:08:23 +01:00
Faerbit
8babafadfd Reintroducing broken assert, because it's important. 2015-02-04 22:55:34 +01:00
Faerbit
10082466cf Did a little bit of cleanup. 2015-02-04 22:54:40 +01:00
Faerbit
7e8b0d4c58 Moved loading functionality to loader class. 2015-02-04 17:16:06 +01:00
Faerbit
2e90ac57d8 Got Point Light Shadows working. YEEHAW! 2015-02-04 14:27:41 +01:00
Steffen Fündgens
bb1cf8dea7 Added a comment and changed dampning values that were randomly 1. 2015-02-03 13:21:52 +01:00
Steffen Fündgens
c4b01beaa8 Adjusted a composition, found out that all TriMeshs fall through the heightmap. 2015-02-03 13:10:14 +01:00
Steffen Fündgens
e7ff009482 Scaling of the player ball is now possible. 2015-02-03 12:36:42 +01:00
Steffen Fündgens
9ffe3cd886 Added scaling to the physic of Box and Button. Adjusted the objectData for block.obj perfectly. 2015-02-03 12:29:35 +01:00
Faerbit
b3e0d5ca47 Changed how depth values are written. Works even less than before. 2015-02-02 19:58:16 +01:00
Steffen Fündgens
5c1a342cdb Added status prints to the converter. 2015-02-02 13:37:58 +01:00
Steffen Fündgens
35a13886c3 Added and tested physics boxes for the switchOuter. Graphical object to match them is missing. 2015-02-02 13:20:20 +01:00
Steffen Fündgens
08e5492b4f Changed trigger indices to match physicObjects instead of objects, adjusted removeObject function. 2015-02-02 12:43:32 +01:00
Steffen Fündgens
2eaf2f7a58 Removed unnecessary rotation from a lightsource. 2015-02-02 12:40:25 +01:00
Faerbit
75464e6819 Merge branch 'debug-shadows' of github.com:Faerbit/swp into debug-shadows 2015-01-31 20:02:28 +01:00
Faerbit
b8dc153f10 Tried correcting an error. Unsure if it will work. 2015-01-31 20:02:23 +01:00
Jasper
1989cb6b13 Merge branch 'master' of github.com:Faerbit/swp 2015-01-30 17:33:41 +01:00
Jasper
5e2d2d4e57 added inital rotation to physics, had the springs fixed (was NOT my fault) 2015-01-30 17:29:48 +01:00
Fabian Klemp
2ddd753575 Additional debug stuff. 2015-01-30 15:47:07 +01:00
sfroitzheim
642caa85f6 Added some new walls and changed some physics properties (still not working properly) 2015-01-30 15:28:09 +01:00
Fabian Klemp
60372cf1a1 Only sample shadows from the first light source. 2015-01-30 15:11:00 +01:00
sfroitzheim
4883b753c0 Added new ground tiles for a ruins area to the data 2015-01-30 14:15:07 +01:00
Jasper
198dc0614f fine tuned the camera nad added more comments to physics.cc 2015-01-30 13:32:16 +01:00
Jasper
9c6cd7c59d implimented a rough version of a physics driven camera 2015-01-29 14:10:28 +01:00
Jasper
ae5d31e04c fixed size ratios of objects 2015-01-29 13:39:37 +01:00
Jasper
8620e16681 added a scaling factor to triangle meshes to compensate for diffrent scaling (somehow from bullet, idk) and started adding comments to physics.cc 2015-01-29 13:15:45 +01:00
Faerbit
a3e6da2ada Now mirroring the cube face on their own again. 2015-01-28 17:26:02 +01:00
sfroitzheim
e0d9058aef Fixed some problems with the new bridge (wasn't able to roll onto it) and changed some heightmap heights 2015-01-28 15:49:38 +01:00
sfroitzheim
190df8b936 Added a model for a gate and added it to the scene with some additional level improvements 2015-01-28 15:19:35 +01:00
Steffen Fündgens
ec8767c14c Deleted a torch that had a duplicate ID and let the converter recreate it. Shadows look weirder now. This might be good for debugging the shadows. 2015-01-27 12:25:16 +01:00
Steffen Fündgens
d6ed98b992 Fixed a bug i created in my previous commit. Made output in case of errors more informative. 2015-01-27 12:21:30 +01:00
Steffen Fündgens
ba0677adde Improved user interaction and a little code rework. 2015-01-27 11:50:51 +01:00
Faerbit
114632b015 Small parameter changes. 2015-01-27 11:14:00 +01:00
Faerbit
377372d1c6 Fixed saving of depthbuffer. 2015-01-26 23:11:04 +01:00
Faerbit
7f13e89935 Implemented saving depthbuffer face to png. Doesn't work right now. 2015-01-26 21:48:44 +01:00
Faerbit
65087ece48 Updating lights on creation and also using constant. 2015-01-26 00:18:09 +01:00
Faerbit
4d3db6f285 Updating lights only every half a second now, for performance. 2015-01-26 00:06:31 +01:00
Faerbit
81f94ba221 Moved all GLFW related stuff to the main files. 2015-01-25 23:29:37 +01:00
Faerbit
b6a2b0d7b3 Updated Readme.md. 2015-01-25 23:09:23 +01:00
Faerbit
4c5bbb3c73 Changed comment. 2015-01-25 23:07:49 +01:00
Steffen Fündgens
9088bb4561 Rotate parameter for physics.add should now be false if the object has a positionConstraint. 2015-01-23 16:51:09 +01:00
Steffen Fündgens
d25e18ccc6 Corrected spaces. 2015-01-23 16:41:56 +01:00
Steffen Fündgens
ec7250e937 Merge branch 'master' of github.com:Faerbit/swp 2015-01-23 16:04:13 +01:00
Steffen Fündgens
a9ab76ea51 Converter can now reuse IDs of deleted compositions. 2015-01-23 16:02:50 +01:00
Steffen Fündgens
5a860f68c3 Added more exits after errors. 2015-01-23 16:02:10 +01:00
sfroitzheim
c29ced5210 Merge branch 'master' of https://github.com/Faerbit/swp 2015-01-23 14:56:19 +01:00
sfroitzheim
89741cfcb3 Added some walls to the scene properly (weird physics bugs are apparent) 2015-01-23 14:56:02 +01:00
Steffen Fündgens
f2353d670f Fixed a drawing bug for the pointlight shadows. 2015-01-23 14:33:04 +01:00
Steffen Fündgens
e9e7fe1f7c Removed unnecessary bind and clear calls. 2015-01-23 14:22:24 +01:00
sfroitzheim
db3fab3d35 Fixed merge conflicts. 2015-01-23 14:10:35 +01:00
sfroitzheim
56f179e5af Merge branch 'master' of https://github.com/Faerbit/swp 2015-01-23 14:08:38 +01:00
Steffen Fündgens
a4ae90082a Forgot one thing. 2015-01-23 14:08:30 +01:00
sfroitzheim
cfbf1b9208 Merge branch 'master' of https://github.com/Faerbit/swp 2015-01-23 14:07:29 +01:00
sfroitzheim
bdb92b2cf1 Merge branch 'master' of https://github.com/Faerbit/swp
Conflicts:
	Levels/ObjectSetups/Compositions.xml
	Levels/ObjectSetups/Level1.png
	Levels/ObjectSetups/Level1.xcf
	Levels/ObjectSetups/Level1.xml
2015-01-23 14:06:20 +01:00
Steffen Fündgens
f7e097029a Merge branch 'master' of github.com:Faerbit/swp 2015-01-23 14:01:06 +01:00
Steffen Fündgens
00de8c0e82 Fixed mirroring of shadows by inverting coordinates instead of blitting framebuffers(performance...). 2015-01-23 14:00:26 +01:00
sfroitzheim
7c1f0e7960 Merge branch 'master' of https://github.com/Faerbit/swp
Conflicts:
	Levels/ObjectSetups/Level1.xml
2015-01-23 13:56:40 +01:00
Jasper
4c1860429a prepare for peoples 2015-01-23 13:31:19 +01:00
Jasper
47b386296a constraints work. Why? because i said so! 2015-01-23 12:59:28 +01:00
Jasper
1687a56f87 Merge branch 'master' of github.com:Faerbit/swp 2015-01-23 12:06:26 +01:00
Jasper
d1a3c3ac3d readding button -> box 2015-01-23 12:05:43 +01:00
Faerbit
d41149e29e Made progress on point light shadows. Not quite sure what is happening. 2015-01-22 21:21:09 +01:00
Faerbit
9847aa3374 Increased mininum camera distance because the marble got scaled up. 2015-01-20 08:45:52 +01:00
Faerbit
2c9755209a Added slides for milestone 3. 2015-01-20 00:53:55 +01:00
Jasper
099e0c17c7 Merge branch 'master' of github.com:Faerbit/swp 2015-01-19 18:30:12 +01:00
Jasper
650d505e4e Added physics type button. 2015-01-19 18:30:07 +01:00
Jasper
99217ed399 Added light block and changed physics parameters. 2015-01-19 18:28:28 +01:00
Steffen Fündgens
cf836b151a Mirrored rendering of pointlight shadows, so that they are at the correct positions now, but occlude everything. -- Fabian 2015-01-19 18:22:25 +01:00
Steffen Fündgens
1940b72b00 Increased height of the fog, because of new Scaling of the heightmap. -- Fabian 2015-01-19 18:21:29 +01:00
Jasper
65a826f2af some quick updates for the camera before working on buttons 2015-01-19 17:12:58 +01:00
Jasper
25bd4ba64e prepared camera, level and physics for the new camera 2015-01-19 16:51:35 +01:00
sfroitzheim
4ce7464ae7 Added some walls and made some fixes (there are too many walls, I will fix this till tomorrow) 2015-01-19 16:47:17 +01:00
Jasper
8306f7ff19 prepareing modified camera in physics 2015-01-19 16:30:11 +01:00
Steffen Fündgens
5070940a94 Merge branch 'master' of github.com:Faerbit/swp 2015-01-19 15:55:18 +01:00
Steffen Fündgens
4c71dbfbea Added rotation in Compompositions.xml. 2015-01-19 15:55:03 +01:00
Jasper
bcdbb2534c small changes to trimesh scaling 2015-01-19 15:33:44 +01:00
Jasper
c3f7b650fb Merge branch 'master' of github.com:Faerbit/swp 2015-01-19 15:25:08 +01:00
Jasper
2edbb196c2 added trimesh back to collision 2015-01-19 15:24:44 +01:00
sfroitzheim
aeb4b638c7 Merge branch 'master' of https://github.com/Faerbit/swp
Conflicts:
	Levels/ObjectSetups/Level1.xml
2015-01-19 15:18:34 +01:00
sfroitzheim
65ba8c0249 Added improved starting bridge version 2015-01-19 15:15:18 +01:00
Jasper
5670d35865 fixed the issue with shpere portruding into blocks 2015-01-19 15:11:56 +01:00
Jasper
7cb3e3d620 fixed small bug with balls 2015-01-19 14:57:20 +01:00
Jasper
19f1f0bb44 Merge branch 'master' of github.com:Faerbit/swp 2015-01-19 14:01:46 +01:00
Jasper
c2634543dc added collision masks and button creator 2015-01-19 14:01:05 +01:00
sfroitzheim
42b65fa9c0 Added torch for testing. 2015-01-19 13:59:50 +01:00
Steffen Fündgens
a8fee3ad84 Fixing shader; merge was wrong. 2015-01-19 13:44:38 +01:00
Steffen Fündgens
5dcabf0290 Merge branch 'linearized' of github.com:Faerbit/swp 2015-01-19 13:16:08 +01:00
Steffen Fündgens
ba14a492f1 Added more error checking to the converter. 2015-01-19 11:15:41 +01:00
Steffen Fündgens
70dc3f1450 Fixed the bug that caused the duplicate marble lately. 2015-01-19 11:15:06 +01:00
Faerbit
1cef3d4d0a Removed Cascaded Shadow Mapping because it is not realistic to get it working in the remaining time. 2015-01-19 00:52:57 +01:00
Faerbit
7a830a472e Linearization of depth buffer. Didn't change graphics in any way. 2015-01-19 00:40:28 +01:00
Steffen
75440f919f Added the option to define initial position constraints in the Level.xml file. 2015-01-17 14:07:12 +01:00
Steffen
e66fb546b7 Updated scripts and added scripts for opening the door in Level1 2015-01-17 13:37:09 +01:00
Steffen
3e78b4f4bb Created a moveObject function in the Level class. 2015-01-17 13:30:33 +01:00
Steffen
aca199cd1b Removed the lua state from the physics. 2015-01-17 13:11:43 +01:00
Steffen
2327d80810 Added new composition 2015-01-17 12:38:27 +01:00
Steffen
a128c947b1 Added ignoreHeightmap option to compositions in Compositions.xml. 2015-01-17 12:24:54 +01:00
Steffen
53fe90fd14 Added to TARGET_LINK_LIBRARIES, now compiles on my home pc. 2015-01-17 12:12:27 +01:00
Steffen Fündgens
f03a01461d Merge branch 'master' of github.com:Faerbit/swp 2015-01-16 16:52:11 +01:00
Steffen Fündgens
90d64bbade started working on an actual trigger for Level1 2015-01-16 16:52:04 +01:00
Steffen Fündgens
0d8dc4b10d moved the triggered/not triggered information to lua 2015-01-16 16:51:36 +01:00
sfroitzheim
98091fa305 Fixed a few bugs like duplicate marble(bridge will be fixed at monday) 2015-01-16 16:47:55 +01:00
sfroitzheim
638323c1c2 Merge branch 'master' of https://github.com/Faerbit/swp 2015-01-16 16:38:24 +01:00
sfroitzheim
073000d097 Additional changes with the heightmap 2015-01-16 16:37:00 +01:00
Jasper
7934bf7991 Merge branch 'master' of github.com:Faerbit/swp 2015-01-16 16:19:53 +01:00
Jasper
913e862a88 Added position Constraint structure, an add/remove function for them, and added their handeling to the update function 2015-01-16 16:17:26 +01:00
Jasper
3cba239897 Fixed block so that it doesnt BLOW EVERYTHING UP! 2015-01-16 15:40:07 +01:00
Steffen Fündgens
a4adf627c3 changed heightmap scaling 2015-01-16 14:02:36 +01:00
Faerbit
b04e59c15a Removing the rest of the binary files from lua. 2015-01-15 17:39:20 +01:00
Faerbit
7275cdf280 Adding libreadline for lua to ubuntu docker image. 2015-01-15 17:34:41 +01:00
Faerbit
0483fd995b Now also compiling lua from source before everything else. 2015-01-15 17:26:37 +01:00
Faerbit
80b03508a5 Removing lua binaries because they shouldn't be tracked. 2015-01-15 17:17:14 +01:00
Faerbit
49b1c3c6c6 Adding lua Makefiles. 2015-01-15 17:15:53 +01:00
sfroitzheim
16bf2477b0 Improved level heightmap (still not finished though) 2015-01-15 15:09:42 +01:00
Steffen Fündgens
a137d2544a Triggers now adapt if the object they want to do something with gets deleted or changes its index. 2015-01-13 18:18:13 +01:00
Steffen Fündgens
f4408b76e8 Added and used a new trigger without recompiling, scripting really works. :) 2015-01-13 17:52:31 +01:00
Steffen Fündgens
72d1009007 Now passing the Lua State to the physics, so that Lua can directly access physics functions. 2015-01-13 17:50:15 +01:00
Steffen Fündgens
d936d1f269 Lua script works now, worked around the bug by saving the name as a std::string. 2015-01-13 17:21:15 +01:00
Steffen Fündgens
fe58023458 Moved triggering to lua, got a strange bug with the const char* holding the name of the lua script. 2015-01-13 13:52:22 +01:00
Steffen Fündgens
60d76a58de Integrated Lua into our project. Triggers are now able to call a Lua Script. Havent figured out how to let the Script do anything usefull yet. 2015-01-09 16:51:28 +01:00
Steffen Fündgens
70e2ebb605 Moved all dampning parameters (except for the camera) to Compositions.xml. 2015-01-06 13:31:53 +01:00
Steffen Fündgens
76b6be0beb Moved friction and player strength to Level.xml. 2015-01-06 13:14:30 +01:00
Steffen Fündgens
36c42123b8 Added the option to give a trigger a target composition. The position the trigger activates at is the old manually set position + the position of the target composition. 2014-12-19 16:15:29 +01:00
Steffen Fündgens
5b6ad0c6d1 Ignoring blender backup files. 2014-12-19 15:22:34 +01:00
Steffen Fündgens
0649444687 Also increased strength of the player ball. 2014-12-19 15:21:38 +01:00
Steffen Fündgens
20b0c66a17 Tweaked ball physics. 2014-12-19 15:20:49 +01:00
Steffen Fündgens
7d3d7927fe Fixed bug with created too many faces. 2014-12-19 15:20:05 +01:00
Steffen Fündgens
1c2fbc2e91 Triangulated block. 2014-12-19 15:14:33 +01:00
Steffen Fündgens
62b8b0afb9 Triangulated faces of the torch and added it to the Level again. 2014-12-19 15:09:00 +01:00
Steffen Fündgens
8d3e2c2fac Removing useless mtl file. 2014-12-19 15:07:43 +01:00
Steffen Fündgens
f21b837b1c Merge branch 'master' of github.com:Faerbit/swp 2014-12-19 13:36:05 +01:00
Steffen Fündgens
136e4d07f0 Changed the default objectNum for triggers from 1 to 0. Moved blocks up so they dont spawn in the heightmap. 2014-12-19 13:35:17 +01:00
Steffen Fündgens
1cdca7b686 added comments to Compositions.xml and adjusted marble size. 2014-12-19 13:33:59 +01:00
Faerbit
b16a90bd15 Calulating fogEnd by farPlane. 2014-12-19 13:27:05 +01:00
Faerbit
5b2c4a6bbc Fixed crashing if no lights are present. 2014-12-19 13:09:25 +01:00
Steffen Fündgens
ba847c80f0 Moved triggers into compositions. 2014-12-16 13:46:49 +01:00
Fabian Klemp
bf46f117b6 Moved trigger functions to trigger class. 2014-12-16 12:40:30 +01:00
Fabian Klemp
be4a61e65b Fixed triggers. Now deletes a truly random object. 2014-12-16 12:19:48 +01:00
Fabian Klemp
d700564b37 Initialized pseudo random generator. 2014-12-16 12:17:30 +01:00
Faerbit
6db55f5622 Added slides. 2014-12-16 00:23:35 +01:00
Faerbit
104b8b4bbc Made trigger more presentation friendly. 2014-12-15 23:36:22 +01:00
Faerbit
799f191485 Disabled point light shadows, because they look very wrong. 2014-12-15 22:59:13 +01:00
Faerbit
6b64ec7360 Made level more presentation friendly. 2014-12-15 22:58:48 +01:00
Faerbit
76053c5b2f Removing debug output. 2014-12-15 22:03:04 +01:00
Faerbit
76dbdac70c Revert "Not using pointlight shadows."
This reverts commit e00cb787c8.
2014-12-15 22:00:23 +01:00
Jasper
8072fd1cbb Merge branch 'master' of github.com:Faerbit/swp
Conflicts:
	level.cc
2014-12-15 19:13:25 +01:00
Jasper
9fd8ae5cd8 Tried to adjust box. 2014-12-15 19:11:28 +01:00
Steffen Fündgens
2a7404e7d1 Adding *.db files to gitignore. 2014-12-15 19:00:40 +01:00
Steffen Fündgens
32f8683367 Fixing texture file name of marble. 2014-12-15 19:00:07 +01:00
Steffen Fündgens
895d69fc66 Changed to Lvl1. 2014-12-15 18:58:32 +01:00
Steffen Fündgens
adde6fd162 Implemented simple triggers. 2014-12-15 18:43:10 +01:00
Steffen Fündgens
e099c231c7 Not using pointlight shadows. 2014-12-15 16:48:42 +01:00
Steffen Fündgens
04e5b3a5ac Merge branch 'master' of github.com:Faerbit/swp 2014-12-15 16:34:54 +01:00
Steffen Fündgens
5454a7ddeb Doubled heightmap scale. 2014-12-15 16:34:44 +01:00
Fabian Klemp
a20da59e4a Adding torch blenderfile. 2014-12-15 16:27:04 +01:00
Jasper
7013f7cf71 Merge branch 'master' of github.com:Faerbit/swp 2014-12-15 16:04:36 +01:00
Jasper
00716b63bd Composition scales addapted
Physics added trimeshshapes
2014-12-15 16:02:04 +01:00
Faerbit
a3cc265927 Merge branch 'master' of github.com:Faerbit/swp 2014-12-15 15:59:12 +01:00
Faerbit
7e31717124 Point light shadows for the first point light does something. Seems pretty broken. 2014-12-15 15:58:55 +01:00
sfroitzheim
f19b1ddeb1 Version 1.1 of the heightmap 2014-12-15 15:45:56 +01:00
sfroitzheim
b6e6ee2d24 Added Heightmap prototype(could be garbage) 2014-12-15 15:13:29 +01:00
Faerbit
371f56695a Reducing OpenGL version number to 3.2 again. 2014-12-15 15:10:19 +01:00
Steffen Fündgens
60c5275e50 Merge branch 'master' of github.com:Faerbit/swp 2014-12-15 14:59:09 +01:00
Steffen Fündgens
a393fb688d Implemented half the loading of triggers. 2014-12-15 14:59:03 +01:00
Faerbit
7d4d322fd1 Merge branch 'master' of github.com:Faerbit/swp 2014-12-15 14:57:50 +01:00
sfroitzheim
efc0ac8938 Merge branch 'master' of https://github.com/Faerbit/swp 2014-12-15 14:25:33 +01:00
sfroitzheim
ea587dc26b Added a simple wall to models/textures 2014-12-15 14:24:11 +01:00
Steffen Fündgens
a65bfdde84 Fixed the trigger skeleton 2014-12-15 13:39:24 +01:00
Steffen Fündgens
f499203f93 Merge branch 'master' of github.com:Faerbit/swp 2014-12-15 13:36:13 +01:00
Steffen Fündgens
1b1d06294b Startet implementing a trigger skeleton. 2014-12-15 13:36:04 +01:00
Faerbit
f108b64acc Now using OpenGL 4.0. 2014-12-15 13:31:31 +01:00
sfroitzheim
f03274082e Fixed Poles of Marble 2014-12-15 13:28:05 +01:00
Faerbit
5640bf137e MVPs are only needed for directional shadows and not for point light shadows (forgot one thing. 2014-12-15 13:23:35 +01:00
Faerbit
0979c51ed0 Merge branch 'master' of github.com:Faerbit/swp 2014-12-15 13:16:36 +01:00
Faerbit
ad567157c4 MVPs are only needed for directional shadows and not for point light shadows. 2014-12-15 13:16:27 +01:00
Steffen Fündgens
acdf1b3285 Merge branch 'master' of github.com:Faerbit/swp 2014-12-15 13:08:47 +01:00
Steffen Fündgens
f681987358 Moved mass from objectType to singular objects. Now loading physics from xml, but with a dummy-box instead of meshes. 2014-12-15 13:08:35 +01:00
Faerbit
cc93cf7259 Removing commented code. 2014-12-15 12:55:48 +01:00
Faerbit
36f7217288 Moved calculation of shadowMVP to the CPU side. 2014-12-15 12:41:30 +01:00
Faerbit
21009d0032 Fixed a parenthesis. 2014-12-15 11:53:31 +01:00
Faerbit
50c4b16367 Moving MVP calculation to the CPU side. 2014-12-15 11:45:31 +01:00
Faerbit
44f2bd953d Replacing buildFrustum with standard glm call. 2014-12-15 11:22:32 +01:00
Faerbit
80cbc58f81 Implemented cube map depth rendering from lighting positions. 2014-12-15 02:09:33 +01:00
Faerbit
7f21f0e872 Limited light sources to 32 instead of 128. 2014-12-15 01:16:43 +01:00
Faerbit
b2aabe68db Made tinyxml source files not executable. 2014-12-15 01:15:08 +01:00
Faerbit
e9a47db962 Made getLights return a pointer to avoid copying around large amounts of light data every frame. 2014-12-15 01:12:51 +01:00
Faerbit
e531ede144 Init graphics with the level instead of passing it to the render function everytime. 2014-12-15 01:05:46 +01:00
Faerbit
5b2233e1b3 Removing torches for better testing. 2014-12-15 01:03:48 +01:00
Steffen Fündgens
bf6d4d69a9 Debugging. Had to comment out the loading of physics because it crashed the programm. 2014-12-12 18:38:12 +01:00
Steffen Fündgens
07d11e2bd1 Added skeleton for trigger loading. Added comments to identify closing brackets. 2014-12-12 18:02:31 +01:00
Steffen Fündgens
330abfcccb Added indexing of the created objects for use in triggers. Added some comments to the loading. 2014-12-12 17:47:33 +01:00
Steffen Fündgens
b4e9218e95 Converter now adds a Dummy-Trigger to the xml. Copy and customize it in the Levelx.xml to create actual triggers. 2014-12-12 17:18:31 +01:00
Steffen Fündgens
8a7f7da0a8 Implemented loading of physical objects. Compositions.xml holds mostly Dummy-Values for those. 2014-12-12 16:52:05 +01:00
Steffen Fündgens
89d3b48c47 Adjusted the name of the marbles texture in Compositions.xml... 2014-12-12 16:28:34 +01:00
Steffen Fündgens
45d4b944c4 Merge branch 'master' of github.com:Faerbit/swp 2014-12-12 16:25:18 +01:00
Steffen Fündgens
b0c371f610 Implemented loading of gloabal lighting. Added physics parameters to Compositions.xml. 2014-12-12 16:24:47 +01:00
Steffen Fündgens
9764bc9d0b Changed fogColor to fogColour. Moved some global Parameters to the xml. 2014-12-12 15:41:17 +01:00
sfroitzheim
cb488035cb Triangulated Faces 2014-12-12 15:16:56 +01:00
sfroitzheim
db9b90d089 Fixed wrong texture name 2014-12-12 15:09:51 +01:00
sfroitzheim
291a0f1899 Additional Marbletexture optimizing 2014-12-12 15:05:53 +01:00
sfroitzheim
d21569e71b Improved marbletexture and added Blenderfile 2014-12-12 14:58:12 +01:00
Steffen Fündgens
8c7648a51e Changed errorChecking in the converter. 2014-12-12 12:31:24 +01:00
Faerbit
f3255f1053 Removing stencil buffer from depthTextures. 2014-12-12 02:19:41 +01:00
Steffen Fündgens
ae0d44c96a changed error checking syntax to make code more compact 2014-12-08 15:48:46 +01:00
Steffen Fündgens
5f16738c39 Added loading of lights, adjusted Compositions.xml and Level0.png to test it. 2014-12-08 15:19:50 +01:00
Steffen Fündgens
3f594ed21f Finished loading of graphical objects, please check if my interpretation of the rotation is corect(copied from entity.cc). No physics loaded yet. 2014-12-08 14:54:27 +01:00
Steffen Fündgens
7f20ef3ec5 Converting unsigned ints to regular ints again, undid that while merging. 2014-12-08 14:24:26 +01:00
Steffen Fündgens
4ad1f0607d merging 2014-12-08 14:19:23 +01:00
Steffen Fündgens
db1092be44 Added error checking for all XML Queries, fixed bugs and continued to implement loading from xml. 2014-12-08 14:10:08 +01:00
Faerbit
6eb52d2dab Reexporting column, because it had no normals. 2014-12-08 13:43:47 +01:00
Faerbit
03e94f0bb0 Converting unsinged ints to regular ints, because tinyxml cannot query for unsigned ones and thus negates the purpose of using unsigned ones. This also causes compiler errors. 2014-12-08 13:33:38 +01:00
Faerbit
3bb584631c One exclamation mark is enough. 2014-12-08 13:28:50 +01:00
Steffen Fündgens
dbaa4f639f Implemented more of the loading from xml 2014-12-05 17:14:43 +01:00
Steffen Fündgens
2a501ac047 Added objectData to Compositions.xml. It contains texture data as of now. 2014-12-05 16:55:17 +01:00
Steffen Fündgens
3339ac208e Changed model and texture names to not start with capital letters. 2014-12-05 16:36:31 +01:00
Steffen Fündgens
780897e1ab Merge branch 'master' of github.com:Faerbit/swp 2014-12-05 16:19:06 +01:00
Steffen Fündgens
cfe29d2830 Fixed the filesytem for the converter. 2014-12-05 16:18:48 +01:00
sfroitzheim
0e2f5ac580 Merge branch 'master' of https://github.com/Faerbit/swp 2014-12-05 15:01:16 +01:00
Steffen Fündgens
ca3b29251e Added Level0.png. 2014-12-05 15:00:46 +01:00
sfroitzheim
cb825a6588 Merge branch 'master' of https://github.com/Faerbit/swp 2014-12-05 14:51:23 +01:00
sfroitzheim
f83bb7ec7d Fixed some display bugs with the column. 2014-12-05 14:49:23 +01:00
Steffen Fündgens
097e1acfbc Merge branch 'master' of github.com:Faerbit/swp 2014-12-05 14:45:57 +01:00
Steffen Fündgens
4d1fbc6045 Implemented error checking for XML. Fixed loading of OBJ-Files. 2014-12-05 14:45:44 +01:00
sfroitzheim
3f9d8a815b Added a movable Block that will be used to be pushed on switches. 2014-12-05 14:39:51 +01:00
sfroitzheim
de47c1bdd6 Changed Columntexture to something better. 2014-12-05 14:39:08 +01:00
Steffen Fündgens
086e13ac8e integrating tinyxml into level, adding lights to compositions 2014-12-05 12:47:02 +01:00
Steffen Fündgens
8108003d52 Merge branch 'master' of github.com:Faerbit/swp 2014-12-05 12:13:45 +01:00
Faerbit
76fd5ade92 Put some code in a function. 2014-12-05 00:57:17 +01:00
Faerbit
7710520c52 Now generating Mipmaps for textures. 2014-12-04 18:58:16 +01:00
Faerbit
72a6e7c3c9 Setting wrap mode of depthTextures to CLAMP_TO_EDGE to remove seams. 2014-12-04 17:39:35 +01:00
Faerbit
0c5dbee654 Implemented cascaded shadow mapping. 2014-12-04 17:19:58 +01:00
Faerbit
a54752a905 Implemented early bailing. 2014-12-04 15:08:08 +01:00
Steffen Fündgens
f218a141fa changed filePath to levelNum 2014-12-04 15:07:31 +01:00
Faerbit
8c427003cd Implemented poisson sampling. 2014-12-04 14:53:07 +01:00
Faerbit
41d8e23c60 Disable culling because it seems to give slightly worse FPS. 2014-12-04 14:46:39 +01:00
Faerbit
1ab7783d41 Improving bias on slopes. 2014-12-04 13:26:06 +01:00
Faerbit
ed960eff53 Adding culling. 2014-12-04 13:23:25 +01:00
Faerbit
aa764cfa39 Changing shadow map sampler from sampler2D to sampler2Dshadow and removing now useless colour texture. 2014-12-04 13:21:20 +01:00
Faerbit
09fc76d26b Changing directional light vector to match origin of the sun on the skysphere texture. 2014-12-04 12:19:39 +01:00
Faerbit
947e9376fb Making framebuffer private again. (Was public for debugging. 2014-12-04 01:22:23 +01:00
Faerbit
27c2248117 Implemented basic shadows for sun light. Also fixed bug with far plane always staying the same. 2014-12-04 01:13:59 +01:00
Faerbit
fca69b547b Always automatically update docker container. 2014-12-03 11:17:24 +01:00
Faerbit
af8f85c3c4 Exiting converter if no input file is given. 2014-12-03 11:09:37 +01:00
Steffen Fündgens
98e78b915e adjusting converter to work with black and white image backgrounds 2014-12-02 13:37:31 +01:00
Steffen Fündgens
a8457d9399 still merging... 2014-12-02 13:19:19 +01:00
Steffen Fündgens
2a9bfbf5da Merged master and converter 2014-12-02 13:17:33 +01:00
Steffen Fündgens
37c1006431 Compositions.xml makes sense now 2014-12-02 13:13:20 +01:00
Faerbit
eb90142e81 Moving shader management completely into graphics. 2014-12-01 17:49:59 +01:00
Faerbit
b49f93afd4 Removing spammy comments. 2014-12-01 17:44:58 +01:00
Faerbit
ef8fbb7296 Adding namespacing. 2014-12-01 17:40:39 +01:00
Faerbit
2d7165da66 Removing useless includes. 2014-12-01 17:40:06 +01:00
Steffen Fündgens
9f4071cef7 implemented all methods of the converter class, needs testing 2014-12-01 14:09:55 +01:00
Faerbit
85215a1a95 Reexporting Block.obj, because normals were missing. 2014-12-01 13:55:47 +01:00
Faerbit
c09b056e84 Removing backup blender files. 2014-12-01 13:54:10 +01:00
Faerbit
272532bb1f Adding OBJ-file load messages for easier debugging. 2014-12-01 13:53:01 +01:00
Faerbit
f0d904a9ff Do not build GLFW examples and tests. 2014-12-01 13:16:04 +01:00
Faerbit
259e6c88f2 Removing useless includes. 2014-12-01 12:58:04 +01:00
Faerbit
cd8bfc77cc Updating glfw to version 3.0.4. 2014-12-01 12:53:19 +01:00
Faerbit
756102138d Revert "Updating glfw." Code was not ready for release.
This reverts commit 81234ca22a.
2014-12-01 12:44:08 +01:00
Faerbit
0333e3c074 Moving application class to it's own file. 2014-12-01 12:41:19 +01:00
Faerbit
63d3c468f3 Let member function use it own class and not the global variable. 2014-12-01 12:33:00 +01:00
Faerbit
21db09af94 Updating glfw. 2014-12-01 12:32:04 +01:00
Faerbit
0865c356be Removing big textures as they are not needed. 2014-11-29 02:06:46 +01:00
Faerbit
e15b9f2f54 Merge branch 'master' of github.com:Faerbit/swp 2014-11-29 01:37:38 +01:00
Faerbit
220b72f85b Removing useless files. 2014-11-29 01:36:59 +01:00
Jasper
1ae3a4c8ae Merge branch 'master' of github.com:Faerbit/swp 2014-11-28 17:07:54 +01:00
Steffen Fündgens
f6bdf5dc32 added example Compositions.xml, implemented most of newComposition() method 2014-11-28 17:05:49 +01:00
Jasper
76307f751f Reduced memory usage of trianglemesh 2014-11-28 17:01:56 +01:00
Faerbit
b1d54533e0 Added skydome blender file. 2014-11-28 16:49:28 +01:00
Faerbit
cc9f2a3916 Moved Blenderfiles out of Levels because of packaging. 2014-11-28 16:47:35 +01:00
Jasper
17c1d38d7e Merge branch 'master' of github.com:Faerbit/swp 2014-11-28 16:46:44 +01:00
Jasper
3fcd677dd5 Added basic Triangle Mesh, pending reading out of .obj and then testing. 2014-11-28 16:46:35 +01:00
sfroitzheim
808a7a0569 Added switch models and textures in 2 seperate parts (switchInner is the movable object - size may needs to be changed in the future) 2014-11-28 16:38:55 +01:00
sfroitzheim
263e9e72af Added all blender files (except marble, as I don't have the newest and smoothed version) 2014-11-28 16:31:50 +01:00
sfroitzheim
348d624564 Fixed origin of block. 2014-11-28 15:28:03 +01:00
Jasper
13e08945df Added a constraint for distances, as such a constraint did not exist in bullet.Why, IDK. 2014-11-28 13:52:03 +01:00
Jasper
742a1848ea Multiple objects now working, for exact implimentation check level.cc and comment in physics.hh. Additionally multiple comments have been added to physics.hh to support the use of these functions 2014-11-28 12:06:17 +01:00
Faerbit
8af201fd2f You can render objects with multiple shaders now. 2014-11-28 00:17:56 +01:00
Faerbit
79fd16ad8d Adding run.sh script 2014-11-27 23:58:33 +01:00
Faerbit
4f4dec9725 Changing paramter order. 2014-11-27 22:02:25 +01:00
Faerbit
232d807aeb Specifying upload path. 2014-11-27 21:53:22 +01:00
Faerbit
56ead969e7 Fixing script not in PATH. 2014-11-27 21:45:19 +01:00
Faerbit
6f4c67503e Fixing stupid mistake. 2014-11-27 21:38:10 +01:00
Faerbit
c0bf4e2d79 Changing file hoster once again to dropbox. 2014-11-27 21:37:09 +01:00
Faerbit
5e457c9d4d Adding module to plowshare. 2014-11-27 13:32:51 +01:00
Faerbit
a608b8ada4 Fixing yaml formatting. 2014-11-27 13:25:18 +01:00
Faerbit
90213dea7e Changing how plowshare is installed. 2014-11-27 13:24:39 +01:00
Faerbit
ee3a07077e Adding -y to apt-get. 2014-11-27 13:20:18 +01:00
Faerbit
5570637cf7 Changing upload target to mediafire and upload tool to plowshare because megacmd sucks. 2014-11-27 13:19:02 +01:00
Faerbit
6e827b5c1c Reverting to upload instead of sync, because sync looks really broken. 2014-11-27 12:55:41 +01:00
Faerbit
99b1064d54 Syncing files instead of forcing them to mega. 2014-11-27 12:36:30 +01:00
Faerbit
f2b960637a Always uploading Windows build. 2014-11-27 12:09:45 +01:00
Faerbit
0b2a8a12f3 Adding zip. 2014-11-27 05:40:53 +01:00
Faerbit
60595084dc Should fix weird bug with CMake. 2014-11-27 05:35:45 +01:00
Faerbit
9c64346163 Adding missing paramter. 2014-11-27 05:31:54 +01:00
Faerbit
f64b81fc85 Upgrading docker image to newest version. 2014-11-27 05:31:17 +01:00
Faerbit
47f05108d2 Trying compilation on circle with docker. 2014-11-27 05:27:19 +01:00
Faerbit
79b76bfba1 Adding dockerfile. 2014-11-27 05:18:40 +01:00
Faerbit
97d1694b38 Fixing another syntax error. 2014-11-27 00:41:21 +01:00
Faerbit
e70416a336 Fixing syntax. 2014-11-27 00:40:46 +01:00
Faerbit
e990c7aff0 Added spaces. 2014-11-27 00:32:44 +01:00
Faerbit
d37d1d4c68 Check if windows build exists before trying to do anything with it. 2014-11-27 00:23:51 +01:00
Faerbit
697b3192df Do not suppress output of apt-get anymore. 2014-11-27 00:16:17 +01:00
Faerbit
2c5175f123 Only copy linux builds to artifacts. 2014-11-27 00:14:56 +01:00
Faerbit
d7c2173a8e Changing root path. 2014-11-26 23:57:33 +01:00
Faerbit
2366ba0ecb Try building linux first. 2014-11-26 23:49:40 +01:00
Faerbit
269f205967 Another try at cross compilation on circle. 2014-11-26 23:46:21 +01:00
Faerbit
c2045d1654 Another try at cross compilation on circle. 2014-11-26 23:44:09 +01:00
Faerbit
702455fbb0 Trying without C++ 11. 2014-11-26 23:29:41 +01:00
Faerbit
c9e8de0105 Adding binutils. 2014-11-26 23:09:04 +01:00
Faerbit
dd4d4b47ea Changing dependencies. 2014-11-26 23:06:51 +01:00
Faerbit
41bd37adb0 Adding 64 bit compiler. 2014-11-26 23:05:01 +01:00
Faerbit
85ed747c38 Enabling error message. 2014-11-26 23:02:55 +01:00
Faerbit
0d207b533a Another try at cross compilation on circle. 2014-11-26 23:02:01 +01:00
Faerbit
d5ebbdbf6a Forgot one windows thing. 2014-11-26 01:58:58 +01:00
Faerbit
3df40fd385 Removing travis.yml because it is useless. 2014-11-26 01:54:00 +01:00
Faerbit
49f498e0a2 Deactivating Windows build for now. 2014-11-26 01:53:37 +01:00
Faerbit
170443b5b8 Another try at cross compilation on circle. 2014-11-26 01:45:24 +01:00
Faerbit
6d7df9b363 Another try at cross compilation on circle. 2014-11-26 01:39:45 +01:00
Faerbit
e336f28f81 Another try at cross compilation on circle. 2014-11-26 00:56:16 +01:00
Faerbit
b7dd35c478 Testing out cross compilation on circle. 2014-11-26 00:43:52 +01:00
Faerbit
b81f7cfa76 Replaced cmake wrapper with own options. 2014-11-26 00:39:54 +01:00
Faerbit
85be96d302 Made Mega upload optional. 2014-11-26 00:39:26 +01:00
Faerbit
1d3ec46893 Do not recreate zip file everytime. 2014-11-26 00:39:03 +01:00
Faerbit
54568d4f6b Another try at Mega deployment. 2014-11-25 22:08:51 +01:00
Faerbit
eb2e7cab7f Another try at Mega deployment. 2014-11-25 22:07:28 +01:00
Faerbit
773219d6bf Limiting circle builds to master branch. 2014-11-25 22:06:55 +01:00
Faerbit
3b9dddfae9 Another try at Mega deployment. 2014-11-25 22:03:32 +01:00
Faerbit
e522df0ff3 Another try at Circle Artifacts. 2014-11-25 21:54:53 +01:00
Faerbit
b7846a9b06 Trying Circle Artifacts. 2014-11-25 21:53:00 +01:00
Faerbit
a635804aa5 Configuring mega upload. 2014-11-25 21:46:37 +01:00
Faerbit
249de19217 Another try at mega deployment. 2014-11-25 21:33:28 +01:00
Faerbit
04dff93bcb Trying out deployment to Mega. 2014-11-25 21:30:57 +01:00
Faerbit
aa66aa4b4f Speeding up build on circle. 2014-11-25 21:21:13 +01:00
Faerbit
d0cf6b2da4 Fixing typo. 2014-11-25 21:11:05 +01:00
Faerbit
841d5d9122 Adding a few dependencies to circle.yml. 2014-11-25 21:10:18 +01:00
Faerbit
b7ab0c990a Adding circle.yml to test Circle CI. 2014-11-25 21:01:11 +01:00
Faerbit
5aaf8f5d9f Changed how windows focus is handled. 2014-11-25 16:01:13 +01:00
Faerbit
67bcbf0398 Changed fog functions a little bit more. Looks nice enough. 2014-11-25 13:54:00 +01:00
Steffen Fündgens
20e7c732e2 skeleton runs now, only xml read/write missing 2014-11-25 13:51:25 +01:00
Faerbit
669e9e0334 Removing global variables from physics, because they are not needed. 2014-11-25 13:38:28 +01:00
Faerbit
51bb3a9868 Changed fog function from exp to linear. 2014-11-25 13:24:02 +01:00
Faerbit
dc06154163 Ignoring another error in bullet. 2014-11-24 20:51:17 +01:00
Faerbit
3f28b0d2e2 More convenience. 2014-11-24 19:54:13 +01:00
Faerbit
8cccd9fc8c Added support for ninja build system and fixed uploading to Mega. 2014-11-24 15:59:59 +01:00
Faerbit
8a96be1275 Added package script. 2014-11-24 15:12:18 +01:00
Steffen Fündgens
91099d91a0 converter now takes the Level to convert as input 2014-11-24 13:21:52 +01:00
Steffen Fündgens
088ae1d494 added tinyxml2 for xml conversion 2014-11-24 13:03:55 +01:00
Faerbit
6530d4084c Starting another travis try. 2014-11-24 02:29:40 +01:00
Faerbit
59b3d68b33 Enabling cross compiling if supported by the current system. 2014-11-24 02:10:25 +01:00
Faerbit
32f6944397 Changed build script a bit. 2014-11-24 01:53:29 +01:00
Faerbit
565351f7d2 Changing vector of objects to vector of pointer of objects for clearer construnction. 2014-11-23 00:59:54 +01:00
Faerbit
4fb383976b Replacing skybox attribute with skydome. 2014-11-23 00:57:16 +01:00
Faerbit
22c9a7a936 Changed skybox to skydome. 2014-11-22 00:39:58 +01:00
Jasper
6e922ec4ec Merge branch 'master' of https://github.com/Faerbit/swp 2014-11-21 16:22:50 +01:00
Jasper
704df860f8 Put Box In Level 2014-11-21 16:22:36 +01:00
Steffen Fündgens
3cca41740a now ignoring files with ~ 2014-11-21 16:09:45 +01:00
Steffen Fündgens
bbbdd2854e Now ignoreing files with ~. 2014-11-21 16:08:03 +01:00
Steffen Fündgens
ad874a9204 Modifying CMakes files to get convert to compile. 2014-11-21 16:07:13 +01:00
Steffen Fündgens
b7834b08a5 created skeletal implementation of png to xml converter 2014-11-21 15:43:27 +01:00
Jasper
2c512acc13 Modified adders in physics to no longer accept float x,y,z but entity/object instead. 2014-11-21 12:56:30 +01:00
Jasper
f063b7ef8b added box in physics 2014-11-21 12:50:11 +01:00
Jasper
dfd6b3789a Normalized body movement (still has float strength to change magnitude) 2014-11-21 12:31:29 +01:00
Faerbit
4039bad9f9 Improved fog a little bit. 2014-11-21 02:46:02 +01:00
Faerbit
c7518a7f8e Added skybox and refined fog a bit. Fog still needs a lot of work. 2014-11-21 02:38:03 +01:00
Faerbit
84a3dbba4f Fixing typo to allow cross compilation. 2014-11-20 23:25:52 +01:00
Faerbit
56a1bfeb76 Removing travis.yml again because it doesn't work. 2014-11-20 21:19:07 +01:00
Faerbit
45bbc07490 Fixing sed command. 2014-11-20 21:16:51 +01:00
Faerbit
6df854bbf5 Now using standard Makefiles instead of Ninja. 2014-11-20 21:15:02 +01:00
Faerbit
f30c5a8850 Fixing installation of ninja again. 2014-11-20 21:08:29 +01:00
Faerbit
a33c9c9bd9 Fixing installation of ninja. 2014-11-20 21:05:15 +01:00
Faerbit
efea5db271 Adding .travis.yml for CI. 2014-11-20 21:02:58 +01:00
Faerbit
d84a4640d5 Removing useless files. 2014-11-20 20:42:40 +01:00
Faerbit
9367026ef0 Implemented simple fog. 2014-11-19 01:58:48 +01:00
Faerbit
1c848f35e6 Now using built-in exp function. 2014-11-19 01:58:25 +01:00
Faerbit
ba77cd68ac Added getCameraPosition to Level because it is used very often. 2014-11-19 01:57:38 +01:00
Faerbit
777bce286d Changing a few lighting paramters for testing. 2014-11-19 00:59:48 +01:00
Faerbit
e8ad41c75b Changing how the intensity is calculated. 2014-11-19 00:59:33 +01:00
Faerbit
7f0a493a01 Moving far plane a bit further. 2014-11-19 00:59:02 +01:00
Faerbit
89a3018221 Clamping diffuse color for more realistic lighting. 2014-11-19 00:46:51 +01:00
Faerbit
d2d5c18090 Removing angular(Velocity) from object class as it is not needed there. 2014-11-18 19:57:58 +01:00
Faerbit
0e3dc33b80 Resized large textures to one third of their size. 2014-11-18 19:39:44 +01:00
Steffen Fündgens
d6ee36c071 changed terrain normals to consider 8 vertices, looks the same 2014-11-18 13:09:55 +01:00
Faerbit
e0c8820bd0 Reexported objects and enabled smooth shading. 2014-11-17 22:03:28 +01:00
Jasper
f2b45b56bf Merge branch 'master' of renault.informatik.rwth-aachen.de:/data/git-repository/students/swpp-ws-14-15/swpp-ws-14-15-c
Conflicts:
	terrain.cc
	terrain.hh
2014-11-17 18:59:00 +01:00
Jasper
7b53bc3a5e Merge branch 'master' of https://github.com/Faerbit/swp 2014-11-17 18:54:44 +01:00
Jasper
00182a509c fixed terrain offset 2014-11-17 18:54:19 +01:00
Fabian Klemp
b116f1c506 Removing useless stuff. 2014-11-17 18:40:54 +01:00
sfroitzheim
463181d484 Merge branch 'master' of https://github.com/Faerbit/swp 2014-11-17 18:31:48 +01:00
sfroitzheim
4b6d6f1a6d Changing marble model. 2014-11-17 18:31:22 +01:00
Fabian Klemp
913ec3c05b Changing sand texture to a seamless sand texture. 2014-11-17 18:18:57 +01:00
Fabian Klemp
5966de6701 Removing update of the light at the center of the marble. 2014-11-17 18:18:15 +01:00
Fabian Klemp
e34e1ad04d Removing light at the center of the marble. 2014-11-17 18:16:27 +01:00
Fabian Klemp
c87d62cae9 Added directional lighting. 2014-11-17 17:51:15 +01:00
Fabian Klemp
e3c8be4d0e Added emtpy constructor. 2014-11-17 17:50:06 +01:00
Fabian Klemp
41ae3908ab Removed rotation paramter from Light constructor as it is not used. 2014-11-17 16:54:17 +01:00
Fabian Klemp
048ab1ceaf Merge branch 'master' of github.com:Faerbit/swp 2014-11-17 16:31:04 +01:00
Fabian Klemp
64f030765f Changing a few spawning values. 2014-11-17 16:31:01 +01:00
Jasper
600b4edc60 Merge branch 'master' of https://github.com/Faerbit/swp 2014-11-17 16:29:10 +01:00
Jasper
6c32a0c35a getting the sizes juuuuuuuust right 2014-11-17 16:28:31 +01:00
Fabian Klemp
f1a2aeb7ab Merge branch 'master' of github.com:Faerbit/swp 2014-11-17 16:16:13 +01:00
Fabian Klemp
f87af894c1 Added alpha shading. 2014-11-17 16:15:56 +01:00
Jasper
362b4f0230 ich bin dumb 2014-11-17 16:14:01 +01:00
Jasper
678c6cf85f merged level.cc 2014-11-17 16:11:39 +01:00
Jasper
1e7c7989de further improving physics and interaction 2014-11-17 16:07:40 +01:00
sfroitzheim
d968277137 Merge branch 'master' of https://github.com/Faerbit/swp 2014-11-17 15:44:31 +01:00
Fabian Klemp
682a25a7ee Adding column and block ruins. 2014-11-17 15:29:38 +01:00
Fabian Klemp
ba5df84895 Added light in the middle of the marble. 2014-11-17 15:19:36 +01:00
Fabian Klemp
976567fd97 Fixed normals. 2014-11-17 15:19:19 +01:00
Fabian Klemp
59c1798ea0 Removed middle Ring. 2014-11-17 15:04:59 +01:00
Fabian Klemp
8d082e203b Basic Marble Model with Textures added. 2014-11-17 14:38:35 +01:00
Fabian Klemp
1b876b4c35 Adding torch. 2014-11-17 14:23:23 +01:00
Jasper
5bb35582a2 Merge branch 'master' of https://github.com/Faerbit/swp 2014-11-17 13:36:35 +01:00
Steffen Fündgens
fb04712bfb Merge branch 'master' of github.com:Faerbit/swp 2014-11-17 13:36:09 +01:00
Steffen Fündgens
9024d29d12 Reorganizing file structure. 2014-11-17 13:36:05 +01:00
Jasper
288d509316 Changed rollForward to accept vector going from camera to bball 2014-11-17 13:21:27 +01:00
sfroitzheim
5c776e56f0 basic marble model with (imperfect) texture 2014-11-14 15:12:13 +01:00
Steffen Fündgens
5d2acc0e53 Fixed a bug in loading the heightmap and added comments 2014-11-04 12:08:47 +01:00
Steffen Fündgens
925eb62831 implemented loading of the heightmap from a png to unsigned int** 2014-11-03 17:19:22 +01:00
403 changed files with 114617 additions and 3480481 deletions

9
.gitignore vendored
View File

@ -1,5 +1,12 @@
binaries
build
Makefile
/Makefile
CMakeLists.txt.user
*.cbp
*~
*.zip
*.db
*.blend1
*.swp
*.pyc
*.o

View File

@ -1,7 +1,9 @@
CMAKE_MINIMUM_REQUIRED (VERSION 2.6)
add_subdirectory(converter)
# project/binary name:
PROJECT(MarbleRaceGroupC)
PROJECT(saxum)
# ACGL setup
SET(ACGL_OPENGL_SUPPORT CORE_32)
@ -51,23 +53,28 @@ ADD_DEFINITIONS(-DNO_SPACE_NAVIGATOR_SUPPORT)
#
# Lets the binary get written to a shared folder (which can be ignored by git).
# Will also set the run directory for QTCreator:
SET(CMAKE_CXX_FLAGS_DEBUG "${CMAKE_CXX_FLAGS} -DSAXUM_DEBUG -g")
SET(CMAKE_C_FLAGS_DEBUG "${CMAKE_C_FLAGS} -DSAXUM_DEBUG -g")
SET(CMAKE_CXX_FLAGS_RELEASE "${CMAKE_CXX_FLAGS} -DNDEBUG")
SET(CMAKE_C_FLAGS_RELEASE "${CMAKE_C_FLAGS} -DNDEBUG")
set(dir ${CMAKE_CURRENT_SOURCE_DIR}/binaries)
set(EXECUTABLE_OUTPUT_PATH ${dir} CACHE PATH "Build directory" FORCE)
# source and header files
FILE(GLOB_RECURSE SOURCE_FILES_SHARED "../shared/*.cc")
FILE(GLOB_RECURSE SOURCE_FILES "${CMAKE_SOURCE_DIR}/*.cc")
SET(SOURCE_FILES ${SOURCE_FILES} ${SOURCE_FILES_SHARED})
FILE(GLOB SOURCE_FILES "${CMAKE_SOURCE_DIR}/game/*.cc")
FILE(GLOB_RECURSE HEADER_FILES_SHARED "../shared/*.hh")
FILE(GLOB_RECURSE HEADER_FILES "${CMAKE_SOURCE_DIR}/*.hh")
SET(HEADER_FILES ${HEADER_FILES} ${HEADER_FILES_SHARED})
FILE(GLOB HEADER_FILES "${CMAKE_SOURCE_DIR}/game/*.hh")
# shader files
FILE(GLOB_RECURSE SHADER_FILES "${CMAKE_SOURCE_DIR}/Shader/*.*")
# tinyxml
# Readme
FILE(GLOB_RECURSE README_FILES "${CMAKE_SOURCE_DIR}/../README.TXT")
FILE(GLOB HEADER_FILES_TINYXML "${CMAKE_SOURCE_DIR}/extern/tinyxml/*.hh")
SET(HEADER_FILES ${HEADER_FILES} ${HEADER_FILES_TINYXML})
FILE(GLOB SOURCE_FILES_TINYXML "${CMAKE_SOURCE_DIR}/extern/tinyxml/*.cc")
SET(SOURCE_FILES ${SOURCE_FILES} ${SOURCE_FILES_TINYXML})
INCLUDE_DIRECTORIES(${CMAKE_SOURCE_DIR}/extern/tinyxml)
#
#
###############################################################################
@ -76,7 +83,6 @@ FILE(GLOB_RECURSE README_FILES "${CMAKE_SOURCE_DIR}/../README.TXT")
#
# all we need for ACGL:
#
ADD_DEFINITIONS(-DACGL_ERROR_LEVEL_EC3)
INCLUDE(${CMAKE_SOURCE_DIR}/extern/acgl/CMakeListsStaticInclude.txt)
#
#
@ -87,6 +93,11 @@ INCLUDE(${CMAKE_SOURCE_DIR}/extern/acgl/CMakeListsStaticInclude.txt)
# GLFW (and some other linker flags)
#
OPTION(GLFW_BUILD_DOCS OFF)
OPTION(GLFW_BUILD_TESTS OFF)
OPTION(GLFW_BUILD_EXAMPLES OFF)
OPTION(GLFW_INSTALL OFF)
FILE(GLOB_RECURSE HEADER_FILES_GLFW "${CMAKE_SOURCE_DIR}/extern/glfw/include/*.h")
INCLUDE_DIRECTORIES(${CMAKE_SOURCE_DIR}/extern/glfw/include)
SET(HEADER_FILES ${HEADER_FILES} ${HEADER_FILES_GLFW})
@ -106,7 +117,7 @@ ENDIF(${CMAKE_SYSTEM_NAME} MATCHES "Darwin")
# Linux:
#
IF(${CMAKE_SYSTEM_NAME} MATCHES "Linux")
SET(LIBRARIES ${LIBRARIES} -lXrandr -lGL -lXi -pthread -lm -lX11 -lXxf86vm)
SET(LIBRARIES ${LIBRARIES} -lXrandr -lGL -lXi -pthread -lm -lX11 -lXxf86vm -ldl)
ENDIF(${CMAKE_SYSTEM_NAME} MATCHES "Linux")
#
#
@ -118,12 +129,33 @@ FILE(GLOB_RECURSE HEADER_FILES_BULLET ${CMAKE_SOURCE_DIR}/extern/bullet/src/*.h)
INCLUDE_DIRECTORIES(${CMAKE_SOURCE_DIR}/extern/bullet/src)
SET(HEADER_FILES ${HEADER_FILES} ${HEADER_FILES_BULLET})
if(${CMAKE_SYSTEM_NAME} MATCHES "Windows")
SET (LIBRARIES ${LIBRARIES} ${CMAKE_SOURCE_DIR}/extern/bullet/build/lib/libBulletDynamics.a)
SET (LIBRARIES ${LIBRARIES} ${CMAKE_SOURCE_DIR}/extern/bullet/build/lib/libBulletCollision.a)
SET (LIBRARIES ${LIBRARIES} ${CMAKE_SOURCE_DIR}/extern/bullet/build/lib/libLinearMath.a)
SET (LIBRARIES ${LIBRARIES} ${CMAKE_SOURCE_DIR}/extern/bullet/build/lib/libBulletSoftBody.a)
SET (LIBRARIES -static ${LIBRARIES} -static-libgcc -static-libstdc++)
else()
SET (LIBRARIES ${LIBRARIES} ${CMAKE_SOURCE_DIR}/extern/bullet/build/src/BulletDynamics/libBulletDynamics.a)
SET (LIBRARIES ${LIBRARIES} ${CMAKE_SOURCE_DIR}/extern/bullet/build/src/BulletCollision/libBulletCollision.a)
SET (LIBRARIES ${LIBRARIES} ${CMAKE_SOURCE_DIR}/extern/bullet/build/src/LinearMath/libLinearMath.a)
SET (LIBRARIES ${LIBRARIES} ${CMAKE_SOURCE_DIR}/extern/bullet/build/src/BulletSoftBody/libBulletSoftBody.a)
endif()
SET (LIBRARIES ${LIBRARIES} ${CMAKE_SOURCE_DIR}/extern/bullet/build/src/BulletDynamics/libBulletDynamics.a)
SET (LIBRARIES ${LIBRARIES} ${CMAKE_SOURCE_DIR}/extern/bullet/build/src/BulletCollision/libBulletCollision.a)
SET (LIBRARIES ${LIBRARIES} ${CMAKE_SOURCE_DIR}/extern/bullet/build/src/LinearMath/libLinearMath.a)
SET (LIBRARIES ${LIBRARIES} ${CMAKE_SOURCE_DIR}/extern/bullet/build/src/BulletSoftBody/libBulletSoftBody.a)
# Include Lua
FILE(GLOB_RECURSE HEADER_FILES_LUA ${CMAKE_SOURCE_DIR}/extern/lua/src/*.h)
INCLUDE_DIRECTORIES(${CMAKE_SOURCE_DIR}/extern/lua/src)
SET(HEADER_FILES ${HEADER_FILES} ${HEADER_FILES_LUA})
FILE(GLOB_RECURSE HEADER_FILES_LUA_BRIDGE ${CMAKE_SOURCE_DIR}/extern/luabridge/*.h)
INCLUDE_DIRECTORIES(${CMAKE_SOURCE_DIR}/extern/luabridge)
SET(HEADER_FILES ${HEADER_FILES} ${HEADER_FILES_LUA_BRIDGE})
SET (LIBRARIES ${LIBRARIES} ${CMAKE_SOURCE_DIR}/extern/lua/src/liblua.a)
ADD_EXECUTABLE(${CMAKE_PROJECT_NAME} ${SOURCE_FILES} ${HEADER_FILES} ${SHADER_FILES} ${README_FILES})
TARGET_LINK_LIBRARIES(${CMAKE_PROJECT_NAME} ${LIBRARIES})
ADD_EXECUTABLE(saxum ${SOURCE_FILES} ${HEADER_FILES})
TARGET_LINK_LIBRARIES(saxum ${LIBRARIES} ${CMAKE_DL_LIBS})

13
Dockerfile Normal file
View File

@ -0,0 +1,13 @@
from ubuntu:trusty
run apt-get update -y
run apt-get upgrade -y
run apt-get install -y build-essential
run apt-get install -y gcc-mingw-w64
run apt-get install -y cmake
run apt-get install -y ninja-build
run apt-get install -y xorg-dev
run apt-get install -y freeglut3-dev
run apt-get install -y zip
run apt-get install -y libreadline6-dev

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

View File

@ -1,8 +0,0 @@
6
-1.0 -1.0 0.0 0.0 0.0 1.0 0.0 0.0
1.0 -1.0 0.0 0.0 0.0 1.0 1.0 0.0
1.0 1.0 0.0 0.0 0.0 1.0 1.0 1.0
-1.0 -1.0 0.0 0.0 0.0 1.0 0.0 0.0
1.0 1.0 0.0 0.0 0.0 1.0 1.0 1.0
-1.0 1.0 0.0 0.0 0.0 1.0 0.0 1.0

File diff suppressed because it is too large Load Diff

Binary file not shown.

Before

Width:  |  Height:  |  Size: 166 KiB

File diff suppressed because it is too large Load Diff

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.1 MiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 344 KiB

471
LICENSE.txt Normal file
View File

@ -0,0 +1,471 @@
All code except the one in extern is subject to the following license:
The MIT License (MIT)
Copyright (c) 2014-2015 Fabian Klemp, Steffen Fündgens, Jasper Manousek, Simon
Froitzheim
Permission is hereby granted, free of charge, to any person obtaining a copy of
this software and associated documentation files (the "Software"), to deal in
the Software without restriction, including without limitation the rights to
use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies
of the Software, and to permit persons to whom the Software is furnished to do
so, subject to the following conditions:
The above copyright notice and this permission notice shall be included in all
copies or substantial portions of the Software.
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
SOFTWARE.
-------------------------------------------------------------------------------------
The code in extern contains the following libraries with their respective
licenses:
-------------------------------------------------------------------------------------
ACGL: ACGL - Aachen Computer Graphics Library
Intended to speed up graphics/OpenGL prototyping. Developed by Lars Krecklau
and Robert Menzel with help from Andreas Neu, Janis Born, Kersten Schuster, Ole
Untzelmann, based on prior work from Lars Krecklau.
Included third-party software:
* Includes lodepng by Lode Vandevenne, unchanged except for the include path in
* lodepng.cpp. lodepng is provided as-is, see license text in the lodepng
* source code. Includes OpenGL loader code created by a modified glLoadGen by
* Jason McKesson. Includes GLM by Christophe Riccio. Includes data type
* definitions from libspnav header originally by John Tsiombikas (see
* mini_spnav.h for details). Includes RGBE/Radiance image import by Bruce
* Walter (code provided 'as-is') minimally adjusted to reduce compiler
* warnings.
Additional documentation:
http://www.graphics.rwth-aachen.de/redmine/projects/acgl/wiki
License:
ACGL is distributed under the terms of the MIT license stated below.
Copyright (C) 2011-2012 Computer Graphics Group RWTH Aachen University
Permission is hereby granted, free of charge, to any person obtaining a copy of
this software and associated documentation files (the "Software"), to deal in
the Software without restriction, including without limitation the rights to
use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies
of the Software, and to permit persons to whom the Software is furnished to do
so, subject to the following conditions:
The above copyright notice and this permission notice shall be included in all
copies or substantial portions of the Software.
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
SOFTWARE.
-------------------------------------------------------------------------------------
GLM License:
The MIT License
Copyright (c) 2005 - 2013 G-Truc Creation
Permission is hereby granted, free of charge, to any person obtaining a copy of
this software and associated documentation files (the "Software"), to deal in
the Software without restriction, including without limitation the rights to
use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies
of the Software, and to permit persons to whom the Software is furnished to do
so, subject to the following conditions:
The above copyright notice and this permission notice shall be included in all
copies or substantial portions of the Software.
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
SOFTWARE.
-------------------------------------------------------------------------------------
Linux Joystick License:
Copyright (C) 2008 Andreas Volz
Permission is hereby granted, free of charge, to any person obtaining a copy of
this software and associated documentation files (the “Software”), to deal in
the Software without restriction, including without limitation the rights to
use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies
of the Software, and to permit persons to whom the Software is furnished to do
so, subject to the following conditions:
The above copyright notice and this permission notice shall be included in all
copies of the Software and its Copyright notices. In addition publicly
documented acknowledgment must be given that this software has been used if no
source code of this software is made available publicly. This includes
acknowledgments in either Copyright notices, Manuals, Publicity and Marketing
documents or any documentation provided with any product containing this
software. This License does not apply to any software that links to the
libraries provided by this software (statically or dynamically), but only to
the software provided.
THE SOFTWARE IS PROVIDED “AS IS”, WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
AUTHORS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN
ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
-------------------------------------------------------------------------------------
TinyXML2 License:
Original code by Lee Thomason (www.grinninglizard.com)
This software is provided 'as-is', without any express or implied
warranty. In no event will the authors be held liable for any
damages arising from the use of this software.
Permission is granted to anyone to use this software for any
purpose, including commercial applications, and to alter it and
redistribute it freely, subject to the following restrictions:
1. The origin of this software must not be misrepresented; you must
not claim that you wrote the original software. If you use this
software in a product, an acknowledgment in the product documentation
would be appreciated but is not required.
2. Altered source versions must be plainly marked as such, and
must not be misrepresented as being the original software.
3. This notice may not be removed or altered from any source
distribution.
-------------------------------------------------------------------------------------
Bullet Physics License:
Bullet Continuous Collision Detection and Physics Library Copyright (c)
2003-2011 Erwin Coumans http://bulletphysics.org
This software is provided 'as-is', without any express or implied warranty. In
no event will the authors be held liable for any damages arising from the use
of this software. Permission is granted to anyone to use this software for any
purpose, including commercial applications, and to alter it and redistribute it
freely, subject to the following restrictions:
1. The origin of this software must not be misrepresented; you must not claim
that you wrote the original software. If you use this software in a product, an
acknowledgment in the product documentation would be appreciated but is not
required. 2. Altered source versions must be plainly marked as such, and must
not be misrepresented as being the original software. 3. This notice may not
be removed or altered from any source distribution.
All files in the extern/bullet/src folder are under this Zlib license. Files in the
Extras and Demos folder may have a different license, see the respective files.
-------------------------------------------------------------------------------------
GLFW License:
Copyright (c) 2002-2006 Marcus Geelnard
Copyright (c) 2006-2010 Camilla Berglund <elmindreda@elmindreda.org>
This software is provided 'as-is', without any express or implied
warranty. In no event will the authors be held liable for any damages
arising from the use of this software.
Permission is granted to anyone to use this software for any purpose,
including commercial applications, and to alter it and redistribute it
freely, subject to the following restrictions:
1. The origin of this software must not be misrepresented; you must not
claim that you wrote the original software. If you use this software
in a product, an acknowledgment in the product documentation would
be appreciated but is not required.
2. Altered source versions must be plainly marked as such, and must not
be misrepresented as being the original software.
3. This notice may not be removed or altered from any source
distribution.
-------------------------------------------------------------------------------------
Lua License:
Copyright © 19942015 Lua.org, PUC-Rio.
Permission is hereby granted, free of charge, to any person obtaining a copy of
this software and associated documentation files (the "Software"), to deal in
the Software without restriction, including without limitation the rights to
use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies
of the Software, and to permit persons to whom the Software is furnished to do
so, subject to the following conditions:
The above copyright notice and this permission notice shall be included in all
copies or substantial portions of the Software.
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
SOFTWARE.
-------------------------------------------------------------------------------------
LuaBridge License:
https://github.com/vinniefalco/LuaBridge
Copyright 2012, Vinnie Falco <vinnie.falco@gmail.com>
Copyright 2007, Nathan Reed
License: The MIT License (http://www.opensource.org/licenses/mit-license.php)
Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal
in the Software without restriction, including without limitation the rights
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
copies of the Software, and to permit persons to whom the Software is
furnished to do so, subject to the following conditions:
The above copyright notice and this permission notice shall be included in all
copies or substantial portions of the Software.
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
SOFTWARE.
-------------------------------------------------------------------------------------
-------------------------------------------------------------------------------------
Licenses for Models and Textures:
-------------------------------------------------------------------------------------
data/textures/sand.png is from
http://opengameart.org/node/18616
Created by Christian Femmer aka Duion.
It is licensed CC-BY 3.0,
see https://creativecommons.org/licenses/by/3.0/ for full license text.
data/textures/hintTexture2.png is based on this.
-------------------------------------------------------------------------------------
data/textures/nightskydome.png was generated with:
http://wwwtyro.github.io/procedural.js/space/ Source code here:
https://github.com/wwwtyro/procedural.js
Seed: NTc3MDMzNjg3ODQ4NQ
-------------------------------------------------------------------------------------
data/textures/skydomeNew.png was modified and originally taken from:
http://www.tutorialsforblender3d.com/Textures/Skys/Sky_Dome_1.html
The author states that the images were created with "Terragen(tm) Classic for
Windows" and according to their license, the textures are free for personal
non-commercial use.
-------------------------------------------------------------------------------------
All textures in data/textures/cgtextures are subject to the following license:
This document is a license agreement ("License") by CGTextures between the user
("You") and CGTextures. Use of the photographs on the CGTextures website is
conditional upon the your agreement to the terms and conditions of purchase set
out below. If you do not agree to these terms, then you must not accept the
terms hereof or purchase, download, access or otherwise use any products from
CGTextures.
CGTextures may revise and update this Agreement at anytime and without notice.
Your continued use of the website after any such changes are posted will
constitute your acceptance of these changes.
LICENSE
CGTextures offers photographs of materials ("Textures") on its website
(www.cgtextures.com) for game developers, special effects artists, graphic
designers and other professions. No payment or royalties are required to use
these Textures. The use of Textures is non-exclusive, royalty free, and you
have the right to modify them for the uses permitted under the clause
Conditions of Use. Most Textures on the CGTextures website are photographed by
CGTextures. A small part is photographed by third party contributors
("Contributors"). CGTextures has separate agreements with these Contributors in
which they grant CGTextures permission to add their Textures to the website.
All terms and conditions in this License apply to both groups of Textures. All
Textures and materials remain in ownership of CGTextures or the Contributor and
the Textures and materials are licensed to you, not sold.
The license granted for the use of the textures gives you no lawful right to
submit, use or otherwise make available the textures in Second Life or
otherwise to Linden Research, Inc. Use of the textures in such manner will be
an infringement of the intellectual property rights if CGTextures and
CGTextures reserves its right to take action to prevent any such infringement.
INTELLECTUAL PROPERTY
All materials including the organization and presentation of these materials on
the CGTextures website are the property of CGTextures or its Contributors and
are protected by intellectual property laws. Some images contain graphic
materials like wallpaper patterns, logos, names or signs. The use of these kind
of images is at your own discretion. The rights for the photo lie with
CGTextures and the photo has been taken in a public space, but using the
patterns, logos or name in your work might not be allowed.
CONDITIONS OF USE
Use of the Textures is only allowed under the following conditions:
- Private or commercial use
- Use in 2D or 3D computer graphics, movies and printed media
- Incorporation in computer games, 3D models
- Selling 3D models bundled with modified versions of the textures, when the
texture is customized for the 3D model
It is NOT permitted to:
- Sell or distribute any of these textures in an unmodified form, or where the
derived product you are selling or distributing is a Texture or a collection
of Textures. IN OTHER WORDS: Do not sell or distribute any of these textures
(modified or not) by itself or in a texture pack, material, clipart, website
theme or scrapbooking pack!
- Bundle the images with software such as paint programs, 3D programs,
photo-kiosk software.
- Reselling or redistributing the images at 'print on demand' services (mugs,
t-shirts, mouse mats, etc)
- Use the textures in graphic design themes or templates sold to multiple
customers on digital market places (this includes templates of websites and
business cards and e-cards).
- Selling or redistributing skins for laptops, phones and other devices,
created with images from CGTextures.
- Stockpile images with the goal of making a local texture library.
- Using a special program (spider, leecher) or script to automatically download
all Textures on the CGTextures website. Users who try to mass download will
be banned from the website automatically.
- Interfere with the security or otherwise abuse, disrupt, place excessive
loads on, or attempt to gain unauthorized access to the CGTextures website or
any system resources or networks connected to this website.
- Release the Textures or derivative products under Open Source Licences
RESALE OR REDISTRIBUTION OF 3D MODELS TEXTURED WITH IMAGES FROM CGTEXTURES
When selling or redistributing a 3D model bundled with textures from CGTextures
please add the following text in the documentation accompanying the model:
"One or more textures on this 3D model have been created with images from
CGTextures.com. These images may not be redistributed by default, please visit
www.cgtextures.com for more information."
STOCKPILING IMAGES
CGTextures is meant as a 'download when you need it' resource. Downloading
complete categories with the goal of making a local copy of the texture
collection is not allowed.
PRIVACY
CGTextures respects the privacy of the personal information of the individuals
with whom we interact. CGTextures does not disclose personal information of our
members or those individuals who visit our website. No newsletters or offers
will be sent to you without your prior consent. Any information submitted by
the buyer will be used solely for the purpose of completing the transaction,
delivering the product and addressing any customer service issues.
We use third-party advertising companies (Google Adsense) to serve ads when you
visit our website. These companies may use information (not including
personally identifying information such as your name, address, email address,
or telephone number) about your visits to this and other websites in order to
provide advertisements about goods and services of interest to you. For more
information about this subject (including on how to "Opt-Out" on advertising
cookies) please visit this link: Google Advertsing and Privacy page
LIMITATION OF LIABILITY
You assume all responsibility and risk for the use of the CGTextures website,
the Textures, materials and information. CGTextures does not represent or
warrant that the site or any content available for downloading through the site
will be free of viruses or similar contaminations of destructive features.
In no event shall CGTextures or any of its affiliates, employees or
Contributors be liable for any incidental, indirect, punitive, exemplary or
consequential damages whatsoever, including damages for loss of profits,
interruption, loss of business information, loss of data, or any other
pecuniary loss in connection with any claim, loss, action, suit, damage or
other proceeding arising under or out of this License, including without
limitation your use of, reliance upon, access to or exploitation of the
CGTextures website, the materials or any part thereof, or any rights granted to
you hereunder, even if we have been advised of the possibility of such damaged,
wheter the action is based on contract, tort (including negligence),
infringement of intellectual property rights or otherwise.
INDEMNIFICATION
You agree to indemnify and hold CGTextures harmless against all claims or
liability asserted against CGTextures arising out of or in connection with any
breach by you or anyone acting on your behalf of any of this License
GENERAL
This License shall be governed by and construed in accordance with the laws of
The Netherlands, without regards to conflict of laws provisions thereto. The
parties consent to the exclusive jurisdiction of the courts of, and venue and
situs in The Netherlands.
TERMINATION
CGTextures reserves the right to terminate the license of the use of the
materials on CGTextures if the user is found in breach of this License and does
not remedy that breach within three (3) days of receiving notice from
CGTextures.
EMAIL
Feel free to email any questions regarding this license or any other questions
about CGTextures to support@cgtextures.com Correspondence can be in English or
Dutch.
ADDRESS
CGTextures.com Krommedijk 231 3312LE Dordrecht The Netherlands
-------------------------------------------------------------------------------------
The logo in logo/ and also contained in the loading
screen(data/textures/loadingscreen.png and
data/textures/loadingscreenContinue.png) is subject to the following license:
Created by Fabian Klemp and Jeremy Theocharis in 2015.
Licensed by CC BY 4.0.
(see https://creativecommons.org/licenses/by/4.0/ for full license text)
-------------------------------------------------------------------------------------
All other models and textures contained in data/textures and data/geometry and
also the corresponding GIMP files in GIMPfiles and the Blender files in
Blenderfiles are subject to the following license:
Created by Simon Froitzheim, Fabian Klemp, Steffen Fündgens and Jasper Manousek in 2014 and 2015.
Licensed by CC BY 4.0.
(see https://creativecommons.org/licenses/by/4.0/ for full license text)

Binary file not shown.

Before

Width:  |  Height:  |  Size: 35 KiB

View File

@ -1,6 +1,24 @@
#Marble Race Game
![Saxum Logo](https://github.com/Faerbit/Saxum/blob/master/logo/saxum_logo_small.png)
This will be a Marble Race Game developed for the Softwarepraktikum at the RWTH Aachen.
This is a Marble Puzzle/Exploration Game developed in the practical course
at the institute for Computer Graphics and Multimedia at the RWTH Aachen.
##Downloads
See [release page](https://github.com/Faerbit/Saxum/releases) for downloads.
##Controls
You can control the camera by moving the mouse. You can zoom with the mouse wheel.
The marble is controlled via the W,A,S and D keys.
To exit the game press escape.
The controls are also listed listed on the loading screen.
##Building
Currently only tested on Linux. To build execute build.sh. Resulting binary will be in binaries.
You can also use the run.sh script to directly start the binary after building it.
## OS X support
In theory this should also compile on OS X. Since I do not own a Mac it is impossible for me to test this.
If you get it compiling, please get in touch with me afterwards.
##Modding
In theory the game is highly moddable. For modding some knowledge in XML and Lua is required. If you're interested in this, please get in touch with me, so I can explain the workflow to you.

View File

@ -1,43 +0,0 @@
#version 150
in vec3 vNormal;
in vec2 vTexCoord;
in vec4 fragPosition;
out vec4 oColor;
uniform sampler2D uTexture;
uniform vec3 ambientColor;
uniform float ambientFactor;
uniform float diffuseFactor;
uniform float specularFactor;
uniform vec3 camera;
uniform float shininess;
uniform int lightCount;
uniform vec3 lightSources[128];
uniform vec3 lightColors[128];
uniform float lightIntensities[128];
void main()
{
vec3 ambientColor = ambientFactor * ambientColor;
vec3 diffuseColor = vec3(0.0, 0.0, 0.0);
vec3 specularColor = vec3(0.0, 0.0, 0.0);
for(int i = 0; i<lightCount; i++) {
float distance = distance(lightSources[i], vec3(fragPosition));
// only take lights into account with meaningful contribution
if (distance > 0.001f) {
vec3 lightVector = normalize(lightSources[i]-vec3(fragPosition));
float intensity = (lightIntensities[i])/(distance);
diffuseColor += dot(normalize(vNormal), lightVector)
*diffuseFactor*intensity*lightColors[i];
vec3 cameraVector = normalize(camera - vec3(fragPosition));
specularColor += clamp(pow((dot((cameraVector+lightVector),normalize(vNormal))/(length(cameraVector+lightVector)*length(normalize(vNormal)))),shininess), 0.0, 1.0)
*specularFactor*intensity*lightColors[i];
}
}
vec3 finalColor = specularColor + diffuseColor + ambientColor;
vec3 texture = texture(uTexture, vTexCoord).rgb;
oColor = vec4(finalColor*texture, 1.0 );
}

View File

@ -1,21 +0,0 @@
#version 150
uniform mat4 modelMatrix;
uniform mat4 viewMatrix;
uniform mat4 projectionMatrix;
in vec3 aPosition;
in vec3 aNormal;
in vec2 aTexCoord;
out vec3 vNormal;
out vec2 vTexCoord;
out vec4 fragPosition;
void main()
{
fragPosition = modelMatrix * vec4(aPosition, 1.0);
vNormal = inverse(transpose(mat3(modelMatrix))) * aNormal;
vTexCoord = aTexCoord;
gl_Position = projectionMatrix * viewMatrix * modelMatrix * vec4(aPosition, 1.0);
}

BIN
blenderfiles/Gate.blend Normal file

Binary file not shown.

Binary file not shown.

Binary file not shown.

BIN
blenderfiles/brazier.blend Normal file

Binary file not shown.

BIN
blenderfiles/exit.blend Normal file

Binary file not shown.

BIN
blenderfiles/hint.blend Normal file

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

BIN
blenderfiles/skydome.blend Normal file

Binary file not shown.

Binary file not shown.

Binary file not shown.

BIN
blenderfiles/torch.blend Normal file

Binary file not shown.

View File

@ -5,19 +5,52 @@ then
rm -rf build
rm -rf binaries
rm -rf extern/bullet/build
cd extern/lua; make clean; cd ../..
exit
fi
cmake="cmake"
if [[ $1 == "windows" ]]
then
cmake="cmake -DCMAKE_SYSTEM_NAME='Windows' -DCMAKE_FIND_ROOT_PATH='/usr/bin:/usr/x86_64-w64-mingw32' -DCMAKE_CXX_COMPILER='x86_64-w64-mingw32-g++' -DCMAKE_C_COMPILER='x86_64-w64-mingw32-gcc'"
fi
buildType=$2
if [[ $2 == "" ]]
then
buildType="Debug"
fi
currentDir=$(pwd)
threads=$(($(nproc)+1))
#building lua
cd extern/lua/
if [[ $1 == "windows" ]]
then
make CC=x86_64-w64-mingw32-gcc mingw
else
make linux
fi
cd $currentDir
#building bullet
cd extern/bullet/
mkdir -p build
cd build
cmake ..
make -j$threads
if hash ninja 2>/dev/null
then
$cmake -DBUILD_DEMOS=0 -DBUILD_EXTRAS=0 -DCMAKE_BUILD_TYPE=$buildType -DBUILD_SHARED_LIBS=0 -GNinja ..
ninja
else
$cmake -DBUILD_DEMOS=0 -DBUILD_EXTRAS=0 -DCMAKE_BUILD_TYPE=$buildType -DBUILD_SHARED_LIBS=0 ..
make -j$threads
fi
cd $currentDir
@ -25,5 +58,11 @@ cd $currentDir
mkdir -p build
cd build
cmake ..
make -j$threads
if hash ninja 2>/dev/null
then
$cmake -DGLFW_BUILD_EXAMPLES=0 -DGLFW_BUILD_TESTS=0 -DCMAKE_BUILD_TYPE=$buildType -DBUILD_SHARED_LIBS=0 -GNinja ..
ninja
else
$cmake -DGLFW_BUILD_EXAMPLES=0 -DGLFW_BUILD_TESTS=0 -DCMAKE_BUILD_TYPE=$buildType -DBUILD_SHARED_LIBS=0 ..
make -j$threads
fi

32
circle.yml Normal file
View File

@ -0,0 +1,32 @@
general:
branches:
only:
- master
machine:
services:
- docker
dependencies:
override:
# Set up dropbox_uploader
- curl "https://raw.githubusercontent.com/andreafabrizi/Dropbox-Uploader/master/dropbox_uploader.sh" -o dropbox_uploader.sh
- chmod +x dropbox_uploader.sh
- echo $db_uploader > ~/.dropbox_uploader
database:
override:
test:
override:
- docker run -v ~/Saxum:/saxum/saxum -w=/saxum/saxum -u=$(id -u) faerbit/saxum ./package.sh linux
- docker run -v ~/Saxum:/saxum/saxum -w=/saxum/saxum -u=$(id -u) faerbit/saxum ./package.sh windows
- if [ -f Saxum_Windows.zip ]; then cp Saxum_Windows.zip $CIRCLE_ARTIFACTS; fi
- if [ -f Saxum_Linux.zip ]; then cp Saxum_Linux.zip $CIRCLE_ARTIFACTS; fi
deployment:
master:
branch: master
commands:
- if [ -f Saxum_Windows.zip ]; then ./dropbox_uploader.sh -p upload Saxum_Windows.zip /; fi
- if [ -f Saxum_Linux.zip ]; then ./dropbox_uploader.sh -p upload Saxum_Linux.zip /; fi

59
converter/CMakeLists.txt Normal file
View File

@ -0,0 +1,59 @@
CMAKE_MINIMUM_REQUIRED (VERSION 2.6)
PROJECT(Converter)
###############################################################################
#
# Compiler settings, can be simpler if only one compiler should be used.
#
#Enable c++11
if ("${CMAKE_CXX_COMPILER_ID}" STREQUAL "Clang")
#on clang we need to find out the version to set stdlib if needed
# if clang version is less than 3.3 ( XCode 5.0) you need to set the stdlib
#SET(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -stdlib=libc++")
MESSAGE("Clangversion ${CLANG_VERSION_STRING}")
SET(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -std=c++11")
elseif ("${CMAKE_CXX_COMPILER_ID}" STREQUAL "GNU")
SET(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -std=c++0x")
elseif ("${CMAKE_CXX_COMPILER_ID}" STREQUAL "Intel")
SET(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -std=c++0x")
elseif ("${CMAKE_CXX_COMPILER_ID}" STREQUAL "MSVC")
# using Visual Studio C++
endif()
# enable warnings
IF(MSVC)
# for msvc also set multiple processors
SET(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} /MP /W3")
SET(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} /MP /W3")
ELSE(MSVC)
ADD_DEFINITIONS(-Wall)
ENDIF(MSVC)
ADD_DEFINITIONS(-DNO_SPACE_NAVIGATOR_SUPPORT)
# for lodepng
SET(ACGL_BASE_DIR "${CMAKE_SOURCE_DIR}/extern/acgl")
FILE(GLOB_RECURSE HEADER_FILES_LODEPNG "${ACGL_BASE_DIR}/include/lodepng/*.h")
FILE(GLOB_RECURSE SOURCE_FILES_LODEPNG "${ACGL_BASE_DIR}/src/lodepng/*.cpp")
# for tinyxml
FILE(GLOB_RECURSE HEADER_FILES_TINYXML "${CMAKE_SOURCE_DIR}/extern/tinyxml/*.hh")
FILE(GLOB_RECURSE SOURCE_FILES_TINYXML "${CMAKE_SOURCE_DIR}/extern/tinyxml/*.cc")
SET(HEADER_FILES_EXTERN ${HEADER_FILES_LODEPNG} ${HEADER_FILES_TINYXML})
SET(SOURCE_FILES_EXTERN ${SOURCE_FILES_LODEPNG} ${SOURCE_FILES_TINYXML})
INCLUDE_DIRECTORIES("${ACGL_BASE_DIR}/include")
INCLUDE_DIRECTORIES("${CMAKE_SOURCE_DIR}/extern/tinyxml")
#
#
###############################################################################
FILE(GLOB_RECURSE SOURCE_FILES_CONV "${CMAKE_SOURCE_DIR}/converter/*.cc")
SET(SOURCE_FILES_CONV ${SOURCE_FILES_CONV} ${SOURCE_FILES_EXTERN})
FILE(GLOB_RECURSE HEADER_FILES_CONV "${CMAKE_SOURCE_DIR}/converter/*.hh")
SET(HEADER_FILES_CONV ${HEADER_FILES_CONV} ${HEADER_FILES_EXTERN})
ADD_EXECUTABLE(converter ${SOURCE_FILES_CONV} ${HEADER_FILES_CONV})

481
converter/converter.cc Normal file
View File

@ -0,0 +1,481 @@
#include "converter.hh"
#include <fstream>
#include <sys/stat.h>
#include <iostream>
using namespace tinyxml2;
Converter::Converter(std::string levelPath, std::string levelName, std::string compositionsPath){
xmlFile = levelPath + levelName + ".xml";
//Load Compositions
std::string stringCompositions = compositionsPath;
const char* charCompositions = stringCompositions.c_str();
compositions->LoadFile(charCompositions);
if (compositions->ErrorID()!=0){
printf("Could not open Compositions!\n");
exit(-1);
}
//Create a backup of the current Level png file, if no backup exists
std::string pngFile = levelPath + levelName + ".png";
std::string backupPNG = levelPath + levelName + "Backup.png";
struct stat buf;
if(stat(backupPNG.c_str(), &buf) != 0){
std::ifstream src(pngFile, std::ios::binary);
std::ofstream dst(backupPNG, std::ios::binary);
dst << src.rdbuf();
}
//Load the Level xml file
nextID.push_back(0);
nextID.push_back(1);
for (int i=0; i<256; i++){
for (int j=0; j<256; j++){
idUsed[i][j] = false;
}
}
idUsed[0][0] = true;
const char* charXmlFile = xmlFile.c_str();
doc->LoadFile(charXmlFile);
//check if the xml file did not already exist
if (doc->ErrorID()!=0){
std::string answer;
printf("Could not open xml, do you want to create a new xml? (y/n)\n");
std::cin >> answer;
while(answer.compare("y") != 0 && answer.compare("n") != 0){
printf("Answer with y or n\n");
std::cin >> answer;
}
if(answer.compare("n") == 0){
exit(-1);
}
printf("Creating new xml.\n");
//Create all global Lightingparameters with Dummy-Values
std::vector<XMLElement*> lightAttributes;
lightAttributes.push_back(doc->NewElement("xOffset"));
lightAttributes.push_back(doc->NewElement("yOffset"));
lightAttributes.push_back(doc->NewElement("zOffset"));
lightAttributes.push_back(doc->NewElement("rColour"));
lightAttributes.push_back(doc->NewElement("gColour"));
lightAttributes.push_back(doc->NewElement("bColour"));
lightAttributes.push_back(doc->NewElement("intensity"));
XMLElement* rColourAmbient = doc->NewElement("rColour");
XMLElement* gColourAmbient = doc->NewElement("gColour");
XMLElement* bColourAmbient = doc->NewElement("bColour");
XMLElement* rColourFogDay = doc->NewElement("rColour");
XMLElement* gColourFogDay = doc->NewElement("gColour");
XMLElement* bColourFogDay = doc->NewElement("bColour");
XMLElement* alphaFogDay = doc->NewElement("alpha");
XMLElement* rColourFogRise = doc->NewElement("rColour");
XMLElement* gColourFogRise = doc->NewElement("gColour");
XMLElement* bColourFogRise = doc->NewElement("bColour");
XMLElement* alphaFogRise = doc->NewElement("alpha");
XMLElement* rColourFogNight = doc->NewElement("rColour");
XMLElement* gColourFogNight = doc->NewElement("gColour");
XMLElement* bColourFogNight = doc->NewElement("bColour");
XMLElement* alphaFogNight = doc->NewElement("alpha");
lightAttributes[0]->SetText("-1.0");
lightAttributes[1]->SetText("1.5");
lightAttributes[2]->SetText("1.0");
lightAttributes[3]->SetText("1.0");
lightAttributes[4]->SetText("1.0");
lightAttributes[5]->SetText("0.9");
lightAttributes[6]->SetText("0.2");
rColourAmbient->SetText("1.0");
gColourAmbient->SetText("1.0");
bColourAmbient->SetText("1.0");
rColourFogDay->SetText("0.57");
gColourFogDay->SetText("0.80");
bColourFogDay->SetText("0.98");
alphaFogDay->SetText("1.0");
rColourFogRise->SetText("0.88");
gColourFogRise->SetText("0.38");
bColourFogRise->SetText("0.38");
alphaFogRise->SetText("1.0");
rColourFogNight->SetText("0.09");
gColourFogNight->SetText("0.1");
bColourFogNight->SetText("0.24");
alphaFogNight->SetText("1.0");
XMLElement* ambientLight = doc->NewElement("ambientLight");
XMLElement* fogColourDay = doc->NewElement("fogColourDay");
XMLElement* fogColourRise = doc->NewElement("fogColourRise");
XMLElement* fogColourNight = doc->NewElement("fogColourNight");
XMLElement* directionalLight = doc->NewElement("directionalLight");
ambientLight->InsertEndChild(rColourAmbient);
ambientLight->InsertEndChild(gColourAmbient);
ambientLight->InsertEndChild(bColourAmbient);
fogColourDay->InsertEndChild(rColourFogDay);
fogColourDay->InsertEndChild(gColourFogDay);
fogColourDay->InsertEndChild(bColourFogDay);
fogColourDay->InsertEndChild(alphaFogDay);
fogColourRise->InsertEndChild(rColourFogRise);
fogColourRise->InsertEndChild(gColourFogRise);
fogColourRise->InsertEndChild(bColourFogRise);
fogColourRise->InsertEndChild(alphaFogRise);
fogColourNight->InsertEndChild(rColourFogNight);
fogColourNight->InsertEndChild(gColourFogNight);
fogColourNight->InsertEndChild(bColourFogNight);
fogColourNight->InsertEndChild(alphaFogNight);
for(int i=0;i<7;i++){
directionalLight->InsertEndChild(lightAttributes[i]);
}
doc->InsertEndChild(ambientLight);
doc->InsertEndChild(fogColourDay);
doc->InsertEndChild(fogColourRise);
doc->InsertEndChild(fogColourNight);
doc->InsertEndChild(directionalLight);
//Create global terrain Element
XMLElement* terrain = doc->NewElement("terrain");
XMLElement* terrainHeightmap = doc->NewElement("heightmap");
XMLElement* terrainTexture = doc->NewElement("texture");
XMLElement* terrainAmbientFactor = doc->NewElement("ambientFactor");
XMLElement* terrainDiffuseFactor = doc->NewElement("diffuseFactor");
XMLElement* terrainSpecularFactor = doc->NewElement("specularFactor");
XMLElement* terrainShininess = doc->NewElement("shininess");
std::string heightmapPath = "heightmap" + levelName + ".png";
terrainHeightmap->SetText(heightmapPath.c_str());
terrainTexture->SetText("terrainTexture.png");
terrainAmbientFactor->SetText("0.1");
terrainDiffuseFactor->SetText("0.8");
terrainSpecularFactor->SetText("0.2");
terrainShininess->SetText("1.0");
terrain->InsertEndChild(terrainHeightmap);
terrain->InsertEndChild(terrainTexture);
terrain->InsertEndChild(terrainAmbientFactor);
terrain->InsertEndChild(terrainDiffuseFactor);
terrain->InsertEndChild(terrainSpecularFactor);
terrain->InsertEndChild(terrainShininess);
doc->InsertEndChild(terrain);
//Create global skydome Element
XMLElement* skydome = doc->NewElement("skydome");
XMLElement* skydomeModel = doc->NewElement("model");
XMLElement* skydomeTexture = doc->NewElement("texture");
XMLElement* skydomeTextureNight = doc->NewElement("nightTexture");
skydomeModel->SetText("skydome.obj");
skydomeTexture->SetText("skydome.png");
skydomeTextureNight->SetText("skydomeNight.png");
skydome->InsertEndChild(skydomeModel);
skydome->InsertEndChild(skydomeTexture);
skydome->InsertEndChild(skydomeTextureNight);
doc->InsertEndChild(skydome);
//Create global physics parameters
XMLElement* physics = doc->NewElement("physics");
XMLElement* playerFriction = doc->NewElement("friction");
XMLElement* playerStrength = doc->NewElement("strength");
playerFriction->SetText("0.9");
playerStrength->SetText("300.0");
physics->InsertEndChild(playerFriction);
physics->InsertEndChild(playerStrength);
doc->InsertEndChild(physics);
//Create positionConstraint Dummy
XMLElement* positionConstraint = doc->NewElement("positionConstraint");
XMLElement* positionConstraintObjectNum = doc->NewElement("objectNum");
XMLElement* positionConstraintXPos = doc->NewElement("xPosition");
XMLElement* positionConstraintYPos = doc->NewElement("yPosition");
XMLElement* positionConstraintZPos = doc->NewElement("zPosition");
XMLElement* positionConstraintStrength = doc->NewElement("strength");
positionConstraintObjectNum->SetText("0");
positionConstraintXPos->SetText("0.0");
positionConstraintYPos->SetText("0.0");
positionConstraintZPos->SetText("0.0");
positionConstraintStrength->SetText("100.0");
positionConstraint->InsertEndChild(positionConstraintObjectNum);
positionConstraint->InsertEndChild(positionConstraintXPos);
positionConstraint->InsertEndChild(positionConstraintYPos);
positionConstraint->InsertEndChild(positionConstraintZPos);
positionConstraint->InsertEndChild(positionConstraintStrength);
doc->InsertEndChild(positionConstraint);
}else{
//Create a backup of the current Level xml file
std::string backupXML = levelPath + levelName + "Backup.xml";
std::ifstream src(xmlFile, std::ios::binary);
std::ofstream dst(backupXML, std::ios::binary);
dst << src.rdbuf();
//Check what IDs are already in use
XMLElement* thisComposition = doc->FirstChildElement("composition");
for(; thisComposition; thisComposition=thisComposition->NextSiblingElement("composition")){
int idGreen = queryInt(thisComposition, "idGreen");
int idBlue = queryInt(thisComposition, "idBlue");
idUsed[idGreen][idBlue] = true;
}
}
}
Converter::Converter(){
}
Converter::~Converter(){
}
std::vector<int> Converter::newComposition(int type, float posX, float posZ){
int oldIDGreen, oldIDBlue;
bool alreadyExists = false;
XMLElement* thisComposition = doc->FirstChildElement("composition");
for(; thisComposition; thisComposition=thisComposition->NextSiblingElement("composition")){
float xPos = queryFloat(thisComposition, "xPos");
float zPos = queryFloat(thisComposition, "zPos");
int typeID = queryInt(thisComposition, "typeID");
if(xPos == posX && zPos == posZ && typeID == type){
if(alreadyExists){
std::cout << "At the position " << xPos << "," << zPos << " multiple compositions with the ID " << typeID << " exist in the xml." << std::endl;
exit(-1);
}
oldIDGreen = queryInt(thisComposition, "idGreen");
oldIDBlue = queryInt(thisComposition, "idBlue");
alreadyExists = true;
}
}
if (alreadyExists){
if (! idUsed[oldIDGreen][oldIDBlue]){
std::cout << "The composition with ID " << oldIDGreen << "," << oldIDBlue << " exists in the xml but the converter thinks it does not." << std::endl;
exit(-1);
}
std::vector<int> oldID;
oldID.push_back(oldIDGreen);
oldID.push_back(oldIDBlue);
return oldID;
}
bool full = false;
while(idUsed[nextID[0]][nextID[1]]){
nextID[1] += 1;
if (nextID[1] == 256){
nextID[1] = 0;
nextID[0] +=1;
if (nextID[0] == 256){
if(full){
printf("Can not have more than 65535 compositions.\n");
exit(-1);
}
nextID[0] = 0;
full = true;
}
}
}
XMLElement* newComposition = doc->NewElement("composition");
XMLElement* typeID = doc->NewElement("typeID");
XMLElement* idBlue = doc->NewElement("idBlue");
XMLElement* idGreen = doc->NewElement("idGreen");
XMLElement* zPos = doc->NewElement("zPos");
XMLElement* yOffset = doc->NewElement("yOffset");
XMLElement* xPos = doc->NewElement("xPos");
XMLElement* manualPos = doc->NewElement("manualPos");
XMLElement* zRot = doc->NewElement("zRot");
XMLElement* yRot = doc->NewElement("yRot");
XMLElement* xRot = doc->NewElement("xRot");
XMLElement* scale = doc->NewElement("scale");
typeID->SetText(std::to_string(type).c_str());
idBlue->SetText(std::to_string(nextID[1]).c_str());
idGreen->SetText(std::to_string(nextID[0]).c_str());
zPos->SetText(std::to_string(posZ).c_str());
yOffset->SetText("0.0");
xPos->SetText(std::to_string(posX).c_str());
manualPos->SetText("false");
zRot->SetText("0.0");
yRot->SetText("0.0");
xRot->SetText("0.0");
scale->SetText("1.0");
newComposition->InsertFirstChild(typeID);
newComposition->InsertFirstChild(idBlue);
newComposition->InsertFirstChild(idGreen);
newComposition->InsertFirstChild(zPos);
newComposition->InsertFirstChild(yOffset);
newComposition->InsertFirstChild(xPos);
newComposition->InsertFirstChild(manualPos);
newComposition->InsertFirstChild(zRot);
newComposition->InsertFirstChild(yRot);
newComposition->InsertFirstChild(xRot);
newComposition->InsertFirstChild(scale);
//Create a Dummy-trigger
XMLElement* trigger = doc->NewElement("trigger");
newComposition->InsertEndChild(trigger);
XMLElement* name = doc->NewElement("name");
XMLElement* undo = doc->NewElement("undo");
XMLElement* xPosition = doc->NewElement("xPosition");
XMLElement* yPosition = doc->NewElement("yPosition");
XMLElement* zPosition = doc->NewElement("zPosition");
XMLElement* targetIdGreen = doc->NewElement("targetIdGreen");
XMLElement* targetIdBlue = doc->NewElement("targetIdBlue");
XMLElement* distance = doc->NewElement("distance");
XMLElement* isBiggerThan = doc->NewElement("isBiggerThan");
XMLElement* objectNum = doc->NewElement("objectNum");
XMLElement* luaScript = doc->NewElement("luaScript");
XMLElement* toChangeIdGreen = doc->NewElement("toChangeIdGreen");
XMLElement* toChangeIdBlue = doc->NewElement("toChangeIdBlue");
XMLElement* toChangeObjNum = doc->NewElement("toChangeObjNum");
name->SetText("-");
undo->SetText("false");
xPosition->SetText("0");
yPosition->SetText("0");
zPosition->SetText("0");
targetIdGreen->SetText("-");
targetIdBlue->SetText("-");
distance->SetText("1.0");
isBiggerThan->SetText("false");
objectNum->SetText("0");
luaScript->SetText("-");
toChangeIdGreen->SetText("0");
toChangeIdBlue->SetText("0");
toChangeObjNum->SetText("0");
trigger->InsertEndChild(name);
trigger->InsertEndChild(undo);
trigger->InsertEndChild(xPosition);
trigger->InsertEndChild(yPosition);
trigger->InsertEndChild(zPosition);
trigger->InsertEndChild(targetIdGreen);
trigger->InsertEndChild(targetIdBlue);
trigger->InsertEndChild(distance);
trigger->InsertEndChild(isBiggerThan);
trigger->InsertEndChild(objectNum);
trigger->InsertEndChild(luaScript);
trigger->InsertEndChild(toChangeIdGreen);
trigger->InsertEndChild(toChangeIdBlue);
trigger->InsertEndChild(toChangeObjNum);
idUsed[nextID[0]][nextID[1]] = true;
doc->InsertFirstChild(newComposition);
return nextID;
}
void Converter::updateComposition(int idG, int idB, float posX, float posZ){
XMLElement* thisComposition = doc->FirstChildElement("composition");
bool compositionExists = false;
for(; thisComposition; thisComposition=thisComposition->NextSiblingElement("composition")){
int idGreen = queryInt(thisComposition, "idGreen");
int idBlue = queryInt(thisComposition, "idBlue");
if(idGreen == idG && idBlue == idB){
if (compositionExists){
std::cout << "The ID " << idGreen << "," << idBlue << " is used for multiple compositions in the xml." << std::endl;
exit(-1);
}
bool manualPos = queryBool(thisComposition, "manualPos");
if(!manualPos){
thisComposition->FirstChildElement("xPos")->SetText(std::to_string(posX).c_str());
thisComposition->FirstChildElement("zPos")->SetText(std::to_string(posZ).c_str());
}
compositionExists = true;
}
}
if(!compositionExists){
std::cout << "A composition has the ID " << idG << "," << idB << " and the position " << posX << "," << posZ << " in the png, but does not exist in the xml." << std::endl;
exit(-1);
}
}
void Converter::deleteComposition(int idG, int idB){
XMLElement* thisComposition = doc->FirstChildElement("composition");
for(; thisComposition; thisComposition=thisComposition->NextSiblingElement("composition")){
int idGreen = queryInt(thisComposition, "idGreen");
int idBlue = queryInt(thisComposition, "idBlue");
if(idGreen == idG && idBlue == idB){
doc->DeleteChild(thisComposition);
}
}
}
void Converter::save(){
const char* charXmlFile = xmlFile.c_str();
doc->SaveFile(charXmlFile);
}
float Converter::queryFloat(XMLElement* element, const char* attribute){
XMLElement* attributeElement = element->FirstChildElement(attribute);
if (attributeElement == NULL){
std::cout << "XMLError: Attribute " << attribute << " does not exist." << std::endl;
exit(-1);
}
float ret;
errorCheck(attributeElement->QueryFloatText(&ret));
return ret;
}
float Converter::queryFloat(XMLDocument*& element, const char* attribute){
XMLElement* attributeElement = element->FirstChildElement(attribute);
if (attributeElement == NULL){
std::cout << "XMLError: Attribute " << attribute << " does not exist." << std::endl;
exit(-1);
}
float ret;
errorCheck(attributeElement->QueryFloatText(&ret));
return ret;
}
int Converter::queryInt(XMLElement* element, const char* attribute){
XMLElement* attributeElement = element->FirstChildElement(attribute);
if (attributeElement == NULL){
std::cout << "XMLError: Attribute " << attribute << " does not exist." << std::endl;
exit(-1);
}
int ret;
errorCheck(attributeElement->QueryIntText(&ret));
return ret;
}
int Converter::queryInt(XMLDocument*& element, const char* attribute){
XMLElement* attributeElement = element->FirstChildElement(attribute);
if (attributeElement == NULL){
std::cout << "XMLError: Attribute " << attribute << " does not exist." << std::endl;
exit(-1);
}
int ret;
errorCheck(attributeElement->QueryIntText(&ret));
return ret;
}
bool Converter::queryBool(XMLElement* element, const char* attribute){
XMLElement* attributeElement = element->FirstChildElement(attribute);
if (attributeElement == NULL){
std::cout << "XMLError: Attribute " << attribute << " does not exist." << std::endl;
exit(-1);
}
bool ret;
errorCheck(attributeElement->QueryBoolText(&ret));
return ret;
}
bool Converter::queryBool(XMLDocument*& element, const char* attribute){
XMLElement* attributeElement = element->FirstChildElement(attribute);
if (attributeElement == NULL){
std::cout << "XMLError: Attribute " << attribute << " does not exist." << std::endl;
exit(-1);
}
bool ret;
errorCheck(attributeElement->QueryBoolText(&ret));
return ret;
}
void Converter::errorCheck(XMLError error){
if (error) {
printf("XMLError: ");
if (error == XML_WRONG_ATTRIBUTE_TYPE) {
printf("Wrong attribute type.\n");
}
else if (error == XML_NO_ATTRIBUTE) {
printf("No attribute.\n");
}
else if (error == XML_CAN_NOT_CONVERT_TEXT) {
printf("Can not convert text.\n");
}
else if (error == XML_NO_TEXT_NODE) {
printf("No text.\n");
}
else {
printf("Unknown error.\n");
}
exit(-1);
}
}

33
converter/converter.hh Normal file
View File

@ -0,0 +1,33 @@
#ifndef CONVERTER_INCLUDED
#define CONVERTER_INCLUDED
#include <vector>
#include <string>
#include "tinyxml2.hh"
using namespace tinyxml2;
class Converter {
public:
Converter(std::string levelPath, std::string levelName, std::string compositionsPath);
Converter();
~Converter();
void updateComposition(int idG, int idB, float posX, float posZ); //updates the position of a composition
std::vector<int> newComposition(int type, float posX, float posZ); //creates a new composition and returns its ID
void deleteComposition(int idG, int idB);
void save(); //writes the xml to file
private:
std::vector<int> nextID;
bool idUsed[256][256];
std::string xmlFile;
XMLDocument* doc = new XMLDocument();
XMLDocument* compositions = new XMLDocument();
float queryFloat(XMLElement* element, const char* attribute);
float queryFloat(XMLDocument*& element, const char* attribute);
int queryInt(XMLElement* element, const char* attribute);
int queryInt(XMLDocument*& element, const char* attribute);
bool queryBool(XMLElement* element, const char* attribute);
bool queryBool(XMLDocument*& element, const char* attribute);
void errorCheck(XMLError error);
};
#endif

109
converter/main.cc Normal file
View File

@ -0,0 +1,109 @@
#include <lodepng/lodepng.h>
#include <string>
#include "converter.hh"
#include <vector>
#include <iostream>
#include "tinyxml2.hh"
using namespace tinyxml2;
int main( int argc, char *argv[] ){
if (argc <= 1){
std::cout << "Converter needs the levels name (Level1) as input." << std::endl;
exit(-1);
}
printf("Initializing.\n");
std::string levelString = argv[1];
bool idFound[256][256];
for (int i=0; i<256; i++){
for (int j=0; j<256; j++){
idFound[i][j] = false;
}
}
XMLDocument* config = new XMLDocument();
const char* xmlFile = "../data/config.xml";
config->LoadFile(xmlFile);
if (config->ErrorID()!=0){
printf("Could not open config.xml!\n");
exit(-1);
}
XMLElement* xmlLevelPath = config->FirstChildElement("levelXmlPath");
if (xmlLevelPath == NULL){
std::cout << "XMLError: Attribute levelXmlPath does not exist." << std::endl;
exit(-1);
}
const char* charLevelPath = xmlLevelPath->GetText();
if(charLevelPath == NULL){
std::cout << "XMLError: Attribute levelXmlPath could not be loaded." << std::endl;
exit(-1);
}
std::string levelPath = charLevelPath;
XMLElement* xmlCompositionsPath = config->FirstChildElement("compositionsPath");
if (xmlCompositionsPath == NULL){
std::cout << "XMLError: Attribute compositionsPath does not exist." << std::endl;
exit(-1);
}
const char* charCompositionsPath = xmlCompositionsPath->GetText();
if(charCompositionsPath == NULL){
std::cout << "XMLError: Attribute compositionsPath could not be loaded." << std::endl;
exit(-1);
}
std::string compositionsPath = charCompositionsPath;
Converter conv = Converter("../" + levelPath, levelString, "../" + compositionsPath);
//read the setup png
printf("Loading the png.\n");
std::string filePath = "../" + levelPath + levelString + ".png";
std::vector<unsigned char> image; //the raw pixels
unsigned int width, height;
unsigned error = lodepng::decode(image, width, height, filePath);
if (error) {
std::cout << "decoder error " << error << ": " << lodepng_error_text(error) << std::endl;
std::cout << "Converter needs the levels name (Level1) as input." << std::endl;
exit(-1);
}
printf("Iterating over the png.\n");
//iterate over all pixels of the image
for(unsigned int columnNum = 0; columnNum < width; columnNum++){
for(unsigned int rowNum = 0; rowNum < height; rowNum++){
unsigned int pixel = (rowNum*width+columnNum)*4;
//if there is a composition here, adjust the xml and image
if(image[pixel]!=0 && image[pixel]!=255){
if(image[pixel+1]==0 && image[pixel+2]==0){//composition has no ID
std::vector<int> newID;
newID = conv.newComposition(image[pixel], 0.5+columnNum-0.5*width, 0.5+rowNum-0.5*height);
idFound[newID[0]][newID[1]] = true;
image[pixel+1] = newID[0];
image[pixel+2] = newID[1];
}else{//composition has an ID
conv.updateComposition(image[pixel+1], image[pixel+2], 0.5+columnNum-0.5*width, 0.5+rowNum-0.5*height);
idFound[image[pixel+1]][image[pixel+2]] = true;
}
}
}
}
printf("Writing IDs back to the png.\n");
//write ids back to the setup png
error = lodepng::encode(filePath, image, width, height);
if(error) {
std::cout << "encoder error " << error << ": "<< lodepng_error_text(error) << std::endl;
exit(-1);
}
printf("Deleting obsolete Compositions (Can take a minute).\n");
//delete compositions that were not in the png anymore
for (int i=0; i<256; i++){
for (int j=0; j<256; j++){
if (! idFound[i][j]){
conv.deleteComposition(i,j);
}
}
}
//save the xml
conv.save();
}

42
data/config.xml Normal file
View File

@ -0,0 +1,42 @@
<resolution>
<width>1024</width>
<height>786</height>
</resolution>
<!-- The resolution settings get ignored if you choose windowed fullscreen. -->
<windowedFullscreen>true</windowedFullscreen>
<!-- Reduce the following parameters if you game runs too slow.
If you feel your game runs smooth enough you can increase them to
increase the visual quality. -->
<shadowCubeSize>512</shadowCubeSize>
<farPlane>150.0</farPlane>
<maxShadowRenderCount>3</maxShadowRenderCount>
<!-- The following stuff is used to configure the application.
Do not change unless you know what you are doing. -->
<compositionsPath>data/levels/Compositions.xml</compositionsPath>
<shaderPath>data/shader/</shaderPath>
<geometryPath>data/geometry/</geometryPath>
<texturePath>data/textures/</texturePath>
<scriptPath>data/levels/scripts/</scriptPath>
<heightmapPath>data/levels/</heightmapPath>
<levelXmlPath>data/levels/</levelXmlPath>
<levelXML>Level1.xml</levelXML>
<!-- must be located in the textures directory -->
<loadingScreen>
<screenPath>loadingscreen.png</screenPath>
<screenContinuePath>loadingscreenContinue.png</screenContinuePath>
</loadingScreen>

1025
data/geometry/block.obj Normal file

File diff suppressed because it is too large Load Diff

7306
data/geometry/brazier.obj Normal file

File diff suppressed because it is too large Load Diff

298
data/geometry/column.obj Normal file
View File

@ -0,0 +1,298 @@
# Blender v2.72 (sub 0) OBJ File: 'ruins_column.blend'
# www.blender.org
o Cylinder
v 0.000000 -1.000000 -1.000000
v 0.000000 1.000000 -1.000000
v 0.195090 -1.000000 -0.980785
v 0.195090 1.000000 -0.980785
v 0.382683 -1.000000 -0.923880
v 0.382683 1.000000 -0.923880
v 0.555570 -1.000000 -0.831470
v 0.555570 1.000000 -0.831470
v 0.707107 -1.000000 -0.707107
v 0.707107 1.000000 -0.707107
v 0.831470 -1.000000 -0.555570
v 0.831470 1.000000 -0.555570
v 0.923880 -1.000000 -0.382683
v 0.923880 1.000000 -0.382683
v 0.980785 -1.000000 -0.195090
v 0.980785 1.000000 -0.195090
v 1.000000 -1.000000 -0.000000
v 1.000000 1.000000 -0.000000
v 0.980785 -1.000000 0.195090
v 0.980785 1.000000 0.195090
v 0.923880 -1.000000 0.382683
v 0.923880 1.000000 0.382683
v 0.831470 -1.000000 0.555570
v 0.831470 1.000000 0.555570
v 0.707107 -1.000000 0.707107
v 0.707107 1.000000 0.707107
v 0.555570 -1.000000 0.831470
v 0.555570 1.000000 0.831470
v 0.382683 -1.000000 0.923880
v 0.382683 1.000000 0.923880
v 0.195090 -1.000000 0.980785
v 0.195090 1.000000 0.980785
v -0.000000 -1.000000 1.000000
v -0.000000 1.000000 1.000000
v -0.195091 -1.000000 0.980785
v -0.195091 1.000000 0.980785
v -0.382684 -1.000000 0.923879
v -0.382684 1.000000 0.923879
v -0.555571 -1.000000 0.831469
v -0.555571 1.000000 0.831469
v -0.707107 -1.000000 0.707106
v -0.707107 1.000000 0.707106
v -0.831470 -1.000000 0.555570
v -0.831470 1.000000 0.555570
v -0.923880 -1.000000 0.382683
v -0.923880 1.000000 0.382683
v -0.980785 -1.000000 0.195089
v -0.980785 1.000000 0.195089
v -1.000000 -1.000000 -0.000001
v -1.000000 1.000000 -0.000001
v -0.980785 -1.000000 -0.195091
v -0.980785 1.000000 -0.195091
v -0.923879 -1.000000 -0.382684
v -0.923879 1.000000 -0.382684
v -0.831469 -1.000000 -0.555571
v -0.831469 1.000000 -0.555571
v -0.707106 -1.000000 -0.707108
v -0.707106 1.000000 -0.707108
v -0.555569 -1.000000 -0.831470
v -0.555569 1.000000 -0.831470
v -0.382682 -1.000000 -0.923880
v -0.382682 1.000000 -0.923880
v -0.195089 -1.000000 -0.980786
v -0.195089 1.000000 -0.980786
vt 0.445551 0.665886
vt 0.445551 1.000293
vt 0.404755 1.000293
vt 0.404755 0.665886
vt 0.364742 1.000293
vt 0.364742 0.665886
vt 0.327051 1.000293
vt 0.327051 0.665886
vt 0.293130 1.000293
vt 0.293130 0.665886
vt 0.264283 1.000293
vt 0.264283 0.665886
vt 0.264046 0.665593
vt 0.264046 1.000000
vt 0.230125 1.000000
vt 0.230125 0.665593
vt 0.192434 1.000000
vt 0.192434 0.665593
vt 0.152421 1.000000
vt 0.152421 0.665593
vt 0.111625 1.000000
vt 0.111625 0.665593
vt 0.071612 1.000000
vt 0.071612 0.665593
vt 0.033921 1.000000
vt 0.033921 0.665593
vt 0.000000 1.000000
vt 0.000000 0.665593
vt 1.172897 0.665327
vt 1.173156 0.999734
vt 1.139235 0.999801
vt 1.138976 0.665395
vt 1.101544 0.999877
vt 1.101285 0.665470
vt 1.061532 0.999957
vt 1.061273 0.665550
vt 1.020735 1.000038
vt 1.020476 0.665632
vt 0.980723 1.000118
vt 0.980464 0.665712
vt 0.943032 1.000193
vt 0.942772 0.665787
vt 0.909111 1.000261
vt 0.908852 0.665855
vt 0.880263 1.000319
vt 0.880004 0.665913
vt 0.846342 1.000387
vt 0.846083 0.665980
vt 0.808651 1.000462
vt 0.808392 0.666056
vt 0.768638 1.000542
vt 0.768379 0.666136
vt 0.727842 1.000624
vt 0.727583 0.666217
vt 0.687830 1.000704
vt 0.687570 0.666297
vt 0.650139 1.000779
vt 0.649879 0.666372
vt 0.616217 1.000847
vt 0.615958 0.666440
vt 0.587370 1.000904
vt 0.587111 0.666498
vt 0.586023 0.665886
vt 0.586023 1.000293
vt 0.557176 1.000293
vt 0.557176 0.665886
vt 0.523255 1.000293
vt 0.523255 0.665886
vt 0.186708 0.665593
vt 0.146696 0.659199
vt 0.109005 0.646655
vt 0.075084 0.628445
vt 0.046237 0.605268
vt 0.023571 0.578014
vt 0.007959 0.547732
vt 0.000000 0.515584
vt 0.000000 0.482806
vt 0.007959 0.450658
vt 0.023571 0.420376
vt 0.046236 0.393122
vt 0.075084 0.369945
vt 0.109005 0.351735
vt 0.146696 0.339191
vt 0.186708 0.332797
vt 0.227505 0.332797
vt 0.267517 0.339191
vt 0.305209 0.351735
vt 0.339130 0.369945
vt 0.367977 0.393122
vt 0.390642 0.420376
vt 0.406254 0.450658
vt 0.414213 0.482806
vt 0.414213 0.515584
vt 0.406254 0.547731
vt 0.390642 0.578014
vt 0.367977 0.605268
vt 0.339130 0.628445
vt 0.305209 0.646655
vt 0.267518 0.659199
vt 0.227505 0.665593
vt 0.485564 0.665886
vt 0.485564 1.000293
vt 0.000000 0.182787
vt 0.000000 0.150010
vt 0.007959 0.117862
vt 0.023571 0.087579
vt 0.046236 0.060326
vt 0.075084 0.037148
vt 0.109005 0.018938
vt 0.146696 0.006395
vt 0.186708 0.000000
vt 0.227505 0.000000
vt 0.267517 0.006395
vt 0.305208 0.018938
vt 0.339129 0.037148
vt 0.367977 0.060326
vt 0.390642 0.087579
vt 0.406254 0.117862
vt 0.414213 0.150009
vt 0.414213 0.182787
vt 0.406254 0.214935
vt 0.390642 0.245217
vt 0.367977 0.272471
vt 0.339129 0.295648
vt 0.305208 0.313859
vt 0.267517 0.326402
vt 0.146696 0.326402
vt 0.109005 0.313858
vt 0.075084 0.295648
vt 0.046236 0.272471
vt 0.023571 0.245217
vt 0.007959 0.214935
vn 0.000000 -0.685700 -0.727900
vn 0.000000 0.685700 -0.727900
vn 0.142000 0.685700 -0.713900
vn 0.142000 -0.685700 -0.713900
vn 0.278500 0.685700 -0.672500
vn 0.278500 -0.685700 -0.672500
vn 0.404400 0.685700 -0.605200
vn 0.404400 -0.685700 -0.605200
vn 0.514700 0.685700 -0.514700
vn 0.514700 -0.685700 -0.514700
vn 0.605200 0.685700 -0.404400
vn 0.605200 -0.685700 -0.404400
vn 0.672500 0.685700 -0.278500
vn 0.672500 -0.685700 -0.278500
vn 0.713900 0.685700 -0.142000
vn 0.713900 -0.685700 -0.142000
vn 0.727900 0.685700 0.000000
vn 0.727900 -0.685700 0.000000
vn 0.713900 0.685700 0.142000
vn 0.713900 -0.685700 0.142000
vn 0.672500 0.685700 0.278500
vn 0.672500 -0.685700 0.278500
vn 0.605200 0.685700 0.404400
vn 0.605200 -0.685700 0.404400
vn 0.514700 0.685700 0.514700
vn 0.514700 -0.685700 0.514700
vn 0.404400 0.685700 0.605200
vn 0.404400 -0.685700 0.605200
vn 0.278500 0.685700 0.672500
vn 0.278500 -0.685700 0.672500
vn 0.142000 0.685700 0.713900
vn 0.142000 -0.685700 0.713900
vn 0.000000 0.685700 0.727900
vn 0.000000 -0.685700 0.727900
vn -0.142000 0.685700 0.713900
vn -0.142000 -0.685700 0.713900
vn -0.278500 0.685700 0.672500
vn -0.278500 -0.685700 0.672500
vn -0.404400 0.685700 0.605200
vn -0.404400 -0.685700 0.605200
vn -0.514700 0.685700 0.514700
vn -0.514700 -0.685700 0.514700
vn -0.605200 0.685700 0.404400
vn -0.605200 -0.685700 0.404400
vn -0.672500 0.685700 0.278500
vn -0.672500 -0.685700 0.278500
vn -0.713900 0.685700 0.142000
vn -0.713900 -0.685700 0.142000
vn -0.727900 0.685700 0.000000
vn -0.727900 -0.685700 0.000000
vn -0.713900 0.685700 -0.142000
vn -0.713900 -0.685700 -0.142000
vn -0.672500 0.685700 -0.278500
vn -0.672500 -0.685700 -0.278500
vn -0.605200 0.685700 -0.404400
vn -0.605200 -0.685700 -0.404400
vn -0.514700 0.685700 -0.514700
vn -0.514700 -0.685700 -0.514700
vn -0.404400 0.685700 -0.605200
vn -0.404400 -0.685700 -0.605200
vn -0.278500 0.685700 -0.672500
vn -0.278500 -0.685700 -0.672500
vn -0.142000 0.685700 -0.713900
vn -0.142000 -0.685700 -0.713900
s 1
f 1/1/1 2/2/2 4/3/3 3/4/4
f 3/4/4 4/3/3 6/5/5 5/6/6
f 5/6/6 6/5/5 8/7/7 7/8/8
f 7/8/8 8/7/7 10/9/9 9/10/10
f 9/10/10 10/9/9 12/11/11 11/12/12
f 11/13/12 12/14/11 14/15/13 13/16/14
f 13/16/14 14/15/13 16/17/15 15/18/16
f 15/18/16 16/17/15 18/19/17 17/20/18
f 17/20/18 18/19/17 20/21/19 19/22/20
f 19/22/20 20/21/19 22/23/21 21/24/22
f 21/24/22 22/23/21 24/25/23 23/26/24
f 23/26/24 24/25/23 26/27/25 25/28/26
f 25/29/26 26/30/25 28/31/27 27/32/28
f 27/32/28 28/31/27 30/33/29 29/34/30
f 29/34/30 30/33/29 32/35/31 31/36/32
f 31/36/32 32/35/31 34/37/33 33/38/34
f 33/38/34 34/37/33 36/39/35 35/40/36
f 35/40/36 36/39/35 38/41/37 37/42/38
f 37/42/38 38/41/37 40/43/39 39/44/40
f 39/44/40 40/43/39 42/45/41 41/46/42
f 41/46/42 42/45/41 44/47/43 43/48/44
f 43/48/44 44/47/43 46/49/45 45/50/46
f 45/50/46 46/49/45 48/51/47 47/52/48
f 47/52/48 48/51/47 50/53/49 49/54/50
f 49/54/50 50/53/49 52/55/51 51/56/52
f 51/56/52 52/55/51 54/57/53 53/58/54
f 53/58/54 54/57/53 56/59/55 55/60/56
f 55/60/56 56/59/55 58/61/57 57/62/58
f 57/63/58 58/64/57 60/65/59 59/66/60
f 59/66/60 60/65/59 62/67/61 61/68/62
f 4/69/3 2/70/2 64/71/63 62/72/61 60/73/59 58/74/57 56/75/55 54/76/53 52/77/51 50/78/49 48/79/47 46/80/45 44/81/43 42/82/41 40/83/39 38/84/37 36/85/35 34/86/33 32/87/31 30/88/29 28/89/27 26/90/25 24/91/23 22/92/21 20/93/19 18/94/17 16/95/15 14/96/13 12/97/11 10/98/9 8/99/7 6/100/5
f 63/101/64 64/102/63 2/2/2 1/1/1
f 61/68/62 62/67/61 64/102/63 63/101/64
f 1/103/1 3/104/4 5/105/6 7/106/8 9/107/10 11/108/12 13/109/14 15/110/16 17/111/18 19/112/20 21/113/22 23/114/24 25/115/26 27/116/28 29/117/30 31/118/32 33/119/34 35/120/36 37/121/38 39/122/40 41/123/42 43/124/44 45/125/46 47/126/48 49/85/50 51/84/52 53/127/54 55/128/56 57/129/58 59/130/60 61/131/62 63/132/64

39
data/geometry/exit.obj Normal file
View File

@ -0,0 +1,39 @@
# Blender v2.73 (sub 0) OBJ File: 'exit.blend'
# www.blender.org
o Plane
v -3.440849 -0.000000 2.993210
v 3.435127 -0.000000 2.993210
v -3.440849 -0.000000 -2.993210
v 3.435127 -0.000000 -2.993210
v -3.440849 -0.215618 2.993210
v 3.435127 -0.215618 2.993210
v -3.440849 -0.215618 -2.993210
v 3.435127 -0.215618 -2.993210
v 0.196185 -0.238611 0.123684
vt 0.999900 0.000100
vt 0.999900 0.999900
vt 0.000100 0.999900
vt 0.999981 0.000019
vt 0.000019 0.000019
vt 0.000019 0.036035
vt 0.999981 0.036035
vt 0.000100 0.000100
vn 0.000000 1.000000 0.000000
vn 0.000000 -1.000000 0.000000
vn 0.000000 0.000000 -1.000000
vn 1.000000 0.000000 0.000000
vn 0.000000 0.000000 1.000000
vn -1.000000 0.000000 0.000000
s off
f 2/1/1 4/2/1 3/3/1
f 7/3/2 8/2/2 6/1/2
f 8/4/3 7/5/3 3/6/3
f 6/6/4 8/7/4 4/4/4
f 5/6/5 6/7/5 2/4/5
f 7/4/6 5/5/6 1/6/6
f 1/8/1 2/1/1 3/3/1
f 5/8/2 7/3/2 6/1/2
f 4/7/3 8/4/3 3/6/3
f 2/5/4 6/6/4 4/4/4
f 1/5/5 5/6/5 2/4/5
f 3/7/6 7/4/6 1/6/6

52
data/geometry/gate.obj Normal file
View File

@ -0,0 +1,52 @@
# Blender v2.72 (sub 0) OBJ File: ''
# www.blender.org
o Wall_Cube.000
v 0.537791 3.045326 -3.045326
v 0.537791 -3.045326 -3.045326
v 0.537791 -3.045326 3.045326
v -0.537791 3.045326 3.045326
v -0.537791 -3.045326 3.045326
v -0.537791 -3.045326 -3.045326
v 0.537791 3.045326 3.045326
v -0.537791 3.045326 -3.045326
vt 1.000000 0.000000
vt 0.000000 -1.000000
vt 1.000000 -1.000000
vt -1.000000 0.000000
vt -1.000000 -1.000000
vt 0.000000 0.000000
vt 0.039666 1.000166
vt 0.000334 0.000166
vt 0.039666 0.000166
vt 0.960071 -0.007992
vt 0.993184 0.992028
vt 0.959736 0.992008
vt 0.002338 0.996941
vt 0.032522 -0.000041
vt 0.032299 0.996953
vt 0.995477 0.006970
vt 0.952679 0.987810
vt 0.952679 0.006970
vt 0.000334 1.000166
vt 0.993520 -0.007972
vt 0.002561 -0.000052
vt 0.995477 0.987810
vn 1.000000 0.000000 0.000000
vn -1.000000 0.000000 0.000000
vn 0.000000 0.000000 -1.000000
vn 0.000000 -0.000000 1.000000
vn 0.000000 -1.000000 -0.000000
vn 0.000000 1.000000 0.000000
s off
f 1/1/1 3/2/1 2/3/1
f 4/4/2 6/2/2 5/5/2
f 7/6/1 3/2/1 1/1/1
f 8/6/2 6/2/2 4/4/2
f 8/7/3 2/8/3 6/9/3
f 7/10/4 5/11/4 3/12/4
f 2/13/5 5/14/5 6/15/5
f 8/16/6 7/17/6 1/18/6
f 1/19/3 2/8/3 8/7/3
f 4/20/4 5/11/4 7/10/4
f 3/21/5 5/14/5 2/13/5
f 4/22/6 7/17/6 8/16/6

41
data/geometry/hint.obj Normal file
View File

@ -0,0 +1,41 @@
# Blender v2.72 (sub 0) OBJ File: 'hint.blend'
# www.blender.org
o Plane
v -1.000000 0.000000 1.000000
v 1.000000 0.000000 1.000000
v -1.000000 0.000000 -1.000000
v 1.000000 0.000000 -1.000000
v -1.000000 -0.040124 1.000000
v 1.000000 -0.040124 1.000000
v -1.000000 -0.040124 -1.000000
v 1.000000 -0.040124 -1.000000
vt 0.999906 0.000094
vt 0.011632 0.011458
vt 0.031989 0.030429
vt 0.988368 0.993659
vt 0.978931 0.022798
vt 0.002935 0.993659
vt 0.968011 0.974689
vt 0.023910 0.970956
vt 0.000100 0.999900
vt 0.999900 0.999900
vt 0.000100 0.000100
vn 0.000000 0.000000 -1.000000
vn 1.000000 0.000000 0.000000
vn 0.000000 0.000000 1.000000
vn -1.000000 0.000000 0.000000
vn 0.000000 1.000000 0.000000
vn 0.000000 -1.000000 0.000000
s off
f 8/1/1 7/2/1 3/3/1
f 6/4/2 8/1/2 4/5/2
f 5/6/3 6/4/3 2/7/3
f 7/2/4 5/6/4 1/8/4
f 4/5/1 8/1/1 3/3/1
f 2/7/2 6/4/2 4/5/2
f 1/8/3 5/6/3 2/7/3
f 3/3/4 7/2/4 1/8/4
f 3/9/5 2/1/5 4/10/5
f 6/1/6 7/9/6 8/10/6
f 1/11/5 2/1/5 3/9/5
f 5/11/6 7/9/6 6/1/6

File diff suppressed because it is too large Load Diff

View File

@ -0,0 +1,54 @@
# Blender v2.72 (sub 0) OBJ File: 'movableBlock.blend'
# www.blender.org
o Cube_Cube.001
v -0.781204 -0.781204 0.781204
v -0.781204 -0.781204 -0.781204
v 0.781204 -0.781204 -0.781204
v 0.781204 -0.781204 0.781204
v -0.781204 0.781204 0.781204
v -0.781204 0.781204 -0.781204
v 0.781204 0.781204 -0.781204
v 0.781204 0.781204 0.781204
vt 0.004724 0.007107
vt 0.995276 0.007107
vt 0.995276 0.997658
vt 0.008245 0.004505
vt 0.994929 0.004505
vt 0.994930 0.991189
vt 0.011069 0.007349
vt 0.992064 0.007349
vt 0.992064 0.988345
vt 0.001602 0.000731
vt 0.999816 0.001904
vt 1.000026 0.998811
vt 0.006324 0.995789
vt 0.006324 0.008395
vt 0.993718 0.008394
vt 0.005204 0.997859
vt 0.005204 0.005051
vt 0.998012 0.005050
vt 0.998012 0.997858
vt 0.004724 0.997658
vt 0.008245 0.991189
vt 0.011069 0.988345
vt 0.001813 0.999704
vt 0.993718 0.995789
vn -1.000000 0.000000 0.000000
vn 0.000000 0.000000 -1.000000
vn 1.000000 0.000000 0.000000
vn 0.000000 0.000000 1.000000
vn 0.000000 -1.000000 0.000000
vn 0.000000 1.000000 0.000000
s off
f 6/1/1 2/2/1 1/3/1
f 7/4/2 3/5/2 2/6/2
f 8/7/3 4/8/3 3/9/3
f 5/10/4 1/11/4 4/12/4
f 2/13/5 3/14/5 4/15/5
f 7/16/6 6/17/6 5/18/6
f 8/19/6 7/16/6 5/18/6
f 5/20/1 6/1/1 1/3/1
f 6/21/2 7/4/2 2/6/2
f 7/22/3 8/7/3 3/9/3
f 8/23/4 5/10/4 4/12/4
f 1/24/5 2/13/5 4/15/5

1011
data/geometry/ruinsBlock.obj Normal file

File diff suppressed because it is too large Load Diff

View File

@ -0,0 +1,388 @@
# Blender v2.72 (sub 0) OBJ File: 'ruins_column.blend'
# www.blender.org
o Cylinder
v 0.000000 -1.000000 -1.000000
v 0.000000 1.000000 -1.000000
v 0.195090 -1.000000 -0.980785
v 0.195090 1.000000 -0.980785
v 0.382683 -1.000000 -0.923880
v 0.382683 1.000000 -0.923880
v 0.555570 -1.000000 -0.831470
v 0.555570 1.000000 -0.831470
v 0.707107 -1.000000 -0.707107
v 0.707107 1.000000 -0.707107
v 0.831470 -1.000000 -0.555570
v 0.831470 1.000000 -0.555570
v 0.923880 -1.000000 -0.382683
v 0.923880 1.000000 -0.382683
v 0.980785 -1.000000 -0.195090
v 0.980785 1.000000 -0.195090
v 1.000000 -1.000000 -0.000000
v 1.000000 1.000000 -0.000000
v 0.980785 -1.000000 0.195090
v 0.980785 1.000000 0.195090
v 0.923880 -1.000000 0.382683
v 0.923880 1.000000 0.382683
v 0.831470 -1.000000 0.555570
v 0.831470 1.000000 0.555570
v 0.707107 -1.000000 0.707107
v 0.707107 1.000000 0.707107
v 0.555570 -1.000000 0.831470
v 0.555570 1.000000 0.831470
v 0.382683 -1.000000 0.923880
v 0.382683 1.000000 0.923880
v 0.195090 -1.000000 0.980785
v 0.195090 1.000000 0.980785
v -0.000000 -1.000000 1.000000
v -0.000000 1.000000 1.000000
v -0.195091 -1.000000 0.980785
v -0.195091 1.000000 0.980785
v -0.382684 -1.000000 0.923879
v -0.382684 1.000000 0.923879
v -0.555571 -1.000000 0.831469
v -0.555571 1.000000 0.831469
v -0.707107 -1.000000 0.707106
v -0.707107 1.000000 0.707106
v -0.831470 -1.000000 0.555570
v -0.831470 1.000000 0.555570
v -0.923880 -1.000000 0.382683
v -0.923880 1.000000 0.382683
v -0.980785 -1.000000 0.195089
v -0.980785 1.000000 0.195089
v -1.000000 -1.000000 -0.000001
v -1.000000 1.000000 -0.000001
v -0.980785 -1.000000 -0.195091
v -0.980785 1.000000 -0.195091
v -0.923879 -1.000000 -0.382684
v -0.923879 1.000000 -0.382684
v -0.831469 -1.000000 -0.555571
v -0.831469 1.000000 -0.555571
v -0.707106 -1.000000 -0.707108
v -0.707106 1.000000 -0.707108
v -0.555569 -1.000000 -0.831470
v -0.555569 1.000000 -0.831470
v -0.382682 -1.000000 -0.923880
v -0.382682 1.000000 -0.923880
v -0.195089 -1.000000 -0.980786
v -0.195089 1.000000 -0.980786
vt 0.445551 1.000293
vt 0.404755 1.000293
vt 0.404755 0.665886
vt 0.364742 1.000293
vt 0.364742 0.665886
vt 0.327051 1.000293
vt 0.327051 0.665886
vt 0.293130 1.000293
vt 0.264283 1.000293
vt 0.264283 0.665886
vt 0.264046 1.000000
vt 0.230125 1.000000
vt 0.230125 0.665593
vt 0.192434 1.000000
vt 0.192434 0.665593
vt 0.152421 1.000000
vt 0.152421 0.665593
vt 0.111625 1.000000
vt 0.071612 1.000000
vt 0.071612 0.665593
vt 0.033921 1.000000
vt 0.033921 0.665593
vt 0.000000 1.000000
vt 0.000000 0.665593
vt 1.173156 0.999734
vt 1.139235 0.999801
vt 1.138976 0.665395
vt 1.101544 0.999877
vt 1.101285 0.665470
vt 1.061532 0.999957
vt 1.061273 0.665550
vt 1.020735 1.000038
vt 1.020476 0.665632
vt 0.980723 1.000118
vt 0.980464 0.665712
vt 0.943032 1.000193
vt 0.942772 0.665787
vt 0.909111 1.000261
vt 0.908852 0.665855
vt 0.880263 1.000319
vt 0.880004 0.665913
vt 0.846342 1.000387
vt 0.846083 0.665980
vt 0.808651 1.000462
vt 0.808392 0.666056
vt 0.768638 1.000542
vt 0.768379 0.666136
vt 0.727842 1.000624
vt 0.727583 0.666217
vt 0.687830 1.000704
vt 0.687570 0.666297
vt 0.650139 1.000779
vt 0.649879 0.666372
vt 0.616217 1.000847
vt 0.615958 0.666440
vt 0.587370 1.000904
vt 0.587111 0.666498
vt 0.586023 1.000293
vt 0.557176 1.000293
vt 0.557176 0.665886
vt 0.523255 1.000293
vt 0.523255 0.665886
vt 0.227505 0.665593
vt 0.186708 0.665593
vt 0.227505 0.332797
vt 0.485564 1.000293
vt 0.445551 0.665886
vt 0.485564 0.665886
vt 0.267517 0.006395
vt 0.007959 0.214935
vt 0.109005 0.018938
vt 0.293130 0.665886
vt 0.264046 0.665593
vt 0.111625 0.665593
vt 1.172897 0.665327
vt 0.586023 0.665886
vt 0.267518 0.659199
vt 0.305209 0.646655
vt 0.339130 0.628445
vt 0.367977 0.605268
vt 0.414213 0.515584
vt 0.406254 0.547731
vt 0.390642 0.578014
vt 0.367977 0.393122
vt 0.414213 0.482806
vt 0.406254 0.450658
vt 0.390642 0.420376
vt 0.305209 0.351735
vt 0.339130 0.369945
vt 0.267517 0.339191
vt 0.186708 0.332797
vt 0.023571 0.420376
vt 0.075084 0.369945
vt 0.146696 0.339191
vt 0.109005 0.351735
vt 0.046236 0.393122
vt 0.000000 0.482806
vt 0.007959 0.450658
vt 0.000000 0.515584
vt 0.007959 0.547732
vt 0.023571 0.578014
vt 0.109005 0.646655
vt 0.075084 0.628445
vt 0.046237 0.605268
vt 0.146696 0.659199
vt 0.075084 0.295648
vt 0.023571 0.245217
vt 0.046236 0.272471
vt 0.146696 0.326402
vt 0.109005 0.313858
vt 0.000000 0.182787
vt 0.000000 0.150010
vt 0.367977 0.272471
vt 0.339129 0.295648
vt 0.390642 0.245217
vt 0.414213 0.150009
vt 0.414213 0.182787
vt 0.406254 0.214935
vt 0.390642 0.087579
vt 0.406254 0.117862
vt 0.339129 0.037148
vt 0.367977 0.060326
vt 0.305208 0.018938
vt 0.186708 0.000000
vt 0.227505 0.000000
vt 0.146696 0.006395
vt 0.046236 0.060326
vt 0.075084 0.037148
vt 0.007959 0.117862
vt 0.267517 0.326402
vt 0.023571 0.087579
vt 0.305208 0.313859
vn 0.000000 0.685700 -0.727900
vn 0.142000 0.685700 -0.713900
vn 0.142000 -0.685700 -0.713900
vn 0.278500 0.685700 -0.672500
vn 0.278500 -0.685700 -0.672500
vn 0.404400 0.685700 -0.605200
vn 0.404400 -0.685700 -0.605200
vn 0.514700 0.685700 -0.514700
vn 0.605200 0.685700 -0.404400
vn 0.605200 -0.685700 -0.404400
vn 0.672500 0.685700 -0.278500
vn 0.672500 -0.685700 -0.278500
vn 0.713900 0.685700 -0.142000
vn 0.713900 -0.685700 -0.142000
vn 0.727900 0.685700 0.000000
vn 0.727900 -0.685700 0.000000
vn 0.713900 0.685700 0.142000
vn 0.672500 0.685700 0.278500
vn 0.672500 -0.685700 0.278500
vn 0.605200 0.685700 0.404400
vn 0.605200 -0.685700 0.404400
vn 0.514700 0.685700 0.514700
vn 0.514700 -0.685700 0.514700
vn 0.404400 0.685700 0.605200
vn 0.404400 -0.685700 0.605200
vn 0.278500 0.685700 0.672500
vn 0.278500 -0.685700 0.672500
vn 0.142000 0.685700 0.713900
vn 0.142000 -0.685700 0.713900
vn 0.000000 0.685700 0.727900
vn 0.000000 -0.685700 0.727900
vn -0.142000 0.685700 0.713900
vn -0.142000 -0.685700 0.713900
vn -0.278500 0.685700 0.672500
vn -0.278500 -0.685700 0.672500
vn -0.404400 0.685700 0.605200
vn -0.404400 -0.685700 0.605200
vn -0.514700 0.685700 0.514700
vn -0.514700 -0.685700 0.514700
vn -0.605200 0.685700 0.404400
vn -0.605200 -0.685700 0.404400
vn -0.672500 0.685700 0.278500
vn -0.672500 -0.685700 0.278500
vn -0.713900 0.685700 0.142000
vn -0.713900 -0.685700 0.142000
vn -0.727900 0.685700 0.000000
vn -0.727900 -0.685700 0.000000
vn -0.713900 0.685700 -0.142000
vn -0.713900 -0.685700 -0.142000
vn -0.672500 0.685700 -0.278500
vn -0.672500 -0.685700 -0.278500
vn -0.605200 0.685700 -0.404400
vn -0.605200 -0.685700 -0.404400
vn -0.514700 0.685700 -0.514700
vn -0.514700 -0.685700 -0.514700
vn -0.404400 0.685700 -0.605200
vn -0.404400 -0.685700 -0.605200
vn -0.278500 0.685700 -0.672500
vn -0.278500 -0.685700 -0.672500
vn -0.142000 0.685700 -0.713900
vn 0.000000 -0.685700 -0.727900
vn -0.142000 -0.685700 -0.713900
vn 0.514700 -0.685700 -0.514700
vn 0.713900 -0.685700 0.142000
s 1
f 2/1/1 4/2/2 3/3/3
f 4/2/2 6/4/4 5/5/5
f 6/4/4 8/6/6 7/7/7
f 7/7/7 8/6/6 10/8/8
f 10/8/8 12/9/9 11/10/10
f 12/11/9 14/12/11 13/13/12
f 14/12/11 16/14/13 15/15/14
f 16/14/13 18/16/15 17/17/16
f 17/17/16 18/16/15 20/18/17
f 20/18/17 22/19/18 21/20/19
f 22/19/18 24/21/20 23/22/21
f 24/21/20 26/23/22 25/24/23
f 26/25/22 28/26/24 27/27/25
f 28/26/24 30/28/26 29/29/27
f 30/28/26 32/30/28 31/31/29
f 32/30/28 34/32/30 33/33/31
f 34/32/30 36/34/32 35/35/33
f 36/34/32 38/36/34 37/37/35
f 38/36/34 40/38/36 39/39/37
f 40/38/36 42/40/38 41/41/39
f 42/40/38 44/42/40 43/43/41
f 44/42/40 46/44/42 45/45/43
f 46/44/42 48/46/44 47/47/45
f 48/46/44 50/48/46 49/49/47
f 50/48/46 52/50/48 51/51/49
f 52/50/48 54/52/50 53/53/51
f 54/52/50 56/54/52 55/55/53
f 56/54/52 58/56/54 57/57/55
f 58/58/54 60/59/56 59/60/57
f 60/59/56 62/61/58 61/62/59
f 6/63/4 4/64/2 36/65/32
f 64/66/60 2/1/1 1/67/61
f 62/61/58 64/66/60 63/68/62
f 21/69/19 63/70/62 13/71/12
f 1/67/61 2/1/1 3/3/3
f 3/3/3 4/2/2 5/5/5
f 5/5/5 6/4/4 7/7/7
f 9/72/63 7/7/7 10/8/8
f 9/72/63 10/8/8 11/10/10
f 11/73/10 12/11/9 13/13/12
f 13/13/12 14/12/11 15/15/14
f 15/15/14 16/14/13 17/17/16
f 19/74/64 17/17/16 20/18/17
f 19/74/64 20/18/17 21/20/19
f 21/20/19 22/19/18 23/22/21
f 23/22/21 24/21/20 25/24/23
f 25/75/23 26/25/22 27/27/25
f 27/27/25 28/26/24 29/29/27
f 29/29/27 30/28/26 31/31/29
f 31/31/29 32/30/28 33/33/31
f 33/33/31 34/32/30 35/35/33
f 35/35/33 36/34/32 37/37/35
f 37/37/35 38/36/34 39/39/37
f 39/39/37 40/38/36 41/41/39
f 41/41/39 42/40/38 43/43/41
f 43/43/41 44/42/40 45/45/43
f 45/45/43 46/44/42 47/47/45
f 47/47/45 48/46/44 49/49/47
f 49/49/47 50/48/46 51/51/49
f 51/51/49 52/50/48 53/53/51
f 53/53/51 54/52/50 55/55/53
f 55/55/53 56/54/52 57/57/55
f 57/76/55 58/58/54 59/60/57
f 59/60/57 60/59/56 61/62/59
f 63/68/62 64/66/60 1/67/61
f 8/77/6 6/63/4 10/78/8
f 12/79/9 10/78/8 14/80/11
f 20/81/17 18/82/15 16/83/13
f 20/81/17 28/84/24 22/85/18
f 24/86/20 22/85/18 26/87/22
f 32/88/28 30/89/26 28/84/24
f 36/65/32 34/90/30 32/88/28
f 38/91/34 48/92/44 44/93/40
f 40/94/36 38/91/34 42/95/38
f 48/92/44 46/96/42 44/93/40
f 52/97/48 50/98/46 48/92/44
f 52/97/48 36/65/32 54/99/50
f 56/100/52 54/99/50 58/101/54
f 64/102/60 62/103/58 60/104/56
f 4/64/2 2/105/1 64/102/60
f 10/78/8 6/63/4 36/65/32
f 38/91/34 44/93/40 42/95/38
f 58/101/54 54/99/50 60/104/56
f 36/65/32 32/88/28 28/84/24
f 38/91/34 36/65/32 52/97/48
f 22/85/18 28/84/24 26/87/22
f 48/92/44 38/91/34 52/97/48
f 4/64/2 64/102/60 60/104/56
f 10/78/8 16/83/13 14/80/11
f 36/65/32 28/84/24 20/81/17
f 61/62/59 62/61/58 63/68/62
f 10/78/8 20/81/17 16/83/13
f 20/81/17 10/78/8 36/65/32
f 54/99/50 36/65/32 60/104/56
f 36/65/32 4/64/2 60/104/56
f 21/69/19 49/65/47 57/106/55
f 61/107/59 63/70/62 59/108/57
f 53/109/51 55/110/53 57/106/55
f 49/65/47 51/91/49 53/109/51
f 63/70/62 1/111/61 3/112/3
f 63/70/62 57/106/55 59/108/57
f 41/113/39 43/114/41 39/115/37
f 33/116/31 35/117/33 37/118/35
f 29/119/27 31/120/29 33/116/31
f 25/121/23 27/122/25 29/119/27
f 21/69/19 23/123/21 25/121/23
f 17/124/16 19/125/64 21/69/19
f 17/124/16 21/69/19 15/126/14
f 9/127/63 11/128/10 13/71/12
f 13/71/12 5/129/5 9/127/63
f 3/112/3 5/129/5 63/70/62
f 49/65/47 53/109/51 57/106/55
f 47/130/45 49/65/47 21/69/19
f 5/129/5 7/131/7 9/127/63
f 33/116/31 47/130/45 29/119/27
f 5/129/5 13/71/12 63/70/62
f 43/114/41 37/118/35 39/115/37
f 37/118/35 43/114/41 47/130/45
f 21/69/19 13/71/12 15/126/14
f 33/116/31 37/118/35 47/130/45
f 29/119/27 47/130/45 25/121/23
f 43/114/41 45/132/43 47/130/45
f 63/70/62 21/69/19 57/106/55
f 25/121/23 47/130/45 21/69/19

View File

@ -0,0 +1,15 @@
# Blender v2.72 (sub 0) OBJ File: 'ruinsTile.blend'
# www.blender.org
o Plane
v -1.000000 0.000000 1.000000
v 1.000000 0.000000 1.000000
v -1.000000 0.000000 -1.000000
v 1.000000 0.000000 -1.000000
vt 0.999900 0.000100
vt 0.999900 0.999900
vt 0.000100 0.999900
vt 0.000100 0.000100
vn 0.000000 1.000000 0.000000
s off
f 2/1/1 4/2/1 3/3/1
f 1/4/1 2/1/1 3/3/1

View File

@ -0,0 +1,54 @@
# Blender v2.72 (sub 0) OBJ File: ''
# www.blender.org
o Wall_Cube.001
v 0.537791 3.045326 -3.045326
v 0.537791 -3.045326 -3.045326
v 0.537791 -3.045326 3.045326
v -0.537791 3.045326 -3.045326
v -0.537791 -3.045326 -3.045326
v -0.537791 3.045326 3.045326
v -0.537791 -3.045326 3.045326
v 0.537791 3.045326 3.045326
vt 1.002363 0.998329
vt 0.005637 -0.001671
vt 1.002363 -0.001671
vt 0.394169 0.995358
vt 0.605831 -0.004642
vt 0.394169 -0.004642
vt -0.003002 0.995358
vt 0.996752 -0.004642
vt -0.003002 -0.004642
vt 0.605361 0.992386
vt 0.392389 -0.007614
vt 0.605361 -0.007614
vt 0.001396 0.906027
vt 0.998604 0.093973
vt 0.001923 0.094175
vt 1.000000 0.097080
vt 0.000000 0.902920
vt 1.000000 0.902920
vt 0.005637 0.998329
vt 0.605831 0.995358
vt 0.996752 0.995358
vt 0.392389 0.992386
vt 0.998077 0.905824
vt 0.000000 0.097080
vn 1.000000 0.000000 0.000000
vn 0.000000 0.000000 -1.000000
vn -1.000000 0.000000 0.000000
vn 0.000000 -0.000000 1.000000
vn 0.000000 -1.000000 -0.000000
vn 0.000000 1.000000 0.000000
s off
f 1/1/1 3/2/1 2/3/1
f 4/4/2 2/5/2 5/6/2
f 6/7/3 5/8/3 7/9/3
f 8/10/4 7/11/4 3/12/4
f 2/13/5 7/14/5 5/15/5
f 4/16/6 8/17/6 1/18/6
f 8/19/1 3/2/1 1/1/1
f 1/20/2 2/5/2 4/4/2
f 4/21/3 5/8/3 6/7/3
f 6/22/4 7/11/4 8/10/4
f 3/23/5 7/14/5 2/13/5
f 6/24/6 8/17/6 4/16/6

10951
data/geometry/skydome.obj Normal file

File diff suppressed because it is too large Load Diff

View File

@ -0,0 +1,500 @@
# Blender v2.73 (sub 0) OBJ File: 'switch_inner.blend'
# www.blender.org
o switch_Cube
v 0.952094 -0.488588 -1.000000
v 1.000000 -0.488588 -0.952094
v 0.952094 -0.513173 -0.952094
v 0.976015 -0.488588 -0.993600
v 0.952094 -0.500864 -0.993600
v 0.975003 -0.500345 -0.987383
v 0.993600 -0.500864 -0.952093
v 0.993600 -0.488588 -0.976015
v 0.987383 -0.500345 -0.975003
v 0.952094 -0.509888 -0.976015
v 0.976015 -0.509888 -0.952093
v 0.975003 -0.506698 -0.975003
v 0.952094 -0.513173 0.952094
v 1.000000 -0.488588 0.952094
v 0.952094 -0.488588 1.000000
v 0.976015 -0.509888 0.952094
v 0.952094 -0.509888 0.976015
v 0.975003 -0.506698 0.975003
v 0.993600 -0.488588 0.976015
v 0.993600 -0.500864 0.952094
v 0.987383 -0.500345 0.975003
v 0.952094 -0.500864 0.993600
v 0.976015 -0.488588 0.993600
v 0.975003 -0.500345 0.987383
v -0.952094 -0.513173 0.952093
v -0.952094 -0.488588 1.000000
v -1.000000 -0.488588 0.952093
v -0.952094 -0.509888 0.976015
v -0.976016 -0.509888 0.952093
v -0.975003 -0.506698 0.975003
v -0.976016 -0.488588 0.993600
v -0.952094 -0.500864 0.993600
v -0.975003 -0.500345 0.987383
v -0.993600 -0.500864 0.952093
v -0.993600 -0.488588 0.976015
v -0.987383 -0.500345 0.975003
v -1.000000 -0.488588 -0.952094
v -0.952093 -0.488588 -1.000000
v -0.952093 -0.513173 -0.952094
v -0.993600 -0.488588 -0.976016
v -0.993600 -0.500864 -0.952094
v -0.987383 -0.500345 -0.975003
v -0.952093 -0.500864 -0.993600
v -0.976015 -0.488588 -0.993600
v -0.975003 -0.500345 -0.987383
v -0.976015 -0.509888 -0.952094
v -0.952093 -0.509888 -0.976016
v -0.975003 -0.506698 -0.975003
v 1.000000 0.488588 -0.952093
v 0.952094 0.488588 -0.999999
v 0.952094 0.513173 -0.952093
v 0.993600 0.488588 -0.976015
v 0.993600 0.500864 -0.952093
v 0.987383 0.500345 -0.975002
v 0.952094 0.500864 -0.993599
v 0.976016 0.488588 -0.993599
v 0.975003 0.500345 -0.987382
v 0.976016 0.509888 -0.952093
v 0.952094 0.509888 -0.976015
v 0.975003 0.506698 -0.975002
v 0.952093 0.513173 0.952094
v 0.952093 0.488588 1.000001
v 0.999999 0.488588 0.952094
v 0.952093 0.509888 0.976016
v 0.976015 0.509888 0.952094
v 0.975002 0.506698 0.975004
v 0.976015 0.488588 0.993601
v 0.952093 0.500864 0.993601
v 0.975002 0.500345 0.987384
v 0.993599 0.500864 0.952094
v 0.993599 0.488588 0.976016
v 0.987382 0.500345 0.975004
v -0.952094 0.513173 0.952093
v -1.000000 0.488588 0.952093
v -0.952094 0.488588 1.000000
v -0.976016 0.509888 0.952093
v -0.952094 0.509888 0.976015
v -0.975003 0.506698 0.975003
v -0.993600 0.488588 0.976015
v -0.993600 0.500864 0.952093
v -0.987383 0.500345 0.975003
v -0.952094 0.500864 0.993600
v -0.976016 0.488588 0.993600
v -0.975003 0.500345 0.987383
v -0.952094 0.488588 -1.000000
v -1.000000 0.488588 -0.952094
v -0.952094 0.513173 -0.952094
v -0.976015 0.488588 -0.993600
v -0.952093 0.500864 -0.993600
v -0.975003 0.500345 -0.987383
v -0.993600 0.500864 -0.952094
v -0.993600 0.488588 -0.976015
v -0.987383 0.500345 -0.975003
v -0.952093 0.509888 -0.976015
v -0.976015 0.509888 -0.952094
v -0.975003 0.506698 -0.975003
vt 0.856328 0.374264
vt 0.426513 0.374264
vt 0.426513 0.657341
vt 0.856328 0.657341
vt 0.654950 0.976215
vt 0.654950 0.693138
vt 0.853302 0.693138
vt 0.861728 0.374264
vt 0.861500 0.370859
vt 0.865697 0.374264
vt 0.864294 0.370859
vt 0.856328 0.370708
vt 0.865697 0.657341
vt 0.861728 0.657341
vt 0.861500 0.660747
vt 0.856328 0.660897
vt 0.856328 0.663512
vt 0.861500 0.662587
vt 0.864294 0.660747
vt 0.421113 0.374264
vt 0.421342 0.370859
vt 0.856328 0.368094
vt 0.861500 0.369018
vt 0.426513 0.370708
vt 0.426513 0.368094
vt 0.421342 0.369018
vt 0.417144 0.374264
vt 0.418547 0.370859
vt 0.426513 0.660897
vt 0.421342 0.660747
vt 0.421342 0.662587
vt 0.421113 0.657341
vt 0.417144 0.657341
vt 0.418547 0.660747
vt 0.426513 0.663512
vt 0.851966 0.695368
vt 0.659461 0.695368
vt 0.659461 0.978445
vt 0.853302 0.976215
vt 0.851966 0.978445
vn 0.000000 0.000000 -1.000000
vn -0.000000 -0.000000 1.000000
vn -1.000000 -0.000000 -0.000000
vn 0.000000 1.000000 -0.000000
vn 1.000000 -0.000000 0.000000
vn 0.238400 -0.455800 -0.857600
vn 0.228100 -0.470400 -0.852500
vn 0.233100 -0.463300 -0.855000
vn 0.648500 -0.398700 -0.648500
vn 0.648500 -0.398800 -0.648500
vn 0.857600 -0.455800 -0.238400
vn 0.860000 -0.448400 -0.243600
vn 0.855000 -0.463300 -0.233100
vn 0.451900 -0.880600 -0.142600
vn 0.138600 -0.980600 -0.138600
vn 0.142500 -0.980600 -0.134600
vn 0.142600 -0.880600 -0.451900
vn 0.415300 -0.809300 -0.415300
vn 0.138600 -0.980600 0.138600
vn 0.134600 -0.980600 0.142500
vn 0.451900 -0.880600 0.142600
vn 0.857600 -0.455800 0.238400
vn 0.852500 -0.470400 0.228100
vn 0.855000 -0.463300 0.233100
vn 0.648500 -0.398800 0.648500
vn 0.648500 -0.398700 0.648500
vn 0.238400 -0.455800 0.857600
vn 0.243600 -0.448400 0.860000
vn 0.233100 -0.463300 0.855000
vn 0.142600 -0.880600 0.451900
vn 0.415300 -0.809300 0.415300
vn -0.138600 -0.980600 0.138600
vn -0.142500 -0.980600 0.134600
vn -0.142600 -0.880600 0.451900
vn -0.238400 -0.455800 0.857600
vn -0.228100 -0.470400 0.852500
vn -0.233100 -0.463300 0.855000
vn -0.648500 -0.398800 0.648500
vn -0.648500 -0.398700 0.648500
vn -0.857600 -0.455800 0.238400
vn -0.860000 -0.448400 0.243600
vn -0.855000 -0.463300 0.233100
vn -0.451900 -0.880600 0.142600
vn -0.415300 -0.809300 0.415300
vn -0.857600 -0.455800 -0.238400
vn -0.852500 -0.470400 -0.228100
vn -0.855000 -0.463300 -0.233100
vn -0.648500 -0.398700 -0.648500
vn -0.648500 -0.398800 -0.648500
vn -0.238400 -0.455800 -0.857600
vn -0.243600 -0.448400 -0.860000
vn -0.233100 -0.463300 -0.855000
vn -0.142600 -0.880600 -0.451900
vn -0.138600 -0.980600 -0.138600
vn -0.134600 -0.980600 -0.142500
vn -0.451900 -0.880600 -0.142600
vn -0.415300 -0.809300 -0.415300
vn 0.857600 0.455800 -0.238400
vn 0.852500 0.470400 -0.228100
vn 0.855000 0.463300 -0.233100
vn 0.648500 0.398800 -0.648500
vn 0.648500 0.398700 -0.648500
vn 0.238400 0.455800 -0.857600
vn 0.243500 0.448400 -0.860000
vn 0.233100 0.463300 -0.855000
vn 0.142600 0.880600 -0.451900
vn 0.138600 0.980600 -0.138600
vn 0.134600 0.980600 -0.142500
vn 0.451900 0.880600 -0.142600
vn 0.415300 0.809300 -0.415300
vn 0.138600 0.980600 0.138600
vn 0.142500 0.980600 0.134600
vn 0.142600 0.880600 0.451900
vn 0.238400 0.455800 0.857600
vn 0.228100 0.470400 0.852500
vn 0.233100 0.463300 0.855000
vn 0.648500 0.398700 0.648500
vn 0.648500 0.398800 0.648500
vn 0.857600 0.455800 0.238400
vn 0.860000 0.448400 0.243600
vn 0.855000 0.463300 0.233100
vn 0.451900 0.880600 0.142600
vn 0.415300 0.809300 0.415300
vn -0.138600 0.980600 0.138600
vn -0.134600 0.980600 0.142500
vn -0.451900 0.880600 0.142600
vn -0.857600 0.455800 0.238400
vn -0.852500 0.470400 0.228100
vn -0.855000 0.463300 0.233100
vn -0.648500 0.398700 0.648500
vn -0.648500 0.398800 0.648500
vn -0.238400 0.455800 0.857600
vn -0.243600 0.448400 0.860000
vn -0.233100 0.463300 0.855000
vn -0.142600 0.880600 0.451900
vn -0.415300 0.809300 0.415300
vn -0.238400 0.455800 -0.857600
vn -0.228100 0.470400 -0.852500
vn -0.233100 0.463300 -0.855000
vn -0.648500 0.398800 -0.648500
vn -0.648500 0.398700 -0.648500
vn -0.857600 0.455800 -0.238400
vn -0.860000 0.448400 -0.243500
vn -0.855000 0.463300 -0.233100
vn -0.451900 0.880600 -0.142600
vn -0.138600 0.980600 -0.138600
vn -0.142500 0.980600 -0.134600
vn -0.142600 0.880600 -0.451900
vn -0.415300 0.809300 -0.415300
vn 0.886700 -0.462300 0.000000
vn 0.456600 -0.889700 0.000000
vn 0.136000 -0.990700 0.000000
vn 0.000000 -0.990700 -0.136000
vn 0.000000 -0.889700 -0.456600
vn 0.000000 -0.462300 -0.886700
vn 0.258500 0.000000 -0.966000
vn 0.258400 0.000000 -0.966000
vn 0.707100 0.000000 -0.707100
vn 0.966000 -0.000000 -0.258500
vn -0.000000 -0.462300 0.886700
vn -0.000000 -0.889700 0.456600
vn -0.000000 -0.990700 0.136000
vn 0.966000 0.000000 0.258500
vn 0.707100 0.000000 0.707100
vn 0.258400 -0.000000 0.966000
vn -0.886700 -0.462300 -0.000000
vn -0.456600 -0.889700 -0.000000
vn -0.136000 -0.990700 -0.000000
vn -0.258500 0.000000 0.966000
vn -0.707100 -0.000000 0.707100
vn -0.966000 -0.000000 0.258500
vn -0.966000 -0.000000 0.258400
vn -0.966000 -0.000000 -0.258500
vn -0.707100 0.000000 -0.707100
vn -0.258500 0.000000 -0.966000
vn 0.136000 0.990700 0.000000
vn 0.456600 0.889700 0.000000
vn 0.886700 0.462300 0.000000
vn 0.000000 0.462300 -0.886700
vn 0.000000 0.889700 -0.456600
vn 0.000000 0.990700 -0.136000
vn -0.000000 0.990700 0.136000
vn -0.000000 0.889700 0.456600
vn -0.000000 0.462300 0.886700
vn -0.136000 0.990700 -0.000000
vn -0.456600 0.889700 -0.000000
vn -0.886700 0.462300 -0.000000
vn 0.000000 -1.000000 -0.000000
vn 0.243500 -0.448400 -0.860000
vn 0.852500 -0.470400 -0.228100
vn 0.134600 -0.980600 -0.142500
vn 0.142500 -0.980600 0.134600
vn 0.860000 -0.448400 0.243600
vn 0.228100 -0.470400 0.852500
vn -0.134600 -0.980600 0.142500
vn -0.243600 -0.448400 0.860000
vn -0.852500 -0.470400 0.228100
vn -0.860000 -0.448400 -0.243500
vn -0.228100 -0.470400 -0.852500
vn -0.142500 -0.980600 -0.134600
vn 0.860000 0.448400 -0.243600
vn 0.228100 0.470400 -0.852500
vn 0.142500 0.980600 -0.134600
vn 0.134600 0.980600 0.142500
vn 0.243600 0.448400 0.860000
vn 0.852500 0.470400 0.228100
vn -0.142500 0.980600 0.134600
vn -0.860000 0.448400 0.243500
vn -0.228100 0.470400 0.852500
vn -0.243600 0.448400 -0.860000
vn -0.852500 0.470400 -0.228100
vn -0.134600 0.980600 -0.142500
s 1
f 1/1/1 38/2/1 85/3/1
f 62/4/2 75/3/2 26/2/2
f 74/3/3 86/4/3 37/1/3
f 87/5/4 73/6/4 61/7/4
f 49/4/5 63/3/5 14/2/5
f 1/1/6 4/8/7 6/9/8
f 8/10/9 9/11/9 6/9/10
f 2/1/11 7/12/12 9/9/13
f 7/13/14 11/14/14 12/15/14
f 3/4/15 10/16/16 12/15/15
f 5/17/17 6/18/17 12/15/17
f 6/18/18 9/19/18 12/15/18
f 13/1/19 16/8/20 18/9/19
f 20/10/21 21/11/21 18/9/21
f 14/2/22 19/20/23 21/21/24
f 23/8/25 24/9/25 21/11/26
f 15/1/27 22/12/28 24/9/29
f 22/22/30 17/12/30 18/9/30
f 18/9/31 21/11/31 24/23/31
f 25/2/32 28/24/33 30/21/32
f 32/25/34 33/26/34 30/21/34
f 26/2/35 31/20/36 33/21/37
f 35/27/38 36/28/39 33/21/38
f 27/2/40 34/24/41 36/21/42
f 34/27/43 29/20/43 30/21/43
f 30/21/44 33/26/44 36/28/44
f 37/1/45 40/8/46 42/9/47
f 44/20/48 45/21/48 42/28/49
f 38/2/50 43/24/51 45/21/52
f 47/29/53 48/30/53 45/31/53
f 39/3/54 46/32/55 48/30/54
f 41/33/56 42/34/56 48/30/56
f 42/34/57 45/31/57 48/30/57
f 49/4/58 52/14/59 54/15/60
f 56/14/61 57/15/61 54/19/62
f 50/4/63 55/16/64 57/15/65
f 59/16/66 60/15/66 57/18/66
f 51/4/67 58/14/68 60/15/67
f 53/13/69 54/19/69 60/15/69
f 54/19/70 57/18/70 60/15/70
f 61/1/71 64/12/72 66/9/71
f 64/12/73 68/22/73 69/23/73
f 62/4/74 67/14/75 69/15/76
f 71/13/77 72/19/78 69/15/77
f 63/3/79 70/29/80 72/30/81
f 65/8/82 66/9/82 72/11/82
f 66/9/83 69/23/83 72/11/83
f 73/2/84 76/20/85 78/21/84
f 76/20/86 80/27/86 81/28/86
f 74/3/87 79/32/88 81/30/89
f 83/32/90 84/30/90 81/34/91
f 75/3/92 82/29/93 84/30/94
f 82/25/95 77/24/95 78/21/95
f 78/21/96 81/28/96 84/26/96
f 85/3/97 88/32/98 90/30/99
f 88/32/100 92/33/101 93/34/101
f 86/4/102 91/16/103 93/15/104
f 91/33/105 95/32/105 96/30/105
f 87/3/106 94/29/107 96/30/106
f 89/35/108 90/31/108 96/30/108
f 90/31/109 93/34/109 96/30/109
f 2/1/110 14/2/110 20/24/110
f 20/10/111 16/8/111 11/14/111
f 16/8/112 13/1/112 3/4/112
f 3/4/113 39/3/113 47/29/113
f 47/29/114 43/35/114 5/17/114
f 43/24/115 38/2/115 1/1/115
f 50/4/116 56/14/117 4/8/116
f 56/14/118 52/13/118 8/10/118
f 8/8/119 52/14/119 49/4/119
f 26/2/120 32/24/120 22/12/120
f 32/25/121 28/24/121 17/12/121
f 28/24/122 25/2/122 13/1/122
f 63/3/123 71/32/123 19/20/123
f 71/13/124 67/14/124 23/8/124
f 67/14/125 62/4/125 15/1/125
f 37/1/126 41/12/126 34/24/126
f 41/33/127 46/32/127 29/20/127
f 46/32/128 39/3/128 25/2/128
f 75/3/129 83/32/129 31/20/129
f 83/32/130 79/33/130 35/27/130
f 79/32/131 74/3/131 27/2/132
f 86/4/133 92/14/133 40/8/133
f 92/33/134 88/32/134 44/20/134
f 88/32/135 85/3/135 38/2/135
f 51/4/136 61/1/136 65/8/136
f 65/8/137 70/10/137 53/13/137
f 70/29/138 63/3/138 49/4/138
f 85/3/139 89/29/139 55/16/139
f 89/35/140 94/29/140 59/16/140
f 59/16/141 94/29/141 87/3/141
f 73/2/142 77/24/142 64/12/142
f 77/24/143 82/25/143 68/22/143
f 68/16/144 82/29/144 75/3/144
f 87/3/145 95/32/145 76/20/145
f 76/20/146 95/32/146 91/33/146
f 80/29/147 91/16/147 86/4/147
f 13/36/148 25/37/148 39/38/148
f 50/4/1 1/1/1 85/3/1
f 15/1/2 62/4/2 26/2/2
f 27/2/3 74/3/3 37/1/3
f 51/39/4 87/5/4 61/7/4
f 2/1/5 49/4/5 14/2/5
f 5/12/149 1/1/6 6/9/8
f 4/8/10 8/10/9 6/9/10
f 8/8/150 2/1/11 9/9/13
f 9/19/14 7/13/14 12/15/14
f 11/14/151 3/4/15 12/15/15
f 10/16/17 5/17/17 12/15/17
f 17/12/152 13/1/19 18/9/19
f 16/8/21 20/10/21 18/9/21
f 20/24/153 14/2/22 21/21/24
f 19/10/26 23/8/25 21/11/26
f 23/8/154 15/1/27 24/9/29
f 24/23/30 22/22/30 18/9/30
f 29/20/155 25/2/32 30/21/32
f 28/24/34 32/25/34 30/21/34
f 32/24/156 26/2/35 33/21/37
f 31/20/38 35/27/38 33/21/38
f 35/20/157 27/2/40 36/21/42
f 36/28/43 34/27/43 30/21/43
f 41/12/158 37/1/45 42/9/47
f 40/27/49 44/20/48 42/28/49
f 44/20/159 38/2/50 45/21/52
f 43/35/53 47/29/53 45/31/53
f 47/29/160 39/3/54 48/30/54
f 46/32/56 41/33/56 48/30/56
f 53/16/161 49/4/58 54/15/60
f 52/13/62 56/14/61 54/19/62
f 56/14/162 50/4/63 57/15/65
f 55/17/66 59/16/66 57/18/66
f 59/16/163 51/4/67 60/15/67
f 58/14/69 53/13/69 60/15/69
f 65/8/164 61/1/71 66/9/71
f 66/9/73 64/12/73 69/23/73
f 68/16/165 62/4/74 69/15/76
f 67/14/77 71/13/77 69/15/77
f 71/32/166 63/3/79 72/30/81
f 70/10/82 65/8/82 72/11/82
f 77/24/167 73/2/84 78/21/84
f 78/21/86 76/20/86 81/28/86
f 80/29/168 74/3/87 81/30/89
f 79/33/91 83/32/90 81/34/91
f 83/32/169 75/3/92 84/30/94
f 84/26/95 82/25/95 78/21/95
f 89/29/170 85/3/97 90/30/99
f 90/30/100 88/32/100 93/34/101
f 92/14/171 86/4/102 93/15/104
f 93/34/105 91/33/105 96/30/105
f 95/32/172 87/3/106 96/30/106
f 94/29/108 89/35/108 96/30/108
f 7/12/110 2/1/110 20/24/110
f 7/13/111 20/10/111 11/14/111
f 11/14/112 16/8/112 3/4/112
f 10/16/113 3/4/113 47/29/113
f 10/16/114 47/29/114 5/17/114
f 5/12/115 43/24/115 1/1/115
f 1/1/116 50/4/116 4/8/116
f 4/8/118 56/14/118 8/10/118
f 2/1/119 8/8/119 49/4/119
f 15/1/120 26/2/120 22/12/120
f 22/22/121 32/25/121 17/12/121
f 17/12/122 28/24/122 13/1/122
f 14/2/123 63/3/123 19/20/123
f 19/10/124 71/13/124 23/8/124
f 23/8/125 67/14/125 15/1/125
f 27/2/126 37/1/126 34/24/126
f 34/27/127 41/33/127 29/20/127
f 29/20/128 46/32/128 25/2/128
f 26/2/129 75/3/129 31/20/129
f 31/20/130 83/32/130 35/27/130
f 35/20/132 79/32/131 27/2/132
f 37/1/133 86/4/133 40/8/133
f 40/27/134 92/33/134 44/20/134
f 44/20/135 88/32/135 38/2/135
f 58/14/136 51/4/136 65/8/136
f 58/14/137 65/8/137 53/13/137
f 53/16/138 70/29/138 49/4/138
f 50/4/139 85/3/139 55/16/139
f 55/17/140 89/35/140 59/16/140
f 51/4/141 59/16/141 87/3/141
f 61/1/142 73/2/142 64/12/142
f 64/12/143 77/24/143 68/22/143
f 62/4/144 68/16/144 75/3/144
f 73/2/145 87/3/145 76/20/145
f 80/27/146 76/20/146 91/33/146
f 74/3/147 80/29/147 86/4/147
f 3/40/148 13/36/148 39/38/148

View File

@ -0,0 +1,101 @@
# Blender v2.72 (sub 0) OBJ File: 'switch_outer.blend'
# www.blender.org
o switch_Cube
v 1.270169 -1.270169 -1.270169
v 1.270169 -1.270169 1.270169
v -1.270169 -1.270169 1.270169
v -1.270169 -1.270169 -1.270170
v 1.270170 1.270169 -1.270169
v 1.270168 1.270169 1.270170
v -1.270170 1.270169 1.270169
v -1.270169 1.270169 -1.270169
v 0.985712 1.270169 -0.998137
v 0.985712 1.270169 0.965003
v -0.940154 1.270169 0.973287
v -0.940154 1.270170 -0.998137
v 0.985712 -1.271890 -0.998137
v 0.985712 -1.271890 0.965003
v -0.940154 -1.271890 0.973287
v -0.940154 -1.271890 -0.998137
vt 0.222140 0.317533
vt 0.462062 0.319398
vt 0.461836 0.797664
vt 0.462418 0.315542
vt 0.462155 0.799279
vt 0.219977 0.799745
vt 0.460057 0.322033
vt 0.461974 0.799281
vt 0.219129 0.799420
vt 0.459506 0.796589
vt 0.220124 0.795724
vt 0.220890 0.315480
vt 0.461760 0.316819
vt 0.221860 0.319521
vt 0.222636 0.798557
vt 0.809558 0.810889
vt 0.781381 0.753963
vt 0.782865 0.344970
vt 0.553708 0.808618
vt 0.553628 0.279374
vt 0.588332 0.341517
vt 0.784396 1.000000
vt 0.784396 0.666591
vt 1.000000 0.666591
vt 0.002859 0.664645
vt 0.223564 0.664868
vt 0.223426 0.998277
vt 1.000026 0.663788
vt 1.000026 0.996547
vt 0.785161 0.996547
vt 0.220172 0.660110
vt 0.220172 0.993518
vt 0.000395 0.993518
vt 0.221915 0.795798
vt 0.220240 0.316007
vt 0.219212 0.322172
vt 0.460271 0.316344
vt 0.462536 0.795855
vt 0.590712 0.341538
vt 0.556008 0.279395
vt 0.809478 0.281644
vt 0.588842 0.752236
vt 0.779002 0.753942
vt 0.807179 0.810867
vt 0.002722 0.998054
vt 1.000000 1.000000
vt 0.785161 0.663789
vt 0.000395 0.660110
vn 0.000000 -1.000000 0.000000
vn 1.000000 -0.000000 0.000000
vn -0.000000 -0.000000 1.000000
vn -1.000000 -0.000000 -0.000000
vn 0.000000 0.000000 -1.000000
vn 0.000000 1.000000 0.000000
vn -0.004300 0.000000 -1.000000
s off
f 2/1/1 3/2/1 4/3/1
f 1/4/2 5/5/2 6/6/2
f 2/7/3 6/8/3 7/9/3
f 7/10/4 8/11/4 4/12/4
f 1/13/5 4/14/5 8/15/5
f 5/16/6 9/17/6 10/18/6
f 8/19/6 7/20/6 11/21/6
f 12/22/3 16/23/3 13/24/3
f 12/25/2 11/26/2 15/27/2
f 10/28/7 14/29/7 15/30/7
f 9/31/4 13/32/4 14/33/4
f 1/34/1 2/1/1 4/3/1
f 2/35/2 1/4/2 6/6/2
f 3/36/3 2/7/3 7/9/3
f 3/37/4 7/10/4 4/12/4
f 5/38/5 1/13/5 8/15/5
f 11/39/6 7/40/6 6/41/6
f 12/42/6 9/43/6 5/44/6
f 10/18/6 11/39/6 6/41/6
f 6/41/6 5/16/6 10/18/6
f 12/42/6 8/19/6 11/21/6
f 12/42/6 5/44/6 8/19/6
f 16/45/2 12/25/2 15/27/2
f 9/46/3 12/22/3 13/24/3
f 11/47/7 10/28/7 15/30/7
f 10/48/4 9/31/4 14/33/4

641
data/geometry/torch.obj Normal file
View File

@ -0,0 +1,641 @@
# Blender v2.72 (sub 0) OBJ File: 'torch.blend'
# www.blender.org
v 0.000000 0.011815 -0.121572
v 0.023715 0.011815 -0.119227
v 0.046524 0.011815 -0.112303
v 0.067552 0.011815 -0.101069
v 0.085979 0.011815 -0.085979
v 0.101069 0.011815 -0.067552
v 0.112303 0.011815 -0.046523
v 0.119227 0.011815 -0.023714
v 0.121572 0.011815 -0.000000
v 0.119227 0.011815 0.023714
v 0.112303 0.011815 0.046523
v 0.101069 0.011815 0.067552
v 0.085979 0.011815 0.085979
v 0.067552 0.011815 0.101069
v 0.046523 0.011815 0.112303
v 0.023714 0.011815 0.119227
v -0.000000 0.011815 0.121572
v -0.023715 0.011815 0.119227
v -0.046524 0.011815 0.112303
v -0.067553 0.011815 0.101069
v -0.085980 0.011815 0.085979
v -0.101070 0.011815 0.067552
v -0.112303 0.011815 0.046523
v -0.119227 0.011815 0.023714
v -0.121572 0.011815 -0.000001
v -0.119227 0.011815 -0.023715
v -0.112303 0.011815 -0.046524
v -0.101069 0.011815 -0.067553
v -0.085979 0.011815 -0.085949
v -0.067551 0.011815 -0.101070
v -0.046522 0.011815 -0.112303
v -0.023713 0.011815 -0.119227
v -0.000000 1.675680 -0.221477
v 0.043188 1.675682 -0.217223
v 0.084756 1.675683 -0.204614
v 0.123084 1.675682 -0.184124
v 0.156611 1.675677 -0.156611
v 0.184124 1.675682 -0.123084
v 0.204614 1.675683 -0.084756
v 0.217223 1.675682 -0.043188
v 0.221477 1.675681 -0.000000
v 0.217223 1.675682 0.043188
v 0.204615 1.675683 0.084756
v 0.184124 1.675682 0.123084
v 0.156611 1.675677 0.156611
v 0.123084 1.675682 0.184124
v 0.084756 1.675683 0.204614
v 0.043188 1.675682 0.217223
v -0.000000 1.675681 0.221477
v -0.043188 1.675682 0.217223
v -0.084756 1.675683 0.204614
v -0.123084 1.675682 0.184123
v -0.156611 1.675677 0.156611
v -0.184123 1.675682 0.123084
v -0.204614 1.675683 0.084756
v -0.217223 1.675682 0.043188
v -0.221477 1.675681 0.000000
v -0.217223 1.675682 -0.043188
v -0.204614 1.675683 -0.084756
v -0.184140 1.675681 -0.123061
v -0.156605 1.675681 -0.156610
v -0.123056 1.675681 -0.184143
v -0.084756 1.675683 -0.204614
v -0.043188 1.675682 -0.217223
v -0.000000 1.947950 -0.335566
v -0.000000 1.981150 -0.313345
v 0.065442 1.947954 -0.329120
v 0.061108 1.981122 -0.307326
v 0.128419 1.947953 -0.310019
v 0.119914 1.981152 -0.289490
v 0.186472 1.947957 -0.278979
v 0.174126 1.981085 -0.260503
v 0.237285 1.947943 -0.237285
v 0.221572 1.981204 -0.221572
v 0.278979 1.947957 -0.186472
v 0.260503 1.981086 -0.174126
v 0.310019 1.947953 -0.128419
v 0.289490 1.981151 -0.119914
v 0.329120 1.947954 -0.065442
v 0.307326 1.981122 -0.061107
v 0.335566 1.947950 0.000000
v 0.313345 1.981150 0.000000
v 0.329120 1.947954 0.065442
v 0.307326 1.981122 0.061107
v 0.310020 1.947952 0.128419
v 0.289491 1.981152 0.119914
v 0.278979 1.947957 0.186472
v 0.260503 1.981085 0.174126
v 0.237285 1.947943 0.237285
v 0.221572 1.981204 0.221572
v 0.186472 1.947957 0.278979
v 0.174126 1.981086 0.260503
v 0.128419 1.947953 0.310020
v 0.119914 1.981151 0.289490
v 0.065442 1.947954 0.329120
v 0.061108 1.981122 0.307326
v 0.000000 1.947950 0.335566
v 0.000000 1.981150 0.313345
v -0.065442 1.947954 0.329120
v -0.061107 1.981123 0.307326
v -0.128419 1.947953 0.310020
v -0.119914 1.981151 0.289490
v -0.186472 1.947957 0.278979
v -0.174126 1.981086 0.260503
v -0.237285 1.947943 0.237285
v -0.221572 1.981203 0.221572
v -0.278979 1.947957 0.186472
v -0.260503 1.981086 0.174126
v -0.310019 1.947953 0.128420
v -0.289490 1.981151 0.119915
v -0.329120 1.947954 0.065443
v -0.307326 1.981123 0.061108
v -0.335566 1.947951 0.000000
v -0.313345 1.981149 0.000000
v -0.329120 1.947954 -0.065442
v -0.307326 1.981127 -0.061107
v -0.310020 1.947954 -0.128415
v -0.289490 1.981131 -0.119911
v -0.279000 1.947952 -0.186447
v -0.260524 1.981136 -0.174101
v -0.237275 1.947951 -0.237286
v -0.221562 1.981138 -0.221573
v -0.186439 1.947953 -0.279005
v -0.174094 1.981137 -0.260529
v -0.128415 1.947954 -0.310020
v -0.119911 1.981128 -0.289490
v -0.065442 1.947953 -0.329120
v -0.061107 1.981129 -0.307326
v 0.000000 1.926806 -0.174476
v 0.034026 1.926790 -0.171123
v 0.066770 1.926806 -0.161192
v 0.096955 1.926769 -0.145050
v 0.123377 1.926835 -0.123377
v 0.145051 1.926770 -0.096955
v 0.161192 1.926806 -0.066770
v 0.171123 1.926790 -0.034025
v 0.174476 1.926805 0.000000
v 0.171123 1.926790 0.034025
v 0.161193 1.926807 0.066770
v 0.145050 1.926769 0.096955
v 0.123377 1.926835 0.123377
v 0.096955 1.926770 0.145050
v 0.066770 1.926806 0.161192
v 0.034026 1.926790 0.171123
v 0.000000 1.926805 0.174476
v -0.034025 1.926790 0.171123
v -0.066770 1.926806 0.161193
v -0.096955 1.926770 0.145051
v -0.123377 1.926835 0.123377
v -0.145050 1.926770 0.096955
v -0.161192 1.926806 0.066770
v -0.171123 1.926790 0.034026
v -0.174475 1.926805 0.000000
v -0.171123 1.926793 -0.034025
v -0.161192 1.926795 -0.066768
v -0.145064 1.926797 -0.096942
v -0.123369 1.926799 -0.123375
v -0.096938 1.926798 -0.145066
v -0.066768 1.926793 -0.161192
v -0.034025 1.926794 -0.171123
vt 0.000000 0.000000
vt 1.000000 0.000000
vt 1.000000 1.000000
vn 0.000000 -0.228700 -0.973500
vn -0.189900 -0.228700 -0.954800
vn 0.000000 0.093700 -0.995600
vn 0.540800 -0.228700 -0.809400
vn 0.372500 -0.228700 -0.899300
vn 0.553100 0.094200 -0.827800
vn 0.688300 -0.228700 -0.688300
vn 0.704000 0.093500 -0.704000
vn 0.827800 0.094100 -0.553100
vn 0.809400 -0.228700 -0.540800
vn 0.919800 0.093800 -0.381100
vn 0.899300 -0.228700 -0.372500
vn 0.954800 -0.228700 -0.189900
vn 0.976400 0.093800 -0.194200
vn 0.973500 -0.228700 0.000000
vn 0.995600 0.093700 0.000000
vn 0.976400 0.093800 0.194200
vn 0.954800 -0.228700 0.189900
vn 0.919800 0.093800 0.381100
vn 0.899300 -0.228700 0.372500
vn 0.809400 -0.228700 0.540800
vn 0.827800 0.094100 0.553100
vn 0.688300 -0.228700 0.688300
vn 0.704000 0.093500 0.704000
vn 0.553100 0.094100 0.827800
vn 0.540800 -0.228700 0.809400
vn 0.381100 0.093800 0.919800
vn 0.372500 -0.228700 0.899300
vn 0.189900 -0.228700 0.954800
vn 0.194200 0.093800 0.976400
vn 0.000000 -0.228700 0.973500
vn 0.000000 0.093700 0.995600
vn -0.194200 0.093800 0.976400
vn -0.189900 -0.228700 0.954800
vn -0.381100 0.093800 0.919800
vn -0.372500 -0.228700 0.899300
vn -0.540800 -0.228700 0.809400
vn -0.553100 0.094100 0.827800
vn -0.688300 -0.228700 0.688300
vn -0.704000 0.093500 0.704000
vn -0.827800 0.094100 0.553100
vn -0.809400 -0.228700 0.540800
vn -0.919800 0.093800 0.381100
vn -0.899300 -0.228700 0.372500
vn -0.954800 -0.228700 0.189900
vn -0.976400 0.093800 0.194200
vn -0.973500 -0.228700 0.000000
vn -0.995600 0.093700 0.000000
vn -0.976400 0.093800 -0.194200
vn -0.954800 -0.228700 -0.189900
vn -0.919800 0.093800 -0.381000
vn -0.899400 -0.228700 -0.372500
vn -0.809400 -0.228700 -0.540800
vn -0.827800 0.093800 -0.553100
vn -0.688300 -0.228700 -0.688300
vn -0.704000 0.093700 -0.704000
vn -0.553100 0.093800 -0.827800
vn -0.540800 -0.228700 -0.809400
vn -0.381000 0.093800 -0.919800
vn -0.372500 -0.228700 -0.899400
vn -0.194200 0.093800 -0.976400
vn 0.381100 0.093800 -0.919800
vn 0.194200 0.093800 -0.976400
vn 0.193200 0.980400 -0.038400
vn -0.327600 0.942500 0.065100
vn 0.185000 0.979700 -0.076300
vn 0.270500 -0.707200 -0.653200
vn 0.653200 -0.707200 -0.270500
vn 0.653200 -0.707200 0.270500
vn 0.000000 -0.707100 -0.707100
vn 0.189900 -0.228700 -0.954800
vn 0.392300 -0.707300 -0.588000
vn 0.500100 -0.707000 -0.500100
vn 0.588000 -0.707300 -0.392300
vn 0.693400 -0.707200 -0.138100
vn 0.707100 -0.707100 0.000000
vn 0.693400 -0.707200 0.138100
vn 0.588000 -0.707300 0.392300
vn 0.500100 -0.707000 0.500100
vn 0.392300 -0.707300 0.588000
vn 0.270500 -0.707200 0.653200
vn 0.138100 -0.707200 0.693400
vn 0.000000 -0.707100 0.707100
vn -0.270500 -0.707200 0.653200
vn -0.392300 -0.707300 0.588000
vn -0.500100 -0.707000 0.500100
vn -0.588000 -0.707300 0.392300
vn -0.653200 -0.707200 0.270500
vn -0.693400 -0.707200 0.138100
vn -0.707100 -0.707100 0.000000
vn -0.653200 -0.707200 -0.270500
vn -0.587900 -0.707200 -0.392700
vn -0.392700 -0.707200 -0.587900
vn -0.270500 -0.707200 -0.653200
vn -0.138100 -0.707200 -0.693400
vn 0.000000 0.942500 -0.334100
vn 0.065100 0.942500 -0.327600
vn 0.128100 0.942500 -0.308500
vn 0.185400 0.942500 -0.277900
vn 0.236300 0.942500 -0.236300
vn 0.277900 0.942500 -0.185400
vn 0.308500 0.942500 -0.128100
vn 0.327600 0.942500 -0.065100
vn 0.334000 0.942500 0.000000
vn 0.327600 0.942500 0.065100
vn 0.308500 0.942500 0.128100
vn 0.277900 0.942500 0.185400
vn 0.236300 0.942500 0.236300
vn 0.185400 0.942500 0.277900
vn 0.128100 0.942500 0.308500
vn 0.065100 0.942500 0.327600
vn 0.000000 0.942500 0.334000
vn -0.065100 0.942500 0.327600
vn -0.128100 0.942500 0.308500
vn -0.185400 0.942500 0.277900
vn -0.236300 0.942500 0.236300
vn -0.277900 0.942500 0.185400
vn -0.308500 0.942500 0.128100
vn -0.334000 0.942500 0.000000
vn -0.327600 0.942600 -0.065200
vn -0.308600 0.942600 -0.127800
vn -0.277700 0.942600 -0.185500
vn -0.236200 0.942500 -0.236200
vn -0.185500 0.942600 -0.277700
vn -0.127800 0.942600 -0.308600
vn -0.065200 0.942600 -0.327600
vn -0.109500 0.980400 0.163500
vn 0.109500 0.980400 -0.163500
vn -0.163500 0.980400 -0.109500
vn -0.038300 0.980400 0.193200
vn 0.000000 0.980100 0.198500
vn -0.145500 0.978600 -0.145500
vn 0.192900 0.980400 0.038300
vn 0.181600 0.980500 0.075300
vn -0.145500 0.978600 0.145500
vn -0.038400 0.980400 -0.193200
vn -0.076300 0.979700 -0.185000
vn 0.109400 0.980400 0.163600
vn 0.139000 0.980500 0.139000
vn 0.038400 0.980400 -0.193200
vn 0.076300 0.979700 -0.185000
vn -0.193200 0.980400 0.038400
vn -0.185000 0.979700 0.076300
vn 0.163500 0.980400 -0.109500
vn 0.145400 0.978600 -0.145400
vn -0.193200 0.980400 -0.038400
vn -0.185200 0.979700 -0.076400
vn 0.198400 0.980100 0.000000
vn -0.076400 0.979700 0.185200
vn -0.109500 0.980400 -0.163500
vn 0.163500 0.980400 0.109300
vn -0.163600 0.980400 0.109500
vn 0.000000 0.980000 -0.198700
vn 0.075300 0.980500 0.181600
vn -0.198700 0.980000 0.000000
vn 0.038300 0.980400 0.193000
vn -0.500000 -0.707100 -0.499900
vn -0.693400 -0.707200 -0.138100
vn -0.138100 -0.707200 0.693400
vn 0.138100 -0.707200 -0.693400
f 33/1/1 64/2/2 65/3/3
f 36/1/4 35/2/5 71/3/6
f 37/1/7 36/2/4 73/3/8
f 75/1/9 38/2/10 73/3/8
f 77/1/11 39/2/12 75/3/9
f 40/1/13 39/2/12 79/3/14
f 41/1/15 40/2/13 81/3/16
f 83/1/17 42/2/18 81/3/16
f 85/1/19 43/2/20 83/3/17
f 44/1/21 43/2/20 87/3/22
f 45/1/23 44/2/21 89/3/24
f 91/1/25 46/2/26 89/3/24
f 93/1/27 47/2/28 91/3/25
f 48/1/29 47/2/28 95/3/30
f 49/1/31 48/2/29 97/3/32
f 99/1/33 50/2/34 97/3/32
f 101/1/35 51/2/36 99/3/33
f 52/1/37 51/2/36 103/3/38
f 53/1/39 52/2/37 105/3/40
f 107/1/41 54/2/42 105/3/40
f 109/1/43 55/2/44 107/3/41
f 56/1/45 55/2/44 111/3/46
f 57/1/47 56/2/45 113/3/48
f 115/1/49 58/2/50 113/3/48
f 117/1/51 59/2/52 115/3/49
f 60/1/53 59/2/52 119/3/54
f 61/1/55 60/2/53 121/3/56
f 123/1/57 62/2/58 121/3/56
f 125/1/59 63/2/60 123/3/57
f 64/1/2 63/2/60 127/3/61
f 69/1/62 35/2/5 67/3/63
f 152/1/64 112/2/65 151/3/66
f 3/1/67 7/2/68 11/3/69
f 1/1/70 33/2/1 34/3/71
f 34/1/71 35/2/5 3/3/67
f 36/1/4 4/2/72 35/3/5
f 5/1/73 4/2/72 37/3/7
f 38/1/10 6/2/74 37/3/7
f 7/1/68 6/2/74 39/3/12
f 39/1/12 40/2/13 8/3/75
f 40/1/13 41/2/15 9/3/76
f 41/1/15 42/2/18 10/3/77
f 42/1/18 43/2/20 11/3/69
f 44/1/21 12/2/78 43/3/20
f 13/1/79 12/2/78 45/3/23
f 46/1/26 14/2/80 45/3/23
f 46/1/26 47/2/28 15/3/81
f 47/1/28 48/2/29 16/3/82
f 48/1/29 49/2/31 17/3/83
f 17/1/83 49/2/31 50/3/34
f 50/1/34 51/2/36 19/3/84
f 52/1/37 20/2/85 51/3/36
f 21/1/86 20/2/85 53/3/39
f 54/1/42 22/2/87 53/3/39
f 23/1/88 22/2/87 55/3/44
f 55/1/44 56/2/45 24/3/89
f 56/1/45 57/2/47 25/3/90
f 25/1/90 57/2/47 58/3/50
f 58/1/50 59/2/52 27/3/91
f 28/1/92 27/2/91 60/3/53
f 28/1/92 60/2/53 61/3/55
f 62/1/58 30/2/93 61/3/55
f 63/1/60 31/2/94 62/3/58
f 64/1/2 33/2/1 1/3/70
f 63/1/60 64/2/2 32/3/95
f 66/1/96 68/2/97 65/3/3
f 70/1/98 69/2/62 68/3/97
f 70/1/98 72/2/99 69/3/62
f 74/1/100 73/2/8 72/3/99
f 74/1/100 76/2/101 73/3/8
f 78/1/102 77/2/11 76/3/101
f 78/1/102 80/2/103 77/3/11
f 82/1/104 81/2/16 80/3/103
f 82/1/104 84/2/105 81/3/16
f 86/1/106 85/2/19 84/3/105
f 86/1/106 88/2/107 85/3/19
f 90/1/108 89/2/24 88/3/107
f 90/1/108 92/2/109 89/3/24
f 94/1/110 93/2/27 92/3/109
f 94/1/110 96/2/111 93/3/27
f 98/1/112 97/2/32 96/3/111
f 98/1/112 100/2/113 97/3/32
f 102/1/114 101/2/35 100/3/113
f 102/1/114 104/2/115 101/3/35
f 106/1/116 105/2/40 104/3/115
f 106/1/116 108/2/117 105/3/40
f 110/1/118 109/2/43 108/3/117
f 110/1/118 112/2/65 109/3/43
f 114/1/119 113/2/48 112/3/65
f 114/1/119 116/2/120 113/3/48
f 118/1/121 117/2/51 116/3/120
f 120/1/122 119/2/54 118/3/121
f 122/1/123 121/2/56 120/3/122
f 121/1/56 122/2/123 124/3/124
f 124/1/124 126/2/125 123/3/57
f 128/1/126 127/2/61 126/3/125
f 66/1/96 65/2/3 128/3/126
f 67/1/63 34/2/71 65/3/3
f 132/1/127 148/2/128 140/3/129
f 130/1/130 68/2/97 129/3/131
f 140/1/129 141/2/132 88/3/107
f 154/1/133 155/2/134 116/3/120
f 132/1/127 133/2/135 72/3/99
f 144/1/136 96/2/111 143/3/137
f 158/1/138 124/2/124 157/3/139
f 146/1/140 147/2/141 100/3/113
f 136/1/142 80/2/103 135/3/143
f 150/1/144 108/2/117 149/3/145
f 138/1/146 139/2/147 84/3/105
f 152/1/64 153/2/148 112/3/65
f 130/1/130 131/2/149 68/3/97
f 142/1/150 92/2/109 141/3/132
f 155/1/134 156/2/151 118/3/121
f 134/1/152 76/2/101 133/3/135
f 144/1/136 145/2/153 96/3/111
f 159/1/154 126/2/125 158/3/138
f 148/1/128 104/2/115 147/3/141
f 136/1/142 137/2/155 80/3/103
f 150/1/144 151/2/66 108/3/117
f 140/1/129 88/2/107 139/3/147
f 154/1/133 116/2/120 153/3/148
f 132/1/127 72/2/99 131/3/149
f 142/1/150 143/2/137 92/3/109
f 160/1/156 129/2/131 128/3/126
f 156/1/151 157/2/139 120/3/122
f 146/1/140 100/2/113 145/3/153
f 134/1/152 135/2/143 76/3/101
f 159/1/154 160/2/156 126/3/125
f 148/1/128 149/2/145 104/3/115
f 138/1/146 84/2/105 137/3/155
f 48/1/29 95/2/30 97/3/32
f 12/1/78 44/2/21 45/3/23
f 38/1/10 37/2/7 73/3/8
f 44/1/21 87/2/22 89/3/24
f 47/1/28 46/2/26 91/3/25
f 51/1/36 101/2/35 103/3/38
f 121/1/56 119/2/54 120/3/122
f 64/1/2 127/2/61 65/3/3
f 55/1/44 109/2/43 111/3/46
f 27/1/91 31/2/94 3/3/67
f 54/1/42 53/2/39 105/3/40
f 52/1/37 103/2/38 105/3/40
f 4/1/72 36/2/4 37/3/7
f 39/1/12 77/2/11 79/3/14
f 50/1/34 49/2/31 97/3/32
f 40/1/13 79/2/14 81/3/16
f 35/1/5 34/2/71 67/3/63
f 55/1/44 54/2/42 107/3/41
f 126/1/125 124/2/124 158/3/138
f 46/1/26 45/2/23 89/3/24
f 39/1/12 38/2/10 75/3/9
f 47/1/28 93/2/27 95/3/30
f 58/1/50 57/2/47 113/3/48
f 63/1/60 62/2/58 123/3/57
f 51/1/36 50/2/34 99/3/33
f 124/1/124 122/2/123 157/3/139
f 59/1/52 58/2/50 115/3/49
f 63/1/60 125/2/59 127/3/61
f 59/1/52 117/2/51 119/3/54
f 117/1/51 115/2/49 116/3/120
f 43/1/20 42/2/18 83/3/17
f 80/1/103 79/2/14 77/3/11
f 19/1/84 15/2/81 16/3/82
f 31/1/94 27/2/91 30/3/93
f 29/1/157 30/2/93 28/3/92
f 27/1/91 24/2/89 26/3/158
f 11/1/69 7/2/68 8/3/75
f 23/1/88 19/2/84 22/3/87
f 21/1/86 22/2/87 20/3/85
f 19/1/84 16/2/82 18/3/159
f 27/1/91 23/2/88 24/3/89
f 15/1/81 11/2/69 14/3/80
f 13/1/79 14/2/80 12/3/78
f 11/1/69 8/2/75 10/3/77
f 27/1/91 3/2/67 19/3/84
f 7/1/68 4/2/72 6/3/74
f 27/1/91 19/2/84 23/3/88
f 3/1/67 32/2/95 2/3/160
f 32/1/95 1/2/70 2/3/160
f 15/1/81 19/2/84 11/3/69
f 24/1/89 25/2/90 26/3/158
f 27/1/91 59/2/52 60/3/53
f 16/1/82 17/2/83 18/3/159
f 7/1/68 3/2/67 4/3/72
f 8/1/75 9/2/76 10/3/77
f 4/1/72 5/2/73 6/3/74
f 3/1/67 11/2/69 19/3/84
f 22/1/87 19/2/84 20/3/85
f 14/1/80 11/2/69 12/3/78
f 2/1/160 34/2/71 3/3/67
f 2/1/160 1/2/70 34/3/71
f 30/1/93 27/2/91 28/3/92
f 3/1/67 31/2/94 32/3/95
f 31/1/94 30/2/93 62/3/58
f 6/1/74 5/2/73 37/3/7
f 20/1/85 52/2/37 53/3/39
f 4/1/72 3/2/67 35/3/5
f 7/1/68 39/2/12 8/3/75
f 8/1/75 40/2/13 9/3/76
f 9/1/76 41/2/15 10/3/77
f 10/1/77 42/2/18 11/3/69
f 30/1/93 29/2/157 61/3/55
f 43/1/20 85/2/19 87/3/22
f 35/1/5 69/2/62 71/3/6
f 14/1/80 46/2/26 15/3/81
f 15/1/81 47/2/28 16/3/82
f 16/1/82 48/2/29 17/3/83
f 18/1/159 17/2/83 50/3/34
f 18/1/159 50/2/34 19/3/84
f 22/1/87 21/2/86 53/3/39
f 14/1/80 13/2/79 45/3/23
f 20/1/85 19/2/84 51/3/36
f 23/1/88 55/2/44 24/3/89
f 24/1/89 56/2/45 25/3/90
f 26/1/158 25/2/90 58/3/50
f 26/1/158 58/2/50 27/3/91
f 6/1/74 38/2/10 39/3/12
f 29/1/157 28/2/92 61/3/55
f 22/1/87 54/2/42 55/3/44
f 12/1/78 11/2/69 43/3/20
f 32/1/95 64/2/2 1/3/70
f 31/1/94 63/2/60 32/3/95
f 153/1/148 114/2/119 112/3/65
f 96/1/111 94/2/110 143/3/137
f 93/1/27 91/2/25 92/3/109
f 89/1/24 87/2/22 88/3/107
f 105/1/40 103/2/38 104/3/115
f 104/1/115 103/2/38 101/3/35
f 101/1/35 99/2/33 100/3/113
f 100/1/113 99/2/33 97/3/32
f 81/1/16 79/2/14 80/3/103
f 97/1/32 95/2/30 96/3/111
f 72/1/99 71/2/6 69/3/62
f 92/1/109 91/2/25 89/3/24
f 76/1/101 75/2/9 73/3/8
f 109/1/43 107/2/41 108/3/117
f 112/1/65 111/2/46 109/3/43
f 147/1/141 102/2/114 100/3/113
f 85/1/19 83/2/17 84/3/105
f 96/1/111 95/2/30 93/3/27
f 68/1/97 66/2/96 129/3/131
f 108/1/117 107/2/41 105/3/40
f 88/1/107 86/2/106 139/3/147
f 77/1/11 75/2/9 76/3/101
f 129/1/131 66/2/96 128/3/126
f 80/1/103 78/2/102 135/3/143
f 36/1/4 71/2/6 73/3/8
f 127/1/61 125/2/59 126/3/125
f 34/1/71 33/2/1 65/3/3
f 56/1/45 111/2/46 113/3/48
f 123/1/57 121/2/56 124/3/124
f 156/1/151 120/2/122 118/3/121
f 60/1/53 119/2/54 121/3/56
f 116/1/120 115/2/49 113/3/48
f 157/1/139 122/2/123 120/3/122
f 132/1/127 131/2/149 130/3/130
f 134/1/152 133/2/135 132/3/127
f 136/1/142 135/2/143 134/3/152
f 138/1/146 137/2/155 136/3/142
f 140/1/129 139/2/147 138/3/146
f 142/1/150 141/2/132 140/3/129
f 144/1/136 143/2/137 142/3/150
f 146/1/140 145/2/153 144/3/136
f 148/1/128 147/2/141 146/3/140
f 150/1/144 149/2/145 148/3/128
f 152/1/64 151/2/66 150/3/144
f 154/1/133 153/2/148 152/3/64
f 155/1/134 154/2/133 150/3/144
f 158/1/138 157/2/139 156/3/151
f 159/1/154 155/2/134 150/3/144
f 130/1/130 129/2/131 160/3/156
f 133/1/135 74/2/100 72/3/99
f 138/1/146 136/2/142 134/3/152
f 138/1/146 134/2/152 140/3/129
f 142/1/150 148/2/128 144/3/136
f 132/1/127 130/2/130 160/3/156
f 154/1/133 152/2/64 150/3/144
f 145/1/153 98/2/112 96/3/111
f 148/1/128 146/2/140 144/3/136
f 150/1/144 148/2/128 132/3/127
f 159/1/154 158/2/138 156/3/151
f 134/1/152 132/2/127 140/3/129
f 159/1/154 150/2/144 132/3/127
f 148/1/128 142/2/150 140/3/129
f 159/1/154 132/2/127 160/3/156
f 155/1/134 159/2/154 156/3/151
f 160/1/156 128/2/126 126/3/125
f 76/1/101 74/2/100 133/3/135
f 113/1/48 111/2/46 112/3/65
f 155/1/134 118/2/121 116/3/120
f 131/1/149 70/2/98 68/3/97
f 112/1/65 110/2/118 151/3/66
f 73/1/8 71/2/6 72/3/99
f 68/1/97 67/2/63 65/3/3
f 84/1/105 83/2/17 81/3/16
f 69/1/62 67/2/63 68/3/97
f 149/1/145 106/2/116 104/3/115
f 119/1/54 117/2/51 118/3/121
f 92/1/109 90/2/108 141/3/132
f 84/1/105 82/2/104 137/3/155
f 126/1/125 125/2/59 123/3/57
f 151/1/66 110/2/118 108/3/117
f 100/1/113 98/2/112 145/3/153
f 135/1/143 78/2/102 76/3/101
f 72/1/99 70/2/98 131/3/149
f 65/1/3 127/2/61 128/3/126
f 143/1/137 94/2/110 92/3/109
f 104/1/115 102/2/114 147/3/141
f 116/1/120 114/2/119 153/3/148
f 42/1/18 41/2/15 81/3/16
f 139/1/147 86/2/106 84/3/105
f 88/1/107 87/2/22 85/3/19
f 62/1/58 61/2/55 121/3/56
f 108/1/117 106/2/116 149/3/145
f 137/1/155 82/2/104 80/3/103
f 141/1/132 90/2/108 88/3/107

1
data/levels/.gitignore vendored Normal file
View File

@ -0,0 +1 @@
*Backup*

View File

@ -0,0 +1,903 @@
<!-- Rotations around the three axes are given in degrees.
The objects are first rotated around the z-, then y- and then x-axis. -->
<!-- Marble: Do not change!(except for mass)-->
<composition>
<typeID>20</typeID>
<ignoreHeightmap>false</ignoreHeightmap>
<crossesChunks>true</crossesChunks>
<object>
<modelPath>marbleSmooth.obj</modelPath>
<xOffset>0.0</xOffset>
<yOffset>0.0</yOffset>
<zOffset>0.0</zOffset>
<xRot>0.0</xRot>
<yRot>0.0</yRot>
<zRot>0.0</zRot>
<scale>1.0</scale>
<mass>11.0</mass>
</object>
</composition>
<!-- Block -->
<composition>
<typeID>40</typeID>
<ignoreHeightmap>false</ignoreHeightmap>
<crossesChunks>true</crossesChunks>
<object>
<modelPath>block.obj</modelPath>
<xOffset>0.0</xOffset>
<yOffset>1.0</yOffset>
<zOffset>0.0</zOffset>
<xRot>0.0</xRot>
<yRot>0.0</yRot>
<zRot>0.0</zRot>
<scale>1.5</scale>
<mass>15.0</mass>
</object>
</composition>
<!-- Column -->
<composition>
<typeID>60</typeID>
<ignoreHeightmap>false</ignoreHeightmap>
<crossesChunks>false</crossesChunks>
<object>
<modelPath>column.obj</modelPath>
<xOffset>0.0</xOffset>
<yOffset>1.1</yOffset>
<zOffset>0.0</zOffset>
<xRot>0.0</xRot>
<yRot>0.0</yRot>
<zRot>0.0</zRot>
<scale>1.0</scale>
<mass>0.0</mass>
</object>
</composition>
<!-- Torch with Lightsource -->
<composition>
<typeID>80</typeID>
<ignoreHeightmap>false</ignoreHeightmap>
<crossesChunks>false</crossesChunks>
<object>
<modelPath>torch.obj</modelPath>
<xOffset>0.0</xOffset>
<yOffset>0.0</yOffset>
<zOffset>0.0</zOffset>
<xRot>0.0</xRot>
<yRot>0.0</yRot>
<zRot>0.0</zRot>
<scale>1.0</scale>
<mass>0.0</mass>
</object>
<light>
<xOffset>0.0</xOffset>
<yOffset>3</yOffset>
<zOffset>0.0</zOffset>
<rColour>1.0</rColour>
<gColour>0.9</gColour>
<bColour>0.3</bColour>
<intensity>8.0</intensity>
<flameOffset>-0.5</flameOffset>
<flameHeight>1.0</flameHeight>
<flameWidth>1.0</flameWidth>
</light>
</composition>
<!-- hinttorch -->
<composition>
<typeID>81</typeID>
<ignoreHeightmap>false</ignoreHeightmap>
<crossesChunks>false</crossesChunks>
<object>
<modelPath>torch.obj</modelPath>
<xOffset>0.0</xOffset>
<yOffset>0.0</yOffset>
<zOffset>0.0</zOffset>
<xRot>0.0</xRot>
<yRot>0.0</yRot>
<zRot>0.0</zRot>
<scale>1.0</scale>
<mass>0.0</mass>
</object>
<light>
<xOffset>0.0</xOffset>
<yOffset>3</yOffset>
<zOffset>0.0</zOffset>
<rColour>0.2</rColour>
<gColour>0.9</gColour>
<bColour>0</bColour>
<intensity>10.0</intensity>
<flameOffset>-0.5</flameOffset>
<flameHeight>1.0</flameHeight>
<flameWidth>1.0</flameWidth>
</light>
</composition>
<!-- Lightsource -->
<composition>
<typeID>85</typeID>
<ignoreHeightmap>false</ignoreHeightmap>
<light>
<xOffset>0.0</xOffset>
<yOffset>1.0</yOffset>
<zOffset>0.0</zOffset>
<rColour>1.0</rColour>
<gColour>1.0</gColour>
<bColour>1.0</bColour>
<intensity>4.0</intensity>
</light>
</composition>
<!-- Block on 2 Pillars -->
<composition>
<typeID>100</typeID>
<ignoreHeightmap>false</ignoreHeightmap>
<crossesChunks>false</crossesChunks>
<object>
<modelPath>column.obj</modelPath>
<xOffset>0.0</xOffset>
<yOffset>2.1</yOffset>
<zOffset>0.0</zOffset>
<xRot>0.0</xRot>
<yRot>0.0</yRot>
<zRot>0.0</zRot>
<scale>1.0</scale>
<mass>10.0</mass>
</object>
<object>
<modelPath>column.obj</modelPath>
<xOffset>3.0</xOffset>
<yOffset>2.1</yOffset>
<zOffset>0.0</zOffset>
<xRot>0.0</xRot>
<yRot>0.0</yRot>
<zRot>0.0</zRot>
<scale>1.0</scale>
<mass>10.0</mass>
</object>
<object>
<modelPath>block.obj</modelPath>
<xOffset>1.5</xOffset>
<yOffset>4.2</yOffset>
<zOffset>0.0</zOffset>
<xRot>0.0</xRot>
<yRot>0.0</yRot>
<zRot>0.0</zRot>
<scale>1.0</scale>
<mass>15.0</mass>
</object>
</composition>
<!-- Switch -->
<composition>
<typeID>120</typeID>
<ignoreHeightmap>false</ignoreHeightmap>
<crossesChunks>false</crossesChunks>
<object>
<modelPath>switchInner.obj</modelPath>
<xOffset>0.0</xOffset>
<yOffset>0.5</yOffset>
<zOffset>0.0</zOffset>
<xRot>0.0</xRot>
<yRot>0.0</yRot>
<zRot>0.0</zRot>
<scale>1.044</scale>
<mass>0.5</mass>
</object>
<object>
<modelPath>switchOuter.obj</modelPath>
<xOffset>0.0</xOffset>
<yOffset>-1</yOffset>
<zOffset>0.0</zOffset>
<xRot>0.0</xRot>
<yRot>0.0</yRot>
<zRot>0.0</zRot>
<scale>1.0</scale>
<mass>1.0</mass>
</object>
<object>
<modelPath>switchOuterBox</modelPath>
<xOffset>0.0</xOffset>
<yOffset>-1</yOffset>
<zOffset>1.105</zOffset>
<xRot>0.0</xRot>
<yRot>0.0</yRot>
<zRot>0.0</zRot>
<scale>1.0</scale>
<mass>0.0</mass>
</object>
<object>
<modelPath>switchOuterBox</modelPath>
<xOffset>0.0</xOffset>
<yOffset>-1</yOffset>
<zOffset>-1.105</zOffset>
<xRot>0.0</xRot>
<yRot>0.0</yRot>
<zRot>0.0</zRot>
<scale>1.0</scale>
<mass>0.0</mass>
</object>
<object>
<modelPath>switchOuterBox</modelPath>
<xOffset>1.105</xOffset>
<yOffset>-1</yOffset>
<zOffset>0.0</zOffset>
<xRot>0.0</xRot>
<yRot>90.0</yRot>
<zRot>0.0</zRot>
<scale>1.0</scale>
<mass>0.0</mass>
</object>
<object>
<modelPath>switchOuterBox</modelPath>
<xOffset>-1.105</xOffset>
<yOffset>-1</yOffset>
<zOffset>0.0</zOffset>
<xRot>0.0</xRot>
<yRot>90.0</yRot>
<zRot>0.0</zRot>
<scale>1.0</scale>
<mass>0.0</mass>
</object>
<object>
<modelPath>switchOuterBox</modelPath>
<xOffset>0.0</xOffset>
<yOffset>-2.105</yOffset>
<zOffset>0.0</zOffset>
<xRot>90.0</xRot>
<yRot>0.0</yRot>
<zRot>0.0</zRot>
<scale>1.0</scale>
<mass>0.0</mass>
</object>
</composition>
<!-- Bridge Block -->
<composition>
<typeID>140</typeID>
<ignoreHeightmap>true</ignoreHeightmap>
<crossesChunks>false</crossesChunks>
<object>
<modelPath>block.obj</modelPath>
<xOffset>0.0</xOffset>
<yOffset>20.0</yOffset>
<zOffset>0.0</zOffset>
<xRot>0.0</xRot>
<yRot>90.0</yRot>
<zRot>0.0</zRot>
<scale>1.5</scale>
<mass>0.0</mass>
</object>
</composition>
<!-- Rotated Bridge Block -->
<composition>
<typeID>141</typeID>
<ignoreHeightmap>true</ignoreHeightmap>
<crossesChunks>false</crossesChunks>
<object>
<modelPath>block.obj</modelPath>
<xOffset>0.0</xOffset>
<yOffset>20.0</yOffset>
<zOffset>0.0</zOffset>
<xRot>0.0</xRot>
<yRot>0.0</yRot>
<zRot>0.0</zRot>
<scale>1.5</scale>
<mass>0.0</mass>
</object>
</composition>
<!-- Bridge Block on Pillar-->
<composition>
<typeID>160</typeID>
<ignoreHeightmap>true</ignoreHeightmap>
<crossesChunks>false</crossesChunks>
<object>
<modelPath>block.obj</modelPath>
<xOffset>0.0</xOffset>
<yOffset>20.0</yOffset>
<zOffset>0.0</zOffset>
<xRot>0.0</xRot>
<yRot>90.0</yRot>
<zRot>0.0</zRot>
<scale>1.5</scale>
<mass>0.0</mass>
</object>
<object>
<modelPath>column.obj</modelPath>
<xOffset>0.0</xOffset>
<yOffset>18.0</yOffset>
<zOffset>0.0</zOffset>
<xRot>0.0</xRot>
<yRot>0.0</yRot>
<zRot>0.0</zRot>
<scale>1.5</scale>
<mass>0.0</mass>
</object>
<object>
<modelPath>column.obj</modelPath>
<xOffset>0.0</xOffset>
<yOffset>15.0</yOffset>
<zOffset>0.0</zOffset>
<xRot>0.0</xRot>
<yRot>0.0</yRot>
<zRot>0.0</zRot>
<scale>1.5</scale>
<mass>0.0</mass>
</object>
<object>
<modelPath>column.obj</modelPath>
<xOffset>0.0</xOffset>
<yOffset>12.0</yOffset>
<zOffset>0.0</zOffset>
<xRot>0.0</xRot>
<yRot>0.0</yRot>
<zRot>0.0</zRot>
<scale>1.5</scale>
<mass>0.0</mass>
</object>
</composition>
<!-- Rotated Bridge Block on Pillar-->
<composition>
<typeID>161</typeID>
<ignoreHeightmap>true</ignoreHeightmap>
<crossesChunks>false</crossesChunks>
<object>
<modelPath>block.obj</modelPath>
<xOffset>0.0</xOffset>
<yOffset>20.0</yOffset>
<zOffset>0.0</zOffset>
<xRot>0.0</xRot>
<yRot>0.0</yRot>
<zRot>0.0</zRot>
<scale>1.5</scale>
<mass>0.0</mass>
</object>
<object>
<modelPath>column.obj</modelPath>
<xOffset>0.0</xOffset>
<yOffset>18.0</yOffset>
<zOffset>0.0</zOffset>
<xRot>0.0</xRot>
<yRot>90.0</yRot>
<zRot>0.0</zRot>
<scale>1.5</scale>
<mass>0.0</mass>
</object>
<object>
<modelPath>column.obj</modelPath>
<xOffset>0.0</xOffset>
<yOffset>15.0</yOffset>
<zOffset>0.0</zOffset>
<xRot>0.0</xRot>
<yRot>90.0</yRot>
<zRot>0.0</zRot>
<scale>1.5</scale>
<mass>0.0</mass>
</object>
<object>
<modelPath>column.obj</modelPath>
<xOffset>0.0</xOffset>
<yOffset>12.0</yOffset>
<zOffset>0.0</zOffset>
<xRot>0.0</xRot>
<yRot>90.0</yRot>
<zRot>0.0</zRot>
<scale>1.5</scale>
<mass>0.0</mass>
</object>
</composition>
<!-- Rotated Bridge Block on Pillar with Torch -->
<composition>
<typeID>163</typeID>
<ignoreHeightmap>true</ignoreHeightmap>
<crossesChunks>false</crossesChunks>
<object>
<modelPath>torch.obj</modelPath>
<xOffset>0.0</xOffset>
<yOffset>21.0</yOffset>
<zOffset>-1.5</zOffset>
<xRot>0.0</xRot>
<yRot>0.0</yRot>
<zRot>0.0</zRot>
<scale>1.0</scale>
<mass>0.0</mass>
</object>
<light>
<xOffset>0.0</xOffset>
<yOffset>24</yOffset>
<zOffset>-1.5</zOffset>
<rColour>1.0</rColour>
<gColour>0.9</gColour>
<bColour>0.3</bColour>
<intensity>8.0</intensity>
<flameOffset>-0.5</flameOffset>
<flameHeight>1.0</flameHeight>
<flameWidth>1.0</flameWidth>
</light>
<object>
<modelPath>block.obj</modelPath>
<xOffset>0.0</xOffset>
<yOffset>20.0</yOffset>
<zOffset>0.0</zOffset>
<xRot>0.0</xRot>
<yRot>90.0</yRot>
<zRot>0.0</zRot>
<scale>1.5</scale>
<mass>0.0</mass>
</object>
<object>
<modelPath>column.obj</modelPath>
<xOffset>0.0</xOffset>
<yOffset>18.0</yOffset>
<zOffset>0.0</zOffset>
<xRot>0.0</xRot>
<yRot>0.0</yRot>
<zRot>0.0</zRot>
<scale>1.5</scale>
<mass>0.0</mass>
</object>
<object>
<modelPath>column.obj</modelPath>
<xOffset>0.0</xOffset>
<yOffset>15.0</yOffset>
<zOffset>0.0</zOffset>
<xRot>0.0</xRot>
<yRot>0.0</yRot>
<zRot>0.0</zRot>
<scale>1.5</scale>
<mass>0.0</mass>
</object>
<object>
<modelPath>column.obj</modelPath>
<xOffset>0.0</xOffset>
<yOffset>12.0</yOffset>
<zOffset>0.0</zOffset>
<xRot>0.0</xRot>
<yRot>0.0</yRot>
<zRot>0.0</zRot>
<scale>1.5</scale>
<mass>0.0</mass>
</object>
</composition>
<!-- Bridge Block on Pillar with torch -->
<composition>
<typeID>164</typeID>
<ignoreHeightmap>true</ignoreHeightmap>
<crossesChunks>false</crossesChunks>
<object>
<modelPath>torch.obj</modelPath>
<xOffset>-1.5</xOffset>
<yOffset>21.0</yOffset>
<zOffset>0.0</zOffset>
<xRot>0.0</xRot>
<yRot>0.0</yRot>
<zRot>0.0</zRot>
<scale>1.0</scale>
<mass>0.0</mass>
</object>
<light>
<xOffset>-1.5</xOffset>
<yOffset>24</yOffset>
<zOffset>0</zOffset>
<rColour>1.0</rColour>
<gColour>0.9</gColour>
<bColour>0.3</bColour>
<intensity>8.0</intensity>
<flameOffset>-0.5</flameOffset>
<flameHeight>1.0</flameHeight>
<flameWidth>1.0</flameWidth>
</light>
<object>
<modelPath>block.obj</modelPath>
<xOffset>0.0</xOffset>
<yOffset>20.0</yOffset>
<zOffset>0.0</zOffset>
<xRot>0.0</xRot>
<yRot>0.0</yRot>
<zRot>0.0</zRot>
<scale>1.5</scale>
<mass>0.0</mass>
</object>
<object>
<modelPath>column.obj</modelPath>
<xOffset>0.0</xOffset>
<yOffset>18.0</yOffset>
<zOffset>0.0</zOffset>
<xRot>0.0</xRot>
<yRot>0.0</yRot>
<zRot>0.0</zRot>
<scale>1.5</scale>
<mass>0.0</mass>
</object>
<object>
<modelPath>column.obj</modelPath>
<xOffset>0.0</xOffset>
<yOffset>15.0</yOffset>
<zOffset>0.0</zOffset>
<xRot>0.0</xRot>
<yRot>0.0</yRot>
<zRot>0.0</zRot>
<scale>1.5</scale>
<mass>0.0</mass>
</object>
<object>
<modelPath>column.obj</modelPath>
<xOffset>0.0</xOffset>
<yOffset>12.0</yOffset>
<zOffset>0.0</zOffset>
<xRot>0.0</xRot>
<yRot>0.0</yRot>
<zRot>0.0</zRot>
<scale>1.5</scale>
<mass>0.0</mass>
</object>
</composition>
<!-- Wall -->
<composition>
<typeID>180</typeID>
<ignoreHeightmap>true</ignoreHeightmap>
<crossesChunks>false</crossesChunks>
<object>
<modelPath>simpleWall.obj</modelPath>
<xOffset>0.0</xOffset>
<yOffset>25.0</yOffset>
<zOffset>0.0</zOffset>
<xRot>0.0</xRot>
<yRot>90.0</yRot>
<zRot>0.0</zRot>
<scale>1.48</scale>
<mass>0.0</mass>
</object>
</composition>
<!-- Rotated Wall (90 degrees)-->
<composition>
<typeID>181</typeID>
<ignoreHeightmap>true</ignoreHeightmap>
<crossesChunks>false</crossesChunks>
<object>
<modelPath>simpleWall.obj</modelPath>
<xOffset>0.0</xOffset>
<yOffset>25.0</yOffset>
<zOffset>0.0</zOffset>
<xRot>0.0</xRot>
<yRot>0.0</yRot>
<zRot>0.0</zRot>
<scale>1.48</scale>
<mass>0.0</mass>
</object>
</composition>
<!-- Light Block -->
<composition>
<typeID>200</typeID>
<ignoreHeightmap>false</ignoreHeightmap>
<crossesChunks>true</crossesChunks>
<object>
<modelPath>block.obj</modelPath>
<xOffset>0.0</xOffset>
<yOffset>5.0</yOffset>
<zOffset>0.0</zOffset>
<xRot>0.0</xRot>
<yRot>0.0</yRot>
<zRot>0.0</zRot>
<scale>1.5</scale>
<mass>1.0</mass>
</object>
</composition>
<!-- Gate -->
<composition>
<typeID>220</typeID>
<ignoreHeightmap>true</ignoreHeightmap>
<crossesChunks>false</crossesChunks>
<object>
<modelPath>gate.obj</modelPath>
<xOffset>0.0</xOffset>
<yOffset>25.0</yOffset>
<zOffset>0.0</zOffset>
<xRot>0.0</xRot>
<yRot>90.0</yRot>
<zRot>0.0</zRot>
<scale>1.5</scale>
<mass>100.0</mass>
</object>
</composition>
<!-- Rotated Gate -->
<composition>
<typeID>221</typeID>
<ignoreHeightmap>true</ignoreHeightmap>
<crossesChunks>false</crossesChunks>
<object>
<modelPath>gate.obj</modelPath>
<xOffset>0.0</xOffset>
<yOffset>25.0</yOffset>
<zOffset>0.0</zOffset>
<xRot>0.0</xRot>
<yRot>0.0</yRot>
<zRot>0.0</zRot>
<scale>1.5</scale>
<mass>100.0</mass>
</object>
</composition>
<!-- Block for Switch -->
<composition>
<typeID>240</typeID>
<ignoreHeightmap>false</ignoreHeightmap>
<crossesChunks>true</crossesChunks>
<object>
<modelPath>movableBlock.obj</modelPath>
<xOffset>0.0</xOffset>
<yOffset>5.0</yOffset>
<zOffset>0.0</zOffset>
<xRot>0.0</xRot>
<yRot>0.0</yRot>
<zRot>0.0</zRot>
<scale>1.5</scale>
<mass>2.0</mass>
</object>
</composition>
<!-- Brazier -->
<composition>
<typeID>245</typeID>
<ignoreHeightmap>false</ignoreHeightmap>
<crossesChunks>false</crossesChunks>
<object>
<modelPath>brazier.obj</modelPath>
<xOffset>0.0</xOffset>
<yOffset>0.0</yOffset>
<zOffset>0.0</zOffset>
<xRot>0.0</xRot>
<yRot>0.0</yRot>
<zRot>0.0</zRot>
<scale>1.5</scale>
<mass>0.0</mass>
</object>
</composition>
<!-- Hint -->
<composition>
<typeID>250</typeID>
<ignoreHeightmap>false</ignoreHeightmap>
<crossesChunks>false</crossesChunks>
<object>
<modelPath>hint.obj</modelPath>
<xOffset>0.0</xOffset>
<yOffset>0.1</yOffset>
<zOffset>0.0</zOffset>
<xRot>0.0</xRot>
<yRot>0.0</yRot>
<zRot>0.0</zRot>
<scale>1.5</scale>
<mass>0.0</mass>
</object>
</composition>
<!-- Exit -->
<composition>
<typeID>254</typeID>
<ignoreHeightmap>false</ignoreHeightmap>
<crossesChunks>false</crossesChunks>
<object>
<modelPath>exit.obj</modelPath>
<xOffset>0.0</xOffset>
<yOffset>0.1</yOffset>
<zOffset>0.0</zOffset>
<xRot>0.0</xRot>
<yRot>0.0</yRot>
<zRot>0.0</zRot>
<scale>1.5</scale>
<mass>0.0</mass>
</object>
</composition>
<!-- Available physicTypes are Player, Box, Button, TriangleMesh and None(no physics).
dampningL should be below 1, objects that can not move are enabled by setting their mass to 0. -->
<!-- Do not change the radius, it has to match the .obj -->
<objectData>
<modelPath>marbleSmooth.obj</modelPath>
<texturePath>cgtextures/marbleTexture.png</texturePath>
<ambientFactor>0.1</ambientFactor>
<diffuseFactor>0.5</diffuseFactor>
<specularFactor>0.5</specularFactor>
<shininess>3.0</shininess>
<physicType>Player</physicType>
<radius>1.0</radius>
<dampningL>0.15 </dampningL>
<dampningA>0.7</dampningA>
<renderable>true</renderable>
</objectData>
<!-- Do not change width height or length, they have to match the .obj -->
<objectData>
<modelPath>block.obj</modelPath>
<texturePath>cgtextures/blockTexture_small.png</texturePath>
<ambientFactor>0.1</ambientFactor>
<diffuseFactor>0.6</diffuseFactor>
<specularFactor>0.4</specularFactor>
<shininess>2.0</shininess>
<physicType>Box</physicType>
<width>4</width>
<height>1.88</height>
<length>1.99</length>
<dampningL>0.8</dampningL>
<dampningA>0.9</dampningA>
<renderable>true</renderable>
</objectData>
<objectData>
<modelPath>column.obj</modelPath>
<texturePath>cgtextures/columnTexture2.png</texturePath>
<ambientFactor>0.1</ambientFactor>
<diffuseFactor>0.6</diffuseFactor>
<specularFactor>0.4</specularFactor>
<shininess>2.0</shininess>
<physicType>TriangleMesh</physicType>
<dampningL>0.8</dampningL>
<dampningA>0.9</dampningA>
<renderable>true</renderable>
</objectData>
<objectData>
<modelPath>torch.obj</modelPath>
<texturePath>cgtextures/torchTexture2.png</texturePath>
<ambientFactor>0.1</ambientFactor>
<diffuseFactor>0.3</diffuseFactor>
<specularFactor>0.7</specularFactor>
<shininess>10.0</shininess>
<physicType>TriangleMesh</physicType>
<dampningL>0.8</dampningL>
<dampningA>0.9</dampningA>
<renderable>true</renderable>
</objectData>
<!-- Do not change width height or length, they have to match the .obj -->
<objectData>
<modelPath>switchInner.obj</modelPath>
<texturePath>cgtextures/switchInnerTexture.png</texturePath>
<ambientFactor>0.1</ambientFactor>
<diffuseFactor>0.6</diffuseFactor>
<specularFactor>0.4</specularFactor>
<shininess>2.0</shininess>
<physicType>Button</physicType>
<width>1.8</width>
<height>1</height>
<length>1.8</length>
<dampningL>0.5</dampningL>
<dampningA>1.0</dampningA>
<renderable>true</renderable>
</objectData>
<!-- Do not change width height or length, they have to match the .obj -->
<objectData>
<modelPath>switchOuterBox</modelPath>
<physicType>Box</physicType>
<width>2.54</width>
<height>2.54</height>
<length>0.33</length>
<dampningL>0.555</dampningL>
<dampningA>0.5</dampningA>
<renderable>false</renderable>
</objectData>
<objectData>
<modelPath>switchOuter.obj</modelPath>
<texturePath>cgtextures/switchOuterTexture.png</texturePath>
<ambientFactor>0.1</ambientFactor>
<diffuseFactor>0.6</diffuseFactor>
<specularFactor>0.4</specularFactor>
<shininess>1.0</shininess>
<physicType>None</physicType>
<renderable>true</renderable>
</objectData>
<!-- lengh may not be exact -->
<objectData>
<modelPath>simpleWall.obj</modelPath>
<texturePath>cgtextures/simpleWallTexture.png</texturePath>
<ambientFactor>0.1</ambientFactor>
<diffuseFactor>0.6</diffuseFactor>
<specularFactor>0.4</specularFactor>
<shininess>1.0</shininess>
<physicType>Box</physicType>
<width>1.2</width>
<height>6</height>
<length>6</length>
<dampningL>0.555</dampningL>
<dampningA>0.5</dampningA>
<renderable>true</renderable>
</objectData>
<objectData>
<modelPath>gate.obj</modelPath>
<texturePath>cgtextures/gateTexture.png</texturePath>
<ambientFactor>0.1</ambientFactor>
<diffuseFactor>0.6</diffuseFactor>
<specularFactor>0.4</specularFactor>
<shininess>2.0</shininess>
<physicType>Box</physicType>
<width>1.2</width>
<height>6</height>
<length>6</length>
<dampningL>0.555</dampningL>
<dampningA>0.5</dampningA>
<renderable>true</renderable>
</objectData>
<objectData>
<modelPath>movableBlock.obj</modelPath>
<texturePath>cgtextures/movableBlockTexture.png</texturePath>
<ambientFactor>0.1</ambientFactor>
<diffuseFactor>0.6</diffuseFactor>
<specularFactor>0.4</specularFactor>
<shininess>2.0</shininess>
<physicType>Box</physicType>
<width>1.56</width>
<height>1.56</height>
<length>1.56</length>
<dampningL>0.555</dampningL>
<dampningA>0.5</dampningA>
<renderable>true</renderable>
</objectData>
<objectData>
<modelPath>brazier.obj</modelPath>
<texturePath>cgtextures/brazierTexture.png</texturePath>
<ambientFactor>0.1</ambientFactor>
<diffuseFactor>0.6</diffuseFactor>
<specularFactor>0.4</specularFactor>
<shininess>1.0</shininess>
<physicType>TriangleMesh</physicType>
<dampningL>0.555</dampningL>
<dampningA>0.5</dampningA>
<renderable>true</renderable>
</objectData>
<objectData>
<modelPath>hint.obj</modelPath>
<texturePath>hintTexture2.png</texturePath>
<ambientFactor>0.1</ambientFactor>
<diffuseFactor>0.6</diffuseFactor>
<specularFactor>0.4</specularFactor>
<shininess>1.0</shininess>
<physicType>TriangleMesh</physicType>
<dampningL>0.555</dampningL>
<dampningA>0.5</dampningA>
<renderable>true</renderable>
</objectData>
<objectData>
<modelPath>exit.obj</modelPath>
<texturePath>cgtextures/exitTexture.png</texturePath>
<ambientFactor>0.1</ambientFactor>
<diffuseFactor>0.6</diffuseFactor>
<specularFactor>0.4</specularFactor>
<shininess>1.0</shininess>
<physicType>TriangleMesh</physicType>
<dampningL>0.555</dampningL>
<dampningA>0.5</dampningA>
<renderable>true</renderable>
</objectData>

BIN
data/levels/Level1.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 4.6 KiB

13446
data/levels/Level1.xml Normal file

File diff suppressed because it is too large Load Diff

BIN
data/levels/TestLevel.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 135 B

244
data/levels/TestLevel.xml Normal file
View File

@ -0,0 +1,244 @@
<composition>
<scale>1.0</scale>
<xRot>0.0</xRot>
<yRot>0.0</yRot>
<zRot>0.0</zRot>
<manualPos>false</manualPos>
<xPos>-4.500000</xPos>
<yOffset>0.0</yOffset>
<zPos>-3.500000</zPos>
<idGreen>0</idGreen>
<idBlue>8</idBlue>
<typeID>60</typeID>
<trigger>
<name>-</name>
<undo>false</undo>
<xPosition>0</xPosition>
<yPosition>0</yPosition>
<zPosition>0</zPosition>
<targetIdGreen>-</targetIdGreen>
<targetIdBlue>-</targetIdBlue>
<distance>1.0</distance>
<isBiggerThan>false</isBiggerThan>
<objectNum>0</objectNum>
<luaScript>-</luaScript>
<toChangeIdGreen>0</toChangeIdGreen>
<toChangeIdBlue>0</toChangeIdBlue>
<toChangeObjNum>0</toChangeObjNum>
</trigger>
</composition>
<composition>
<scale>1.0</scale>
<xRot>0.0</xRot>
<yRot>0.0</yRot>
<zRot>0.0</zRot>
<manualPos>false</manualPos>
<xPos>5.500000</xPos>
<yOffset>0.0</yOffset>
<zPos>5.500000</zPos>
<idGreen>0</idGreen>
<idBlue>7</idBlue>
<typeID>245</typeID>
<trigger>
<name>-</name>
<undo>false</undo>
<xPosition>0</xPosition>
<yPosition>0</yPosition>
<zPosition>0</zPosition>
<targetIdGreen>-</targetIdGreen>
<targetIdBlue>-</targetIdBlue>
<distance>1.0</distance>
<isBiggerThan>false</isBiggerThan>
<objectNum>0</objectNum>
<luaScript>-</luaScript>
<toChangeIdGreen>0</toChangeIdGreen>
<toChangeIdBlue>0</toChangeIdBlue>
<toChangeObjNum>0</toChangeObjNum>
</trigger>
</composition>
<composition>
<scale>1.0</scale>
<xRot>0.0</xRot>
<yRot>0.0</yRot>
<zRot>0.0</zRot>
<manualPos>false</manualPos>
<xPos>4.500000</xPos>
<yOffset>0.0</yOffset>
<zPos>-6.500000</zPos>
<idGreen>0</idGreen>
<idBlue>6</idBlue>
<typeID>200</typeID>
<trigger>
<name>-</name>
<undo>false</undo>
<xPosition>0</xPosition>
<yPosition>0</yPosition>
<zPosition>0</zPosition>
<targetIdGreen>-</targetIdGreen>
<targetIdBlue>-</targetIdBlue>
<distance>1.0</distance>
<isBiggerThan>false</isBiggerThan>
<objectNum>0</objectNum>
<luaScript>-</luaScript>
<toChangeIdGreen>0</toChangeIdGreen>
<toChangeIdBlue>0</toChangeIdBlue>
<toChangeObjNum>0</toChangeObjNum>
</trigger>
</composition>
<composition>
<scale>1.0</scale>
<xRot>0.0</xRot>
<yRot>0.0</yRot>
<zRot>0.0</zRot>
<manualPos>false</manualPos>
<xPos>-1.500000</xPos>
<yOffset>0.0</yOffset>
<zPos>-0.500000</zPos>
<idGreen>0</idGreen>
<idBlue>5</idBlue>
<typeID>80</typeID>
<trigger>
<name>-</name>
<undo>false</undo>
<xPosition>0</xPosition>
<yPosition>0</yPosition>
<zPosition>0</zPosition>
<targetIdGreen>-</targetIdGreen>
<targetIdBlue>-</targetIdBlue>
<distance>1.0</distance>
<isBiggerThan>false</isBiggerThan>
<objectNum>0</objectNum>
<luaScript>-</luaScript>
<toChangeIdGreen>0</toChangeIdGreen>
<toChangeIdBlue>0</toChangeIdBlue>
<toChangeObjNum>0</toChangeObjNum>
</trigger>
</composition>
<composition>
<scale>1.0</scale>
<xRot>0.0</xRot>
<yRot>0.0</yRot>
<zRot>0.0</zRot>
<manualPos>false</manualPos>
<xPos>-7.500000</xPos>
<yOffset>0.0</yOffset>
<zPos>7.500000</zPos>
<idGreen>0</idGreen>
<idBlue>2</idBlue>
<typeID>20</typeID>
<trigger>
<name>-</name>
<undo>false</undo>
<xPosition>0</xPosition>
<yPosition>0</yPosition>
<zPosition>0</zPosition>
<targetIdGreen>-</targetIdGreen>
<targetIdBlue>-</targetIdBlue>
<distance>1.0</distance>
<isBiggerThan>false</isBiggerThan>
<objectNum>0</objectNum>
<luaScript>-</luaScript>
<toChangeIdGreen>0</toChangeIdGreen>
<toChangeIdBlue>0</toChangeIdBlue>
<toChangeObjNum>0</toChangeObjNum>
</trigger>
</composition>
<composition>
<scale>1.0</scale>
<xRot>0.0</xRot>
<yRot>0.0</yRot>
<zRot>0.0</zRot>
<manualPos>false</manualPos>
<xPos>-7.500000</xPos>
<yOffset>0.0</yOffset>
<zPos>-7.500000</zPos>
<idGreen>0</idGreen>
<idBlue>1</idBlue>
<typeID>40</typeID>
<trigger>
<name>-</name>
<undo>false</undo>
<xPosition>0</xPosition>
<yPosition>0</yPosition>
<zPosition>0</zPosition>
<targetIdGreen>-</targetIdGreen>
<targetIdBlue>-</targetIdBlue>
<distance>1.0</distance>
<isBiggerThan>false</isBiggerThan>
<objectNum>0</objectNum>
<luaScript>-</luaScript>
<toChangeIdGreen>0</toChangeIdGreen>
<toChangeIdBlue>0</toChangeIdBlue>
<toChangeObjNum>0</toChangeObjNum>
</trigger>
</composition>
<ambientLight>
<rColour>1.0</rColour>
<gColour>1.0</gColour>
<bColour>1.0</bColour>
</ambientLight>
<fogColourDay>
<rColour>0.57</rColour>
<gColour>0.80</gColour>
<bColour>0.98</bColour>
<alpha>1.0</alpha>
</fogColourDay>
<fogColourRise>
<rColour>0.88</rColour>
<gColour>0.38</gColour>
<bColour>0.38</bColour>
<alpha>1.0</alpha>
</fogColourRise>
<fogColourNight>
<rColour>0.09</rColour>
<gColour>0.1</gColour>
<bColour>0.24</bColour>
<alpha>1.0</alpha>
</fogColourNight>
<directionalLight>
<xOffset>-1.0</xOffset>
<yOffset>1.5</yOffset>
<zOffset>1.0</zOffset>
<rColour>1.0</rColour>
<gColour>1.0</gColour>
<bColour>0.9</bColour>
<intensity>0.2</intensity>
</directionalLight>
<terrain>
<heightmap>heightmapTestLevel.png</heightmap>
<texture>sand.png</texture>
<ambientFactor>0.1</ambientFactor>
<diffuseFactor>0.8</diffuseFactor>
<specularFactor>0.2</specularFactor>
<shininess>1.0</shininess>
</terrain>
<skydome>
<model>skydome.obj</model>
<texture>skydomeNew.png</texture>
<nightTexture>nightskydome.png</nightTexture>
</skydome>
<physics>
<friction>0.9</friction>
<strength>300.0</strength>
</physics>
<positionConstraint>
<objectNum>0</objectNum>
<xPosition>0.0</xPosition>
<yPosition>0.0</yPosition>
<zPosition>0.0</zPosition>
<strength>100.0</strength>
</positionConstraint>

Binary file not shown.

After

Width:  |  Height:  |  Size: 33 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 165 B

View File

@ -0,0 +1,39 @@
local global = require( "global" )
if(global.triggeredSCRIPTNAME == nil) then
global.triggeredSCRIPTNAME = false
end
if(global.triggeredSCRIPTNAMEUndo == nil) then
global.triggeredSCRIPTNAMEUndo = false
end
function trigger(objectToChange, printDebug)
if(global.triggeredSCRIPTNAME == false) then
if(not level) then
print("No level found in Lua!")
return
end
--enter the scripts code here and replace all occurences of SCRIPTNAME with the name of the script.
global.triggeredSCRIPTNAME = true
if(printDebug) then
print("SCRIPTNAME")
end
end
end
function triggerUndo(objectToChange, printDebug)
if(global.triggeredSCRIPTNAMEUndo == false) then
if(not level) then
print("No level found in Lua!")
return
end
--enter the scripts undo code here
global.triggeredSCRIPTNAMEUndo = true
if(printDebug) then
print("SCRIPTNAMEUndo")
end
end
end

View File

@ -0,0 +1,17 @@
local global = require("global")
if(global.triggeredFristCheckpoint == nil) then
global.triggeredFristCheckpoint = false
end
function trigger(objectToChange, printDebug)
if(global.triggeredFristCheckpoint == false) then
if(not level) then
print("No level found in Lua!")
return
end
global.triggeredFristCheckpoint = true
if(printDebug) then
print("firstCheckpoint")
end
end
end

View File

@ -0,0 +1,3 @@
--global variable space
local global = {}
return global

View File

@ -0,0 +1,4 @@
-- Inits search path for require.
-- This file needs to stay next to the other scripts.
package.path = debug.getinfo(1,"S").source:match[[^@?(.*[\/])[^\/]-$]] .."?.lua;".. package.path

View File

@ -0,0 +1,51 @@
local global = require( "global" )
if(global.triggeredOpenFirstDoor == nil) then
global.triggeredOpenFirstDoor = false
end
if(global.triggeredOpenFirstDoorUndo == nil) then
global.triggeredOpenFirstDoorUndo = true
end
function trigger(objectToChange, printDebug)
if(global.triggeredOpenFirstDoor == false) then
if(not level) then
print("No level found in Lua!")
return
end
local strength = 100
local xPos = 17.5
local yPos = 33.0
local zPos = 81.5
level:moveObject(objectToChange, strength, xPos, yPos, zPos)
global.triggeredOpenFirstDoorUndo = false
global.triggeredOpenFirstDoor = true
if (printDebug) then
print("openFirstDoor")
end
end
end
function triggerUndo(objectToChange, printDebug)
if(global.triggeredOpenFirstDoorUndo == false) then
if(not level) then
print("No level found in Lua!")
return
end
local strength = 100
local xPos = 17.5
local yPos = 25.0
local zPos = 81.5
level:moveObject(objectToChange, strength, xPos, yPos, zPos)
global.triggeredOpenFirstDoor = false
global.triggeredOpenFirstDoorUndo = true
if(printDebug) then
print("openFirstDoorUndo")
end
end
end

View File

@ -0,0 +1,58 @@
local global = require( "global" )
if(global.triggeredOpenSecondDoor1 == nil) then
global.triggeredOpenSecondDoor1 = false
end
if(global.triggeredOpenSecondDoor1Undo == nil) then
global.triggeredOpenSecondDoor1Undo = true
end
function trigger(objectToChange, printDebug)
if(global.triggeredOpenSecondDoor1 == false) then
if(not level) then
print("No level found in Lua!")
return
end
if(global.openSecondDoorCounter == nil) then
global.openSecondDoorCounter = 0
end
if(global.openSecondDoorCounter == 0) then
global.openSecondDoorCounter = global.openSecondDoorCounter + 1
end
global.triggeredOpenSecondDoor1 = true
if(global.triggeredOpenSecondDoor1 == true and global.triggeredOpenSecondDoor2 == true and global.triggeredOpenSecondDoor3 == true and global.triggeredOpenSecondDoor4 == true) then
global.triggeredOpenSecondDoor1Undo = false
end
local xPos = -6.5
local yPos = 25.0
local zPos = 54.5
level:preloadLightPosition(xPos, yPos, zPos)
level:addLightByParameters(0.2, 0.9, 0.0, 4.0, -2.0, 1.3, 2.0)
if(printDebug) then
print("openSecondDoor1")
end
end
end
function triggerUndo(objectToChange, printDebug)
if(global.triggeredOpenSecondDoor1Undo == false) then
if(not level) then
print("No level found in Lua!")
return
end
global.openSecondDoorCounter = 0
global.triggeredOpenSecondDoor1 = false
global.triggeredOpenSecondDoor2 = false
global.triggeredOpenSecondDoor3 = false
global.triggeredOpenSecondDoor4 = false
level:deleteFourLights()
global.triggeredOpenSecondDoor1Undo = true
if(printDebug) then
print("openSecondDoor1Undo")
end
end
end

View File

@ -0,0 +1,58 @@
local global = require( "global" )
if(global.triggeredOpenSecondDoor2 == nil) then
global.triggeredOpenSecondDoor2 = false
end
if(global.triggeredOpenSecondDoor2Undo == nil) then
global.triggeredOpenSecondDoor2Undo = true
end
function trigger(objectToChange, printDebug)
if(global.triggeredOpenSecondDoor2 == false) then
if(not level) then
print("No level found in Lua!")
return
end
if(global.openSecondDoorCounter == nil) then
global.openSecondDoorCounter = 0
end
if(global.openSecondDoorCounter == 1) then
global.openSecondDoorCounter = global.openSecondDoorCounter + 1
end
global.triggeredOpenSecondDoor2 = true
if(global.triggeredOpenSecondDoor1 == true and global.triggeredOpenSecondDoor2 == true and global.triggeredOpenSecondDoor3 == true and global.triggeredOpenSecondDoor4 == true) then
global.triggeredOpenSecondDoor2Undo = false
end
local xPos = -53.5
local yPos = 25.0
local zPos = 26.5
level:preloadLightPosition(xPos, yPos, zPos)
level:addLightByParameters(0.2, 0.9, 0.0, 4.0, -2.0, 1.3, 2.0)
if(printDebug) then
print("openSecondDoor2")
end
end
end
function triggerUndo(objectToChange, printDebug)
if(global.triggeredOpenSecondDoor2Undo == false) then
if(not level) then
print("No level found in Lua!")
return
end
global.openSecondDoorCounter = 0
global.triggeredOpenSecondDoor1 = false
global.triggeredOpenSecondDoor2 = false
global.triggeredOpenSecondDoor3 = false
global.triggeredOpenSecondDoor4 = false
level:deleteFourLights()
global.triggeredOpenSecondDoor2Undo = true
if(printDebug) then
print("openSecondDoor2Undo")
end
end
end

View File

@ -0,0 +1,58 @@
local global = require( "global" )
if(global.triggeredOpenSecondDoor3 == nil) then
global.triggeredOpenSecondDoor3 = false
end
if(global.triggeredOpenSecondDoor3Undo == nil) then
global.triggeredOpenSecondDoor3Undo = true
end
function trigger(objectToChange, printDebug)
if(global.triggeredOpenSecondDoor3 == false) then
if(not level) then
print("No level found in Lua!")
return
end
if(global.openSecondDoorCounter == nil) then
global.openSecondDoorCounter = 0
end
if(global.openSecondDoorCounter == 2) then
global.openSecondDoorCounter = global.openSecondDoorCounter + 1
end
global.triggeredOpenSecondDoor3 = true
if(global.triggeredOpenSecondDoor1 == true and global.triggeredOpenSecondDoor2 == true and global.triggeredOpenSecondDoor3 == true and global.triggeredOpenSecondDoor4 == true) then
global.triggeredOpenSecondDoor3Undo = false
end
local xPos = -6.5
local yPos = 25.0
local zPos = 26.5
level:preloadLightPosition(xPos, yPos, zPos)
level:addLightByParameters(0.2, 0.9, 0.0, 4.0, -2.0, 1.3, 2.0)
if(printDebug) then
print("openSecondDoor3")
end
end
end
function triggerUndo(objectToChange, printDebug)
if(global.triggeredOpenSecondDoor3Undo == false) then
if(not level) then
print("No level found in Lua!")
return
end
global.openSecondDoorCounter = 0
global.triggeredOpenSecondDoor1 = false
global.triggeredOpenSecondDoor2 = false
global.triggeredOpenSecondDoor3 = false
global.triggeredOpenSecondDoor4 = false
level:deleteFourLights()
global.triggeredOpenSecondDoor3Undo = true
if(printDebug) then
print("openSecondDoor3Undo")
end
end
end

View File

@ -0,0 +1,67 @@
local global = require( "global" )
if(global.triggeredOpenSecondDoor4 == nil) then
global.triggeredOpenSecondDoor4 = false
end
if(global.triggeredOpenSecondDoor4Undo == nil) then
global.triggeredOpenSecondDoor4Undo = true
end
function trigger(objectToChange, printDebug)
if(global.triggeredOpenSecondDoor4 == false) then
if(not level) then
print("No level found in Lua!")
return
end
if(global.openSecondDoorCounter == nil) then
global.openSecondDoorCounter = 0
end
if(global.openSecondDoorCounter == 3) then
global.openSecondDoorCounter = global.openSecondDoorCounter + 1
end
global.triggeredOpenSecondDoor4 = true
if(global.triggeredOpenSecondDoor1 == true and global.triggeredOpenSecondDoor2 == true and global.triggeredOpenSecondDoor3 == true and global.triggeredOpenSecondDoor4 == true) then
if(global.openSecondDoorCounter == 4) then
local strength = 100
local xPos = -81.5
local yPos = 33
local zPos = 4.5
level:moveObject(objectToChange, strength, xPos, yPos, zPos)
global.openedSecondDoor = true
else
global.triggeredOpenSecondDoor4Undo = false
end
end
local xPos = -53.5
local yPos = 25.0
local zPos = 54.5
level:preloadLightPosition(xPos, yPos, zPos)
level:addLightByParameters(0.2, 0.9, 0.0, 4.0, -2.0, 1.3, 2.0)
if(printDebug) then
print("openSecondDoor4")
end
end
end
function triggerUndo(objectToChange, printDebug)
if(global.triggeredOpenSecondDoor4Undo == false) then
if(not level) then
print("No level found in Lua!")
return
end
global.openSecondDoorCounter = 0
global.triggeredOpenSecondDoor1 = false
global.triggeredOpenSecondDoor2 = false
global.triggeredOpenSecondDoor3 = false
global.triggeredOpenSecondDoor4 = false
level:deleteFourLights()
global.triggeredOpenSecondDoor4Undo = true
if(printDebug) then
print("openSecondDoor4Undo")
end
end
end

View File

@ -0,0 +1,51 @@
local global = require( "global" )
if(global.triggeredOpenThirdDoor == nil) then
global.triggeredOpenThirdDoor = false
end
if(global.triggeredOpenThirdDoorUndo == nil) then
global.triggeredOpenThirdDoorUndo = true
end
function trigger(objectToChange, printDebug)
if(global.triggeredOpenThirdDoor == false) then
if(not level) then
print("No level found in Lua!")
return
end
local strength = 100
local xPos = -172.5
local yPos = 33
local zPos = 58.5
level:moveObject(objectToChange, strength, xPos, yPos, zPos)
global.triggeredOpenThirdDoorUndo = false
global.triggeredOpenThirdDoor = true
if(printDebug) then
print("openThirdDoor")
end
end
end
function triggerUndo(objectToChange, printDebug)
if(global.triggeredOpenThirdDoorUndo == false) then
if(not level) then
print("No level found in Lua!")
return
end
local strength = 100
local xPos = -172.5
local yPos = 25
local zPos = 58.5
level:moveObject(objectToChange, strength, xPos, yPos, zPos)
global.triggeredOpenThirdDoor = false
global.triggeredOpenThirdDoorUndo = true
if(printDebug) then
print("openThirdDoorUndo")
end
end
end

View File

@ -0,0 +1,21 @@
local global = require( "global" )
if(global.triggeredResetBox == nil) then
global.triggeredResetBox = false
end
function trigger(objectToChange, printDebug)
if(global.triggeredResetBox == false) then
if(not level) then
print("No level found in Lua!")
return
end
local x = -101.5
local y = 22.5
local z =8.5
level:forceMove(x, y, z, objectToChange)
if(printDebug) then
print("reset box")
end
end
end

View File

@ -0,0 +1,35 @@
local global = require( "global" )
if(global.triggeredResetPlayer == nil) then
global.triggeredResetPlayer = false
end
function trigger(objectToChange, printDebug)
if(global.triggeredResetPlayer == false) then
if(not level) then
print("No level found in Lua!")
return
end
if(global.triggeredFristCheckpoint == true) then
if(global.triggeredOpenFirstDoor == true) then
if(global.openedSecondDoor == true) then
if(global.triggeredOpenThirdDoor == true) then
level:movePlayer(-169.5,21.5,58.5)
else
level:movePlayer(-78.5,21.75,4.5)
end
else
level:movePlayer(17.5,21.0,87.0)
end
else
level:movePlayer(18.0, 23.0, 145.0)
end
else
level:resetPlayer()
end
if(printDebug) then
print("reset player")
end
end
end

View File

@ -0,0 +1,21 @@
local global = require( "global" )
if(global.triggeredSunStart == nil) then
global.triggeredSunStart = false
end
function trigger(objectToChange, printDebug)
if(global.triggeredSunStart == false) then
if(not level) then
print("No level found in Lua!")
return
end
local time = os.clock()
global.sunStartTime = time
global.triggeredSunStart = true
level:activateEndgame()
if(printDebug) then
print("sunStart")
end
end
end

View File

@ -0,0 +1,28 @@
local global = require( "global" )
function trigger(objectToChange)
if(global.triggeredSunStart) then
if(not level) then
print("No level found in Lua!")
return
end
local maxTimeDiff = 30
local timeDiff = os.clock()- global.sunStartTime
if(timeDiff > maxTimeDiff)then
timeDiff = maxTimeDiff
end
timeDiff = timeDiff/maxTimeDiff
local x = 10
local y = -18 + math.sqrt(timeDiff) * 29
local z = -8 + timeDiff * 15
level:setSunDirection(x,y,z)
end
end
--local x = 0.7 + 0.3 * timeDiff
--local y = math.sqrt(timeDiff) * 2.2 - 1.5
--local z = -0.7 - 0.7 * timeDiff
--start 1,-6,-2
--ziel 10,10,10

9
data/shader/debug.fsh Normal file
View File

@ -0,0 +1,9 @@
#version 150
in vec3 vColor;
out vec4 oColor;
void main() {
oColor = vec4(vColor, 1.0);
}

13
data/shader/debug.vsh Normal file
View File

@ -0,0 +1,13 @@
#version 150
uniform mat4 viewProjectionMatrix;
in vec3 aPosition;
in vec3 aColor;
out vec3 vColor;
void main() {
vColor = aColor;
gl_Position = viewProjectionMatrix * vec4(aPosition, 1.0);
}

5
data/shader/depth.fsh Normal file
View File

@ -0,0 +1,5 @@
#version 150
void main() {
gl_FragDepth = gl_FragCoord.z;
}

11
data/shader/depth.vsh Normal file
View File

@ -0,0 +1,11 @@
#version 150
in vec3 aPosition;
in vec3 aNormal;
in vec3 aTexcoord;
uniform mat4 modelViewProjectionMatrix;
void main() {
gl_Position = modelViewProjectionMatrix * vec4(aPosition, 1.0);
}

View File

@ -0,0 +1,13 @@
#version 150
in vec4 fragPosition;
uniform float farPlane;
void main() {
float nearPlane = 0.1;
float A = -(farPlane+nearPlane)/(farPlane-nearPlane);
float B = -2*(farPlane*nearPlane)/(farPlane - nearPlane);
float value = 0.5*(-A*length(fragPosition) + B)/length(fragPosition) + 0.5;
gl_FragDepth = value;
}

View File

@ -0,0 +1,15 @@
#version 150
in vec3 aPosition;
in vec3 aNormal;
in vec3 aTexcoord;
uniform mat4 modelViewProjectionMatrix;
uniform mat4 modelViewMatrix;
out vec4 fragPosition;
void main() {
fragPosition = modelViewMatrix * vec4(aPosition, 1.0);
gl_Position = modelViewProjectionMatrix * vec4(aPosition, 1.0);
}

17
data/shader/flame.fsh Normal file
View File

@ -0,0 +1,17 @@
#version 150
in vec3 fColor;
out vec4 oColor;
uniform bool withColor;
void main() {
if (withColor) {
oColor = vec4(fColor, 0.6);
}
else {
oColor = vec4(0.0, 0.0, 0.0, 0.0);
}
}

104
data/shader/flame.gsh Normal file
View File

@ -0,0 +1,104 @@
#version 150
uniform mat4 modelViewProjectionMatrix;
uniform float time;
uniform bool bottom;
uniform int circle_index;
uniform vec2 skew;
layout(points) in;
layout(triangle_strip, max_vertices = 146) out;
in vec3 Color[];
out vec3 fColor;
const float PI = 3.1415926;
const float transition_point_1 = 0.486946;
const float cos_p1_1 = 0.35;
const float cos_p2_1 = 2.0;
const float ex_p1_1 = -0.193;
const float ex_p2_1 = 2.9426;
const float begin_1 = -0.8;
const float end_1 = 2;
const float transition_point_2 = 0.549778;
const float cos_p1_2 = 0.5;
const float cos_p2_2 = 2.0;
const float ex_p1_2 = 0.677;
const float ex_p2_2 = 3.9314;
const float begin_2 = -0.8;
const float end_2 = 1.3;
float flickerFunction() {
float windPower = length(skew);
if (windPower < 0.8) {
windPower += 0.2;
}
return windPower * pow(sin((20.0/(windPower))*time + gl_in[0].gl_Position.x*gl_in[0].gl_Position.z), 2) + (1-windPower);
}
float radiusFunction(float x) {
float value_1 = 0.0;
float value_2 = 0.0;
if (x < transition_point_1) {
value_1 = cos_p1_1 * cos(cos_p2_1 * x);
}
else {
value_1 = exp(ex_p1_1 - ex_p2_1 * x);
}
if (x < transition_point_2) {
value_2 = cos_p1_2 * cos(cos_p2_2 * x);
}
else {
value_2 = exp(ex_p1_2 - ex_p2_2 * x);
}
return mix(value_1, value_2, flickerFunction());
}
void main() {
fColor = Color[0];
float resolution = 6.0;
float this_begin = mix(begin_1, begin_2, flickerFunction());
float this_end = mix(end_1, end_2, flickerFunction());
float step = abs(this_end-this_begin)/resolution/2.0;
float i = 0.0;
float render_end = 0.0;
if (bottom) {
i = this_begin;
render_end = (this_end-this_begin)/2.0+step;
}
else {
i = (this_end-this_begin)/2.0;
render_end = this_end;
}
for (i; i<render_end; i+=step) {
float downRadius = radiusFunction(i);
float upRadius = radiusFunction(i+step);
int j = int(resolution/2.0) * circle_index;
int circle_end = int(resolution/2.0) * (circle_index + 1);
for (j; j<circle_end; j++) {
float leftAngle = PI * 2.0 / resolution / 4.0 * j;
float rightAngle = PI * 2.0 / resolution / 4.0 * (j+1);
vec4 offset = vec4(cos(rightAngle) * downRadius, i, -sin(rightAngle) * downRadius, 0.0);
gl_Position = gl_in[0].gl_Position + modelViewProjectionMatrix * offset;
EmitVertex();
offset = vec4(cos(rightAngle) * upRadius, i + step, -sin(rightAngle) * upRadius, 0.0);
gl_Position = gl_in[0].gl_Position + modelViewProjectionMatrix * offset;
EmitVertex();
offset = vec4(cos(leftAngle) * downRadius, i, -sin(leftAngle) * downRadius, 0.0);
gl_Position = gl_in[0].gl_Position + modelViewProjectionMatrix * offset;
EmitVertex();
offset = vec4(cos(leftAngle) * upRadius, i + step, -sin(leftAngle) * upRadius, 0.0);
gl_Position = gl_in[0].gl_Position + modelViewProjectionMatrix * offset;
EmitVertex();
EndPrimitive();
}
}
}

17
data/shader/flame.vsh Normal file
View File

@ -0,0 +1,17 @@
#version 150
uniform mat4 viewProjectionMatrix;
uniform vec2 skew;
in vec3 aPosition;
in vec3 aColor;
out vec3 Color;
const float end = 0.8;
void main () {
Color = aColor;
vec3 position = aPosition + vec3(-sin(skew.y)*end, 0.0, sin(skew.x)*end);
gl_Position = viewProjectionMatrix * vec4(position, 1.0);
}

View File

@ -0,0 +1,21 @@
#version 150
in vec2 vTexCoord;
uniform sampler2D light_fbo;
uniform int windowSizeX;
uniform int windowSizeY;
out vec4 oColor;
const float lookup_offset = 4.0;
void main() {
vec4 sum = vec4(0.0);
for(float i = -lookup_offset; i<=lookup_offset; i+=1.0) {
for(float j = -lookup_offset; j<=lookup_offset; j+=1.0) {
sum += texture(light_fbo, vec2(vTexCoord.x + i * 1.0/(windowSizeX/2.0), vTexCoord.y + j * 1.0/(windowSizeY/2.0)))/pow(lookup_offset*2+1, 2.0);
}
}
oColor = sum;
}

View File

@ -0,0 +1,11 @@
#version 150
in vec2 aPosition;
in vec2 aTexCoord;
out vec2 vTexCoord;
void main() {
vTexCoord = aTexCoord;
gl_Position = vec4(aPosition, 0.0, 1.0);
}

15
data/shader/loading.fsh Normal file
View File

@ -0,0 +1,15 @@
#version 150
in vec2 vTexCoord;
uniform float time;
uniform sampler2D screen;
uniform sampler2D screenContinue;
out vec4 oColor;
void main() {
vec4 screenColor = texture(screen, vTexCoord);
vec4 screenContinueColor = texture(screenContinue, vTexCoord);
oColor = mix(screenColor, screenContinueColor, pow(sin(time), 2));
}

11
data/shader/loading.vsh Normal file
View File

@ -0,0 +1,11 @@
#version 150
in vec2 aPosition;
in vec2 aTexCoord;
out vec2 vTexCoord;
void main() {
vTexCoord = aTexCoord;
gl_Position = vec4(aPosition, 0.0, 1.0);
}

406
data/shader/phong.fsh Normal file
View File

@ -0,0 +1,406 @@
#version 150
in vec3 vNormal;
in vec2 vTexCoord;
in vec4 fragPosition;
in vec4 shadowCoord0;
in vec4 shadowCoord1;
in vec4 shadowCoord2;
in vec4 shadowCoord3;
in vec4 shadowCoord4;
out vec4 oColor;
uniform sampler2D uTexture;
uniform sampler2DShadow shadowMap_directional0;
uniform sampler2DShadow shadowMap_directional1;
uniform sampler2DShadow shadowMap_directional2;
uniform sampler2DShadow shadowMap_directional3;
uniform sampler2DShadow shadowMap_directional4;
uniform samplerCubeShadow shadowMap_cube0;
uniform samplerCubeShadow shadowMap_cube1;
uniform samplerCubeShadow shadowMap_cube2;
uniform samplerCubeShadow shadowMap_cube3;
uniform samplerCubeShadow shadowMap_cube4;
uniform samplerCubeShadow shadowMap_cube5;
uniform samplerCubeShadow shadowMap_cube6;
uniform samplerCubeShadow shadowMap_cube7;
uniform samplerCubeShadow shadowMap_cube8;
uniform samplerCubeShadow shadowMap_cube9;
uniform samplerCubeShadow shadowMap_cube10;
uniform samplerCubeShadow shadowMap_cube11;
uniform samplerCubeShadow shadowMap_cube12;
uniform samplerCubeShadow shadowMap_cube13;
uniform samplerCubeShadow shadowMap_cube14;
uniform samplerCubeShadow shadowMap_cube15;
uniform samplerCubeShadow shadowMap_cube16;
uniform samplerCubeShadow shadowMap_cube17;
uniform samplerCubeShadow shadowMap_cube18;
uniform samplerCubeShadow shadowMap_cube19;
uniform samplerCubeShadow shadowMap_cube20;
uniform samplerCubeShadow shadowMap_cube21;
uniform samplerCubeShadow shadowMap_cube22;
uniform samplerCubeShadow shadowMap_cube23;
uniform samplerCubeShadow shadowMap_cube24;
uniform samplerCubeShadow shadowMap_cube25;
uniform vec3 ambientColor;
uniform float ambientFactor;
uniform float diffuseFactor;
uniform float specularFactor;
uniform vec3 camera;
uniform float shininess;
uniform int lightCount;
uniform int maxShadowRenderCount;
uniform vec3 directionalLightVector;
uniform vec3 directionalColor;
uniform float targetDirectionalIntensity;
uniform vec3 lightSources[32];
uniform vec3 lightColors[32];
uniform float lightIntensities[32];
uniform bool isFlame[32];
uniform float farPlane;
uniform vec4 fogColorDay;
uniform vec4 fogColorRise;
uniform vec4 fogColorNight;
uniform vec3 cameraCenter;
uniform bool movingTexture;
uniform vec2 movement;
uniform vec2 movingTextureOffset;
uniform float time;
vec2 poissonDisk[16] = vec2[](
vec2( -0.94201624, -0.39906216 ),
vec2( 0.94558609, -0.76890725 ),
vec2( -0.094184101, -0.92938870 ),
vec2( 0.34495938, 0.29387760 ),
vec2( -0.91588581, 0.45771432 ),
vec2( -0.81544232, -0.87912464 ),
vec2( -0.38277543, 0.27676845 ),
vec2( 0.97484398, 0.75648379 ),
vec2( 0.44323325, -0.97511554 ),
vec2( 0.53742981, -0.47373420 ),
vec2( -0.26496911, -0.41893023 ),
vec2( 0.79197514, 0.19090188 ),
vec2( -0.24188840, 0.99706507 ),
vec2( -0.81409955, 0.91437590 ),
vec2( 0.19984126, 0.78641367 ),
vec2( 0.14383161, -0.14100790 )
);
vec3 poissonDisk3D[16] = vec3[] (
vec3( 0.541140674379, -0.67854138769, 0.482325914183 ),
vec3( -0.427608163826, 0.79190057714, -0.403470341832 ),
vec3( -0.226067542852, -0.628594453842, -0.661035377645 ),
vec3( -0.811708612677, -0.0340861134035, 0.580406649804 ),
vec3( 0.731005386334, 0.0695021546098, -0.606146385926 ),
vec3( 0.213076426293, 0.6269493206, 0.744636925499 ),
vec3( -0.124461723355, 0.0768244304602, 0.0386785336463 ),
vec3( -0.945249148757, 0.00944808073483, -0.318861658446 ),
vec3( 0.802723394956, 0.124750583818, 0.273800670393 ),
vec3( -0.0571970562351, -0.156203447559, 0.908410256437 ),
vec3( -0.442066534087, -0.709699743423, 0.232493422739 ),
vec3( -0.317263286361, 0.194934041517, -0.923816906742 ),
vec3( 0.381481981953, 0.798989636516, -0.0466460997255 ),
vec3( -0.42752547127, 0.597430401925, 0.374108050255 ),
vec3( 0.12603138305, -0.980780120028, -0.120190366913 ),
vec3( 0.470540545819, -0.633374601042, -0.585070778068 )
);
float flickerFunction(int index) {
float windPower = length(movement);
if (windPower < 0.8) {
windPower += 0.2;
}
return windPower * pow(sin((20.0/(windPower))*time + lightSources[index].x*lightSources[index].z), 2) + (1-windPower);
}
vec4 fogColor(float dot) {
float riseFactor = 0.0;
float dayFactor = 0.0;
if(dot<-0.52) {
riseFactor = 0.0;
}
else if (dot>0.52) {
riseFactor = 0.0;
}
else {
riseFactor = cos(3*dot);
}
if(dot<0.0) {
dayFactor = 0.0;
}
else if(dot>1.0) {
dayFactor = 1.0;
}
else {
dayFactor = sin(dot);
}
if (dot <0.0) {
return mix(fogColorNight, fogColorRise, riseFactor);
}
else {
return mix(fogColorRise, fogColorDay, dayFactor);
}
}
vec3 sunColor(float dot){
float riseFactor = 0.0;
if(dot<-0.79) {
riseFactor = 0.0;
}
else if (dot>0.79) {
riseFactor = 0.0;
}
else {
riseFactor = cos(2*dot);
}
return mix(directionalColor, vec3(fogColorRise), riseFactor);
}
float sunIntensity(float dot) {
return targetDirectionalIntensity * sin(2*dot);
}
float sampleDirectionalShadow(sampler2DShadow shadowMap, vec4 shadowCoord, float maxBias, float intensity) {
float visibility = 1.0;
const float stretching = 650.0;
float bias = 0.001*tan(acos(clamp(dot(vNormal, -directionalLightVector), 0.0, 1.0)));
bias = clamp(bias, 0.0, maxBias);
for (int i=0; i<4; i++) {
visibility -= intensity/16*(1.0-texture(shadowMap, vec3(shadowCoord.xy + poissonDisk[i]/stretching, shadowCoord.z - bias)));
}
if (visibility == 1.0-(intensity/16)*4)
{
visibility = 1.0-intensity;
}
else if (visibility != 1.0) {
for (int i=0; i<12; i++) {
visibility -= intensity/16*(1.0-texture(shadowMap, vec3(shadowCoord.xy + poissonDisk[i]/stretching, shadowCoord.z - bias)));
}
}
return visibility;
}
float samplePointShadow(samplerCubeShadow shadowMap, vec3 lightDirection, float intensity) {
const float stretching = 10.0;
float visibility = 1.0;
float nearPlane = 0.1;
float A = -(farPlane+nearPlane)/(farPlane-nearPlane);
float B = -2*(farPlane*nearPlane)/(farPlane - nearPlane);
float compValue = 0.5*(-A*length(lightDirection) + B)/length(lightDirection) + 0.5;
float bias = 0.001*tan(acos(clamp(dot(vNormal, normalize(lightDirection)), 0.0, 1.0)));
bias = clamp(bias, 0.0, 0.001);
bias *= 1/length(lightDirection)*8;
for (int i=0; i<4; i++) {
visibility -= intensity/16*(1.0-texture(shadowMap, vec4(lightDirection + poissonDisk3D[i]/stretching, compValue - bias)));
}
if (visibility == 1.0-(intensity/16)*4)
{
visibility = 1.0-intensity;
}
else if (visibility != 1.0) {
for (int i=0; i<12; i++) {
visibility -= intensity/16*(1.0-texture(shadowMap, vec4(lightDirection + poissonDisk3D[i]/stretching, compValue - bias)));
}
}
return visibility;
}
float distanceToBorder(vec2 vector) {
float xDistance = min(vector.x, 1.0-vector.x);
float yDistance = min(vector.y, 1.0-vector.y);
return min(xDistance, yDistance);
}
void main()
{
vec3 ambientColor = ambientFactor * ambientColor;
vec3 diffuseColor = vec3(0.0, 0.0, 0.0);
vec3 specularColor = vec3(0.0, 0.0, 0.0);
// direction lighting
float sunAngle = -1.0;
vec3 directionalVector = normalize(directionalLightVector);
sunAngle = dot(vec3(0.0, 1.0, 0.0), directionalVector);
if(sunAngle > 0.0) {
float directionalVisibility = 1.0f;
float directionalIntensity = sunIntensity(sunAngle);
if (distanceToBorder(shadowCoord3.xy) <= 0.5 && distanceToBorder(shadowCoord3.xy) > 0.2) {
if (distanceToBorder(shadowCoord2.xy) <= 0.5 && distanceToBorder(shadowCoord2.xy) > 0.2) {
if (distanceToBorder(shadowCoord1.xy) <= 0.5 && distanceToBorder(shadowCoord1.xy) > 0.2) {
if (distanceToBorder(shadowCoord0.xy) <= 0.5 && distanceToBorder(shadowCoord0.xy) > 0.2) {
directionalVisibility = sampleDirectionalShadow(shadowMap_directional0, shadowCoord0, 0.001, directionalIntensity);
}
else if (distanceToBorder(shadowCoord0.xy) <= 0.5 && distanceToBorder(shadowCoord0.xy) > 0.0) {
float directionalVisibility0 = sampleDirectionalShadow(shadowMap_directional0, shadowCoord0, 0.001, directionalIntensity);
float directionalVisibility1 = sampleDirectionalShadow(shadowMap_directional1, shadowCoord1, 0.001, directionalIntensity);
directionalVisibility = mix(directionalVisibility0, directionalVisibility1, distanceToBorder(shadowCoord0.xy) * 5);
}
else {
directionalVisibility = sampleDirectionalShadow(shadowMap_directional1, shadowCoord1, 0.001, directionalIntensity);
}
}
else if (distanceToBorder(shadowCoord1.xy) <= 0.5 && distanceToBorder(shadowCoord1.xy) > 0.0) {
float directionalVisibility1 = sampleDirectionalShadow(shadowMap_directional1, shadowCoord1, 0.001, directionalIntensity);
float directionalVisibility2 = sampleDirectionalShadow(shadowMap_directional2, shadowCoord2, 0.002, directionalIntensity);
directionalVisibility = mix(directionalVisibility1, directionalVisibility2, distanceToBorder(shadowCoord1.xy) * 5);
}
else {
directionalVisibility = sampleDirectionalShadow(shadowMap_directional2, shadowCoord2, 0.002, directionalIntensity);
}
}
else if (distanceToBorder(shadowCoord2.xy) <= 0.5 && distanceToBorder(shadowCoord2.xy) > 0.0) {
float directionalVisibility2 = sampleDirectionalShadow(shadowMap_directional2, shadowCoord2, 0.002, directionalIntensity);
float directionalVisibility3 = sampleDirectionalShadow(shadowMap_directional3, shadowCoord3, 0.005, directionalIntensity);
directionalVisibility = mix(directionalVisibility2, directionalVisibility3, distanceToBorder(shadowCoord2.xy) * 5);
}
else {
directionalVisibility = sampleDirectionalShadow(shadowMap_directional3, shadowCoord3, 0.005, directionalIntensity);
}
}
else if (distanceToBorder(shadowCoord3.xy) <= 0.5 && distanceToBorder(shadowCoord3.xy) > 0.0) {
float directionalVisibility3 = sampleDirectionalShadow(shadowMap_directional3, shadowCoord3, 0.005, directionalIntensity);
float directionalVisibility4 = sampleDirectionalShadow(shadowMap_directional4, shadowCoord4, 0.01, directionalIntensity);
directionalVisibility = mix(directionalVisibility3, directionalVisibility4, distanceToBorder(shadowCoord3.xy) * 5);
}
else {
directionalVisibility = sampleDirectionalShadow(shadowMap_directional4, shadowCoord4, 0.01, directionalIntensity);
}
diffuseColor += clamp(dot(normalize(vNormal), directionalVector)
*diffuseFactor*directionalIntensity*sunColor(sunAngle), 0.0, 1.0)*directionalVisibility;
vec3 cameraVector = normalize(camera - vec3(fragPosition));
specularColor += clamp(pow((dot((cameraVector+directionalVector),normalize(vNormal))/
(length(cameraVector+directionalVector)*length(normalize(vNormal)))),shininess), 0.0, 1.0)
*specularFactor*directionalIntensity*sunColor(sunAngle)*directionalVisibility;
}
// point lights
float visibility = 1.0;
for(int i = 0; i<lightCount; i++) {
vec3 lightPos = vec3(0.0, 0.0, 0.0);
if (isFlame[i] == true) {
lightPos = vec3(lightSources[i].x - 0.75*movement.y , lightSources[i].y, lightSources[i].z + 0.75*movement.x);
}
else {
lightPos = lightSources[i];
}
vec3 lightDirection = vec3(fragPosition) - lightPos;
float distance = length(lightDirection);
float pointVisibility = 1.0f;
// only take lights into account with meaningful contribution
float intensity = 0.0f;
if (isFlame[i] == true) {
intensity = clamp(exp(-(1/(lightIntensities[i] + flickerFunction(i)))*distance), 0.0, 1.0);
}
else {
intensity = clamp(exp(-(1/lightIntensities[i])*distance), 0.0, 1.0);
}
if (intensity > 0.005) {
if (i == 0 && i<maxShadowRenderCount) {
pointVisibility = samplePointShadow(shadowMap_cube0, lightDirection, intensity);
}
if (i == 1 && i<maxShadowRenderCount) {
pointVisibility = samplePointShadow(shadowMap_cube1, lightDirection, intensity);
}
if (i == 2 && i<maxShadowRenderCount) {
pointVisibility = samplePointShadow(shadowMap_cube2, lightDirection, intensity);
}
if (i == 3 && i<maxShadowRenderCount) {
pointVisibility = samplePointShadow(shadowMap_cube3, lightDirection, intensity);
}
if (i == 4 && i<maxShadowRenderCount) {
pointVisibility = samplePointShadow(shadowMap_cube4, lightDirection, intensity);
}
if (i == 5 && i<maxShadowRenderCount) {
pointVisibility = samplePointShadow(shadowMap_cube5, lightDirection, intensity);
}
if (i == 6 && i<maxShadowRenderCount) {
pointVisibility = samplePointShadow(shadowMap_cube6, lightDirection, intensity);
}
if (i == 7 && i<maxShadowRenderCount) {
pointVisibility = samplePointShadow(shadowMap_cube7, lightDirection, intensity);
}
if (i == 8 && i<maxShadowRenderCount) {
pointVisibility = samplePointShadow(shadowMap_cube8, lightDirection, intensity);
}
if (i == 9 && i<maxShadowRenderCount) {
pointVisibility = samplePointShadow(shadowMap_cube9, lightDirection, intensity);
}
if (i == 10 && i<maxShadowRenderCount) {
pointVisibility = samplePointShadow(shadowMap_cube10, lightDirection, intensity);
}
if (i == 11 && i<maxShadowRenderCount) {
pointVisibility = samplePointShadow(shadowMap_cube11, lightDirection, intensity);
}
if (i == 12 && i<maxShadowRenderCount) {
pointVisibility = samplePointShadow(shadowMap_cube12, lightDirection, intensity);
}
if (i == 13 && i<maxShadowRenderCount) {
pointVisibility = samplePointShadow(shadowMap_cube13, lightDirection, intensity);
}
if (i == 14 && i<maxShadowRenderCount) {
pointVisibility = samplePointShadow(shadowMap_cube14, lightDirection, intensity);
}
if (i == 15 && i<maxShadowRenderCount) {
pointVisibility = samplePointShadow(shadowMap_cube15, lightDirection, intensity);
}
if (i == 16 && i<maxShadowRenderCount) {
pointVisibility = samplePointShadow(shadowMap_cube16, lightDirection, intensity);
}
if (i == 17 && i<maxShadowRenderCount) {
pointVisibility = samplePointShadow(shadowMap_cube17, lightDirection, intensity);
}
if (i == 18 && i<maxShadowRenderCount) {
pointVisibility = samplePointShadow(shadowMap_cube18, lightDirection, intensity);
}
if (i == 19 && i<maxShadowRenderCount) {
pointVisibility = samplePointShadow(shadowMap_cube19, lightDirection, intensity);
}
if (i == 20 && i<maxShadowRenderCount) {
pointVisibility = samplePointShadow(shadowMap_cube20, lightDirection, intensity);
}
if (i == 21 && i<maxShadowRenderCount) {
pointVisibility = samplePointShadow(shadowMap_cube21, lightDirection, intensity);
}
if (i == 22 && i<maxShadowRenderCount) {
pointVisibility = samplePointShadow(shadowMap_cube22, lightDirection, intensity);
}
if (i == 23 && i<maxShadowRenderCount) {
pointVisibility = samplePointShadow(shadowMap_cube23, lightDirection, intensity);
}
if (i == 24 && i<maxShadowRenderCount) {
pointVisibility = samplePointShadow(shadowMap_cube24, lightDirection, intensity);
}
if (i == 25 && i<maxShadowRenderCount) {
pointVisibility = samplePointShadow(shadowMap_cube25, lightDirection, intensity);
}
vec3 lightVector = normalize(lightPos-vec3(fragPosition));
diffuseColor += clamp(dot(normalize(vNormal), lightVector)
*diffuseFactor*intensity*lightColors[i]*pointVisibility, 0.0, 1.0);
vec3 cameraVector = normalize(camera - vec3(fragPosition));
specularColor += clamp(pow((dot((cameraVector+lightVector),normalize(vNormal))/
(length(cameraVector+lightVector)*length(normalize(vNormal)))),shininess)*pointVisibility, 0.0, 1.0)
*specularFactor*intensity*lightColors[i];
}
}
vec3 finalColor = specularColor + diffuseColor + ambientColor;
float distanceCameraCenter = distance(cameraCenter, vec3(fragPosition));
float fogFactor = clamp((1.0 - ((farPlane - 35.0) -distanceCameraCenter)/30.0), 0.0, 1.0);
fogFactor *= clamp((1.0-((fragPosition.y-40.0)/30.0)), 0.0, 1.0);
vec4 textureColor = vec4(0.0, 0.0, 0.0, 1.0);
if (movingTexture == true) {
textureColor = texture(uTexture, vec2(vTexCoord.x + movingTextureOffset.x, vTexCoord.y + movingTextureOffset.y)).rgba;
}
else {
textureColor = texture(uTexture, vTexCoord).rgba;
}
oColor = vec4(finalColor, 1.0f)*textureColor;
oColor = mix(oColor, fogColor(sunAngle), fogFactor);
}

31
data/shader/phong.vsh Normal file
View File

@ -0,0 +1,31 @@
#version 150
uniform mat4 modelMatrix;
uniform mat4 modelViewProjectionMatrix;
uniform mat4 shadowMVPs[5];
in vec3 aPosition;
in vec3 aNormal;
in vec2 aTexCoord;
out vec3 vNormal;
out vec2 vTexCoord;
out vec4 fragPosition;
out vec4 shadowCoord0;
out vec4 shadowCoord1;
out vec4 shadowCoord2;
out vec4 shadowCoord3;
out vec4 shadowCoord4;
void main()
{
fragPosition = modelMatrix * vec4(aPosition, 1.0);
vNormal = inverse(transpose(mat3(modelMatrix))) * aNormal;
vTexCoord = aTexCoord;
shadowCoord0 = shadowMVPs[0] * vec4(aPosition, 1.0);
shadowCoord1 = shadowMVPs[1] * vec4(aPosition, 1.0);
shadowCoord2 = shadowMVPs[2] * vec4(aPosition, 1.0);
shadowCoord3 = shadowMVPs[3] * vec4(aPosition, 1.0);
shadowCoord4 = shadowMVPs[4] * vec4(aPosition, 1.0);
gl_Position = modelViewProjectionMatrix * vec4(aPosition, 1.0);
}

89
data/shader/skydome.fsh Normal file
View File

@ -0,0 +1,89 @@
#version 150
in vec2 vTexCoord;
in vec4 fragPosition;
in vec4 sunPosition;
out vec4 oColor;
uniform sampler2D dayTexture;
uniform sampler2D nightTexture;
uniform float farPlane;
uniform vec4 fogColorDay;
uniform vec4 fogColorRise;
uniform vec4 fogColorNight;
uniform vec3 cameraCenter;
uniform vec3 sunColor;
uniform vec3 directionalVector;
const float sunSize = 20.0;
vec4 fogColor(float dot) {
float riseFactor = 0.0;
float dayFactor = 0.0;
if(dot<-0.52) {
riseFactor = 0.0;
}
else if (dot>0.52) {
riseFactor = 0.0;
}
else {
riseFactor = cos(3*dot);
}
if(dot<0.0) {
dayFactor = 0.0;
}
else if(dot>1.0) {
dayFactor = 1.0;
}
else {
dayFactor = sin(dot);
}
if (dot <0.0) {
return mix(fogColorNight, fogColorRise, riseFactor);
}
else {
return mix(fogColorRise, fogColorDay, dayFactor);
}
}
vec3 sunColorFunc(float dot) {
float riseFactor = 0.0;
if(dot<-0.79) {
riseFactor = 0.0;
}
else if (dot>0.876) {
riseFactor = 0.0;
}
else {
riseFactor = cos(2*dot);
}
return mix(sunColor, vec3(fogColorRise)*1.4, riseFactor);
}
void main() {
vec4 textureColor = vec4(0.0, 0.0, 0.0, 1.0);
float sunAngle = -dot(normalize(directionalVector), vec3(0.0, 1.0, 0.0));
vec4 dayColor = texture(dayTexture, vTexCoord);
if (sunAngle >= 0.0) {
textureColor = mix(dayColor, texture(nightTexture, vTexCoord), sunAngle);
}
else {
textureColor = dayColor;
}
float distanceToSun = length(sunPosition - fragPosition);
float distanceCameraCenter = distance(cameraCenter, vec3(fragPosition));
float fogFactor = clamp((1.0 - ((farPlane - 35.0) -distanceCameraCenter)/30.0), 0.0, 1.0);
fogFactor *= clamp((1.0-((fragPosition.y-40.0)/30.0)), 0.0, 1.0);
if (distanceToSun < sunSize) {
float sunIntensity = clamp(0.3*exp(1/(distanceToSun/sunSize))-exp(1.0)*0.3, 0.0, 1.0);
vec4 fogcolor = mix(textureColor, fogColor(-sunAngle), fogFactor);
oColor = mix(fogcolor, vec4(sunColorFunc(sunAngle), sunIntensity), sunIntensity*sin(2*(-sunAngle)));
}
else {
oColor = mix(textureColor, fogColor(-sunAngle), fogFactor);
}
}

22
data/shader/skydome.vsh Normal file
View File

@ -0,0 +1,22 @@
#version 150
in vec3 aPosition;
in vec3 aNormal;
in vec2 aTexCoord;
uniform mat4 modelMatrix;
uniform mat4 modelViewProjectionMatrix;
uniform float skydomeSize;
uniform vec3 directionalVector;
uniform vec3 cameraCenter;
out vec2 vTexCoord;
out vec4 fragPosition;
out vec4 sunPosition;
void main() {
fragPosition = modelMatrix * vec4(aPosition, 1.0);
vTexCoord = aTexCoord;
sunPosition = (normalize(vec4(directionalVector, 0.0)) * skydomeSize) + vec4(cameraCenter.x, 0, cameraCenter.z, 1.0);
gl_Position = modelViewProjectionMatrix * vec4(aPosition, 1.0);
}

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.6 MiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 4.0 MiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 721 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.2 MiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.6 MiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 9.8 MiB

After

Width:  |  Height:  |  Size: 9.5 MiB

Some files were not shown because too many files have changed in this diff Show More