ruby_rpg 0.0.4 → 0.0.5

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (237) hide show
  1. checksums.yaml +4 -4
  2. data/README.md +21 -21
  3. data/bin/build.bash +13 -13
  4. data/bin/import +44 -44
  5. data/glfw-3.3.9.bin.MACOS/LICENSE.md +23 -23
  6. data/glfw-3.3.9.bin.MACOS/README.md +5 -5
  7. data/glfw-3.3.9.bin.MACOS/docs/html/build_8dox.html +81 -81
  8. data/glfw-3.3.9.bin.MACOS/docs/html/build_guide.html +199 -199
  9. data/glfw-3.3.9.bin.MACOS/docs/html/compat_8dox.html +81 -81
  10. data/glfw-3.3.9.bin.MACOS/docs/html/compat_guide.html +153 -153
  11. data/glfw-3.3.9.bin.MACOS/docs/html/compile_8dox.html +81 -81
  12. data/glfw-3.3.9.bin.MACOS/docs/html/compile_guide.html +223 -223
  13. data/glfw-3.3.9.bin.MACOS/docs/html/context_8dox.html +81 -81
  14. data/glfw-3.3.9.bin.MACOS/docs/html/context_guide.html +259 -259
  15. data/glfw-3.3.9.bin.MACOS/docs/html/deprecated.html +88 -88
  16. data/glfw-3.3.9.bin.MACOS/docs/html/dir_08423ce7729c4554356a7de7171ba263.html +85 -85
  17. data/glfw-3.3.9.bin.MACOS/docs/html/dir_2dcebcdf14b42e92a6ed85c61bda6b9d.html +93 -93
  18. data/glfw-3.3.9.bin.MACOS/docs/html/dir_62ce056722ee97c199075aa1d6eca309.html +95 -95
  19. data/glfw-3.3.9.bin.MACOS/docs/html/dir_dddf4cf62655095a666cf715de3a31a2.html +91 -91
  20. data/glfw-3.3.9.bin.MACOS/docs/html/doc.svg +12 -12
  21. data/glfw-3.3.9.bin.MACOS/docs/html/docd.svg +12 -12
  22. data/glfw-3.3.9.bin.MACOS/docs/html/doxygen.css +1685 -1685
  23. data/glfw-3.3.9.bin.MACOS/docs/html/doxygen.svg +28 -28
  24. data/glfw-3.3.9.bin.MACOS/docs/html/dynsections.js +192 -192
  25. data/glfw-3.3.9.bin.MACOS/docs/html/extra.css +1 -1
  26. data/glfw-3.3.9.bin.MACOS/docs/html/files.html +91 -91
  27. data/glfw-3.3.9.bin.MACOS/docs/html/folderclosed.svg +11 -11
  28. data/glfw-3.3.9.bin.MACOS/docs/html/folderclosedd.svg +11 -11
  29. data/glfw-3.3.9.bin.MACOS/docs/html/folderopen.svg +17 -17
  30. data/glfw-3.3.9.bin.MACOS/docs/html/folderopend.svg +12 -12
  31. data/glfw-3.3.9.bin.MACOS/docs/html/glfw3_8h.html +1661 -1661
  32. data/glfw-3.3.9.bin.MACOS/docs/html/glfw3_8h_source.html +1175 -1175
  33. data/glfw-3.3.9.bin.MACOS/docs/html/glfw3native_8h.html +167 -167
  34. data/glfw-3.3.9.bin.MACOS/docs/html/glfw3native_8h_source.html +303 -303
  35. data/glfw-3.3.9.bin.MACOS/docs/html/group__buttons.html +282 -282
  36. data/glfw-3.3.9.bin.MACOS/docs/html/group__context.html +304 -304
  37. data/glfw-3.3.9.bin.MACOS/docs/html/group__errors.html +304 -304
  38. data/glfw-3.3.9.bin.MACOS/docs/html/group__gamepad__axes.html +202 -202
  39. data/glfw-3.3.9.bin.MACOS/docs/html/group__gamepad__buttons.html +410 -410
  40. data/glfw-3.3.9.bin.MACOS/docs/html/group__hat__state.html +234 -234
  41. data/glfw-3.3.9.bin.MACOS/docs/html/group__init.html +570 -570
  42. data/glfw-3.3.9.bin.MACOS/docs/html/group__input.html +2255 -2255
  43. data/glfw-3.3.9.bin.MACOS/docs/html/group__joysticks.html +362 -362
  44. data/glfw-3.3.9.bin.MACOS/docs/html/group__keys.html +2034 -2034
  45. data/glfw-3.3.9.bin.MACOS/docs/html/group__mods.html +198 -198
  46. data/glfw-3.3.9.bin.MACOS/docs/html/group__monitor.html +848 -848
  47. data/glfw-3.3.9.bin.MACOS/docs/html/group__native.html +812 -812
  48. data/glfw-3.3.9.bin.MACOS/docs/html/group__shapes.html +198 -198
  49. data/glfw-3.3.9.bin.MACOS/docs/html/group__vulkan.html +359 -359
  50. data/glfw-3.3.9.bin.MACOS/docs/html/group__window.html +3434 -3434
  51. data/glfw-3.3.9.bin.MACOS/docs/html/index.html +100 -100
  52. data/glfw-3.3.9.bin.MACOS/docs/html/input_8dox.html +81 -81
  53. data/glfw-3.3.9.bin.MACOS/docs/html/input_guide.html +570 -570
  54. data/glfw-3.3.9.bin.MACOS/docs/html/internal_8dox.html +81 -81
  55. data/glfw-3.3.9.bin.MACOS/docs/html/internals_guide.html +132 -132
  56. data/glfw-3.3.9.bin.MACOS/docs/html/intro_8dox.html +81 -81
  57. data/glfw-3.3.9.bin.MACOS/docs/html/intro_guide.html +351 -351
  58. data/glfw-3.3.9.bin.MACOS/docs/html/jquery.js +33 -33
  59. data/glfw-3.3.9.bin.MACOS/docs/html/main_8dox.html +81 -81
  60. data/glfw-3.3.9.bin.MACOS/docs/html/menu.js +136 -136
  61. data/glfw-3.3.9.bin.MACOS/docs/html/menudata.js +29 -29
  62. data/glfw-3.3.9.bin.MACOS/docs/html/minus.svg +8 -8
  63. data/glfw-3.3.9.bin.MACOS/docs/html/minusd.svg +8 -8
  64. data/glfw-3.3.9.bin.MACOS/docs/html/monitor_8dox.html +81 -81
  65. data/glfw-3.3.9.bin.MACOS/docs/html/monitor_guide.html +229 -229
  66. data/glfw-3.3.9.bin.MACOS/docs/html/moving_8dox.html +81 -81
  67. data/glfw-3.3.9.bin.MACOS/docs/html/moving_guide.html +374 -374
  68. data/glfw-3.3.9.bin.MACOS/docs/html/news.html +634 -634
  69. data/glfw-3.3.9.bin.MACOS/docs/html/news_8dox.html +81 -81
  70. data/glfw-3.3.9.bin.MACOS/docs/html/pages.html +99 -99
  71. data/glfw-3.3.9.bin.MACOS/docs/html/plus.svg +9 -9
  72. data/glfw-3.3.9.bin.MACOS/docs/html/plusd.svg +9 -9
  73. data/glfw-3.3.9.bin.MACOS/docs/html/quick_8dox.html +81 -81
  74. data/glfw-3.3.9.bin.MACOS/docs/html/quick_guide.html +397 -397
  75. data/glfw-3.3.9.bin.MACOS/docs/html/search/all_0.js +5 -5
  76. data/glfw-3.3.9.bin.MACOS/docs/html/search/all_1.js +4 -4
  77. data/glfw-3.3.9.bin.MACOS/docs/html/search/all_10.js +65 -65
  78. data/glfw-3.3.9.bin.MACOS/docs/html/search/all_11.js +26 -26
  79. data/glfw-3.3.9.bin.MACOS/docs/html/search/all_12.js +44 -44
  80. data/glfw-3.3.9.bin.MACOS/docs/html/search/all_13.js +34 -34
  81. data/glfw-3.3.9.bin.MACOS/docs/html/search/all_14.js +12 -12
  82. data/glfw-3.3.9.bin.MACOS/docs/html/search/all_15.js +52 -52
  83. data/glfw-3.3.9.bin.MACOS/docs/html/search/all_16.js +69 -69
  84. data/glfw-3.3.9.bin.MACOS/docs/html/search/all_17.js +51 -51
  85. data/glfw-3.3.9.bin.MACOS/docs/html/search/all_18.js +14 -14
  86. data/glfw-3.3.9.bin.MACOS/docs/html/search/all_19.js +36 -36
  87. data/glfw-3.3.9.bin.MACOS/docs/html/search/all_1a.js +98 -98
  88. data/glfw-3.3.9.bin.MACOS/docs/html/search/all_1b.js +12 -12
  89. data/glfw-3.3.9.bin.MACOS/docs/html/search/all_2.js +6 -6
  90. data/glfw-3.3.9.bin.MACOS/docs/html/search/all_3.js +9 -9
  91. data/glfw-3.3.9.bin.MACOS/docs/html/search/all_4.js +57 -57
  92. data/glfw-3.3.9.bin.MACOS/docs/html/search/all_5.js +22 -22
  93. data/glfw-3.3.9.bin.MACOS/docs/html/search/all_6.js +103 -103
  94. data/glfw-3.3.9.bin.MACOS/docs/html/search/all_7.js +23 -23
  95. data/glfw-3.3.9.bin.MACOS/docs/html/search/all_8.js +35 -35
  96. data/glfw-3.3.9.bin.MACOS/docs/html/search/all_9.js +63 -63
  97. data/glfw-3.3.9.bin.MACOS/docs/html/search/all_a.js +505 -505
  98. data/glfw-3.3.9.bin.MACOS/docs/html/search/all_b.js +24 -24
  99. data/glfw-3.3.9.bin.MACOS/docs/html/search/all_c.js +50 -50
  100. data/glfw-3.3.9.bin.MACOS/docs/html/search/all_d.js +17 -17
  101. data/glfw-3.3.9.bin.MACOS/docs/html/search/all_e.js +12 -12
  102. data/glfw-3.3.9.bin.MACOS/docs/html/search/all_f.js +35 -35
  103. data/glfw-3.3.9.bin.MACOS/docs/html/search/classes_0.js +7 -7
  104. data/glfw-3.3.9.bin.MACOS/docs/html/search/close.svg +18 -18
  105. data/glfw-3.3.9.bin.MACOS/docs/html/search/defines_0.js +34 -34
  106. data/glfw-3.3.9.bin.MACOS/docs/html/search/files_0.js +4 -4
  107. data/glfw-3.3.9.bin.MACOS/docs/html/search/files_1.js +6 -6
  108. data/glfw-3.3.9.bin.MACOS/docs/html/search/files_2.js +5 -5
  109. data/glfw-3.3.9.bin.MACOS/docs/html/search/files_3.js +6 -6
  110. data/glfw-3.3.9.bin.MACOS/docs/html/search/files_4.js +6 -6
  111. data/glfw-3.3.9.bin.MACOS/docs/html/search/files_5.js +4 -4
  112. data/glfw-3.3.9.bin.MACOS/docs/html/search/files_6.js +4 -4
  113. data/glfw-3.3.9.bin.MACOS/docs/html/search/files_7.js +4 -4
  114. data/glfw-3.3.9.bin.MACOS/docs/html/search/files_8.js +4 -4
  115. data/glfw-3.3.9.bin.MACOS/docs/html/search/functions_0.js +146 -146
  116. data/glfw-3.3.9.bin.MACOS/docs/html/search/groups_0.js +6 -6
  117. data/glfw-3.3.9.bin.MACOS/docs/html/search/groups_1.js +4 -4
  118. data/glfw-3.3.9.bin.MACOS/docs/html/search/groups_10.js +4 -4
  119. data/glfw-3.3.9.bin.MACOS/docs/html/search/groups_2.js +6 -6
  120. data/glfw-3.3.9.bin.MACOS/docs/html/search/groups_3.js +5 -5
  121. data/glfw-3.3.9.bin.MACOS/docs/html/search/groups_4.js +4 -4
  122. data/glfw-3.3.9.bin.MACOS/docs/html/search/groups_5.js +5 -5
  123. data/glfw-3.3.9.bin.MACOS/docs/html/search/groups_6.js +4 -4
  124. data/glfw-3.3.9.bin.MACOS/docs/html/search/groups_7.js +5 -5
  125. data/glfw-3.3.9.bin.MACOS/docs/html/search/groups_8.js +5 -5
  126. data/glfw-3.3.9.bin.MACOS/docs/html/search/groups_9.js +6 -6
  127. data/glfw-3.3.9.bin.MACOS/docs/html/search/groups_a.js +6 -6
  128. data/glfw-3.3.9.bin.MACOS/docs/html/search/groups_b.js +4 -4
  129. data/glfw-3.3.9.bin.MACOS/docs/html/search/groups_c.js +4 -4
  130. data/glfw-3.3.9.bin.MACOS/docs/html/search/groups_d.js +7 -7
  131. data/glfw-3.3.9.bin.MACOS/docs/html/search/groups_e.js +4 -4
  132. data/glfw-3.3.9.bin.MACOS/docs/html/search/groups_f.js +5 -5
  133. data/glfw-3.3.9.bin.MACOS/docs/html/search/mag.svg +24 -24
  134. data/glfw-3.3.9.bin.MACOS/docs/html/search/mag_d.svg +24 -24
  135. data/glfw-3.3.9.bin.MACOS/docs/html/search/mag_sel.svg +31 -31
  136. data/glfw-3.3.9.bin.MACOS/docs/html/search/mag_seld.svg +31 -31
  137. data/glfw-3.3.9.bin.MACOS/docs/html/search/pages_0.js +4 -4
  138. data/glfw-3.3.9.bin.MACOS/docs/html/search/pages_1.js +4 -4
  139. data/glfw-3.3.9.bin.MACOS/docs/html/search/pages_10.js +4 -4
  140. data/glfw-3.3.9.bin.MACOS/docs/html/search/pages_2.js +5 -5
  141. data/glfw-3.3.9.bin.MACOS/docs/html/search/pages_3.js +4 -4
  142. data/glfw-3.3.9.bin.MACOS/docs/html/search/pages_4.js +6 -6
  143. data/glfw-3.3.9.bin.MACOS/docs/html/search/pages_5.js +4 -4
  144. data/glfw-3.3.9.bin.MACOS/docs/html/search/pages_6.js +4 -4
  145. data/glfw-3.3.9.bin.MACOS/docs/html/search/pages_7.js +7 -7
  146. data/glfw-3.3.9.bin.MACOS/docs/html/search/pages_8.js +6 -6
  147. data/glfw-3.3.9.bin.MACOS/docs/html/search/pages_9.js +4 -4
  148. data/glfw-3.3.9.bin.MACOS/docs/html/search/pages_a.js +5 -5
  149. data/glfw-3.3.9.bin.MACOS/docs/html/search/pages_b.js +5 -5
  150. data/glfw-3.3.9.bin.MACOS/docs/html/search/pages_c.js +4 -4
  151. data/glfw-3.3.9.bin.MACOS/docs/html/search/pages_d.js +6 -6
  152. data/glfw-3.3.9.bin.MACOS/docs/html/search/pages_e.js +6 -6
  153. data/glfw-3.3.9.bin.MACOS/docs/html/search/pages_f.js +4 -4
  154. data/glfw-3.3.9.bin.MACOS/docs/html/search/search.css +291 -291
  155. data/glfw-3.3.9.bin.MACOS/docs/html/search/search.js +840 -840
  156. data/glfw-3.3.9.bin.MACOS/docs/html/search/searchdata.js +39 -39
  157. data/glfw-3.3.9.bin.MACOS/docs/html/search/typedefs_0.js +32 -32
  158. data/glfw-3.3.9.bin.MACOS/docs/html/search/variables_0.js +4 -4
  159. data/glfw-3.3.9.bin.MACOS/docs/html/search/variables_1.js +6 -6
  160. data/glfw-3.3.9.bin.MACOS/docs/html/search/variables_2.js +5 -5
  161. data/glfw-3.3.9.bin.MACOS/docs/html/search/variables_3.js +4 -4
  162. data/glfw-3.3.9.bin.MACOS/docs/html/search/variables_4.js +4 -4
  163. data/glfw-3.3.9.bin.MACOS/docs/html/search/variables_5.js +6 -6
  164. data/glfw-3.3.9.bin.MACOS/docs/html/search/variables_6.js +4 -4
  165. data/glfw-3.3.9.bin.MACOS/docs/html/search/variables_7.js +4 -4
  166. data/glfw-3.3.9.bin.MACOS/docs/html/spaces.svg +877 -877
  167. data/glfw-3.3.9.bin.MACOS/docs/html/struct_g_l_f_wgamepadstate.html +134 -134
  168. data/glfw-3.3.9.bin.MACOS/docs/html/struct_g_l_f_wgammaramp.html +170 -170
  169. data/glfw-3.3.9.bin.MACOS/docs/html/struct_g_l_f_wimage.html +151 -151
  170. data/glfw-3.3.9.bin.MACOS/docs/html/struct_g_l_f_wvidmode.html +204 -204
  171. data/glfw-3.3.9.bin.MACOS/docs/html/vulkan_8dox.html +81 -81
  172. data/glfw-3.3.9.bin.MACOS/docs/html/vulkan_guide.html +196 -196
  173. data/glfw-3.3.9.bin.MACOS/docs/html/window_8dox.html +81 -81
  174. data/glfw-3.3.9.bin.MACOS/docs/html/window_guide.html +763 -763
  175. data/glfw-3.3.9.bin.MACOS/include/GLFW/glfw3.h +5932 -5932
  176. data/glfw-3.3.9.bin.MACOS/include/GLFW/glfw3native.h +634 -634
  177. data/glfw-3.3.9.bin.MACOS/lib-arm64/libglfw.3.dylib +0 -0
  178. data/glfw-3.3.9.bin.MACOS/lib-universal/libglfw.3.dylib +0 -0
  179. data/glfw-3.3.9.bin.MACOS/lib-x86_64/libglfw.3.dylib +0 -0
  180. data/lib/engine/autoloader.rb +11 -11
  181. data/lib/engine/camera.rb +12 -12
  182. data/lib/engine/component.rb +63 -63
  183. data/lib/engine/components/audio_source.rb +41 -41
  184. data/lib/engine/components/direction_light.rb +22 -22
  185. data/lib/engine/components/font_renderer.rb +134 -134
  186. data/lib/engine/components/mesh_renderer.rb +31 -31
  187. data/lib/engine/components/orthographic_camera.rb +54 -54
  188. data/lib/engine/components/perspective_camera.rb +53 -53
  189. data/lib/engine/components/point_light.rb +23 -23
  190. data/lib/engine/components/sprite_renderer.rb +141 -141
  191. data/lib/engine/components/ui_font_renderer.rb +140 -140
  192. data/lib/engine/components/ui_sprite_clickbox.rb +62 -0
  193. data/lib/engine/components/ui_sprite_renderer.rb +101 -101
  194. data/lib/engine/compute_shader.rb +93 -0
  195. data/lib/engine/cursor.rb +43 -43
  196. data/lib/engine/debugging.rb +41 -41
  197. data/lib/engine/engine.rb +131 -131
  198. data/lib/engine/font.rb +74 -74
  199. data/lib/engine/game_object.rb +234 -234
  200. data/lib/engine/importers/font_importer.rb +69 -69
  201. data/lib/engine/importers/obj_file.rb +244 -244
  202. data/lib/engine/importers/obj_importer.rb +33 -33
  203. data/lib/engine/input.rb +105 -104
  204. data/lib/engine/material.rb +79 -79
  205. data/lib/engine/mesh.rb +43 -43
  206. data/lib/engine/path.rb +92 -92
  207. data/lib/engine/physics/collision.rb +12 -12
  208. data/lib/engine/physics/components/cube_collider.rb +6 -6
  209. data/lib/engine/physics/components/rigidbody.rb +103 -103
  210. data/lib/engine/physics/components/sphere_collider.rb +93 -93
  211. data/lib/engine/physics/physics_resolver.rb +37 -37
  212. data/lib/engine/polygon_mesh.rb +45 -45
  213. data/lib/engine/quaternion.rb +234 -234
  214. data/lib/engine/rendering/instance_renderer.rb +153 -153
  215. data/lib/engine/rendering/render_pipeline.rb +35 -35
  216. data/lib/engine/screenshoter.rb +34 -34
  217. data/lib/engine/shader.rb +119 -91
  218. data/lib/engine/shaders/colour_frag.glsl +8 -8
  219. data/lib/engine/shaders/colour_vertex.glsl +13 -13
  220. data/lib/engine/shaders/mesh_frag.glsl +102 -102
  221. data/lib/engine/shaders/mesh_vertex.glsl +25 -25
  222. data/lib/engine/shaders/skybox_frag.glsl +12 -12
  223. data/lib/engine/shaders/skybox_vert.glsl +14 -14
  224. data/lib/engine/shaders/sprite_frag.glsl +17 -17
  225. data/lib/engine/shaders/sprite_vertex.glsl +15 -15
  226. data/lib/engine/shaders/text_frag.glsl +15 -15
  227. data/lib/engine/shaders/text_vertex.glsl +31 -31
  228. data/lib/engine/shaders/ui_sprite_frag.glsl +15 -15
  229. data/lib/engine/shaders/ui_sprite_vertex.glsl +15 -15
  230. data/lib/engine/shaders/vertex_lit_frag.glsl +89 -89
  231. data/lib/engine/shaders/vertex_lit_vertex.glsl +28 -28
  232. data/lib/engine/tangent_calculator.rb +42 -42
  233. data/lib/engine/texture.rb +53 -53
  234. data/lib/engine/video_mode.rb +37 -37
  235. data/lib/engine/window.rb +126 -126
  236. data/lib/ruby_rpg.rb +58 -56
  237. metadata +5 -6
@@ -1,9 +1,9 @@
1
- #version 330 core
2
-
3
- out vec4 FragColour;
4
- in vec4 ourColour;
5
-
6
- void main()
7
- {
8
- FragColour = ourColour;
1
+ #version 330 core
2
+
3
+ out vec4 FragColour;
4
+ in vec4 ourColour;
5
+
6
+ void main()
7
+ {
8
+ FragColour = ourColour;
9
9
  }
@@ -1,14 +1,14 @@
1
- #version 330 core
2
- layout (location = 0) in vec3 aPos;
3
-
4
- uniform vec3 colour;
5
- out vec4 ourColour;
6
-
7
- uniform mat4 camera;
8
- uniform mat4 model;
9
-
10
- void main()
11
- {
12
- gl_Position = camera * model * vec4(aPos, 1.0);
13
- ourColour = vec4(colour, 1.0);
1
+ #version 330 core
2
+ layout (location = 0) in vec3 aPos;
3
+
4
+ uniform vec3 colour;
5
+ out vec4 ourColour;
6
+
7
+ uniform mat4 camera;
8
+ uniform mat4 model;
9
+
10
+ void main()
11
+ {
12
+ gl_Position = camera * model * vec4(aPos, 1.0);
13
+ ourColour = vec4(colour, 1.0);
14
14
  }
@@ -1,102 +1,102 @@
1
- #version 330 core
2
-
3
- in vec2 TexCoord;
4
- in vec3 Normal;
5
- in vec3 Tangent;
6
- in vec3 FragPos;
7
-
8
- out vec4 color;
9
-
10
- uniform sampler2D image;
11
- uniform sampler2D normalMap;
12
- uniform vec3 cameraPos;
13
- uniform float diffuseStrength;
14
- uniform float specularStrength;
15
- uniform float specularPower;
16
- uniform vec3 ambientLight;
17
-
18
- struct DirectionalLight {
19
- vec3 direction;
20
- vec3 colour;
21
- };
22
- #define NR_DIRECTIONAL_LIGHTS 4
23
- uniform DirectionalLight directionalLights[NR_DIRECTIONAL_LIGHTS];
24
-
25
- struct PointLight {
26
- vec3 position;
27
- float sqrRange;
28
- vec3 colour;
29
- };
30
- #define NR_POINT_LIGHTS 16
31
- uniform PointLight pointLights[NR_POINT_LIGHTS];
32
-
33
- vec3 CalcPointLight(PointLight light, vec3 normal, vec3 fragPos, vec3 viewDir)
34
- {
35
- vec3 lightOffset = light.position - fragPos;
36
- float sqrDistance = dot(lightOffset, lightOffset);
37
- vec3 lightDir = normalize(lightOffset);
38
- float diff = max(dot(normal, lightDir), 0.0);
39
-
40
- vec3 reflectDir = reflect(lightDir, normal);
41
- float spec = pow(max(dot(-viewDir, reflectDir), 0.0), specularPower);
42
-
43
- float attenuation = light.sqrRange / sqrDistance;
44
-
45
- float diffuse = diff * diffuseStrength;
46
- float specular = spec * specularStrength;
47
-
48
- return light.colour * (diffuse + specular) * attenuation;
49
- }
50
-
51
- vec3 CalcDirectionalLight(DirectionalLight light, vec3 normal, vec3 fragPos, vec3 viewDir)
52
- {
53
- float diff = max(dot(normal, -light.direction), 0.0);
54
-
55
- vec3 reflectDir = reflect(-light.direction, normal);
56
- float spec = pow(max(dot(-viewDir, reflectDir), 0.0), specularPower);
57
-
58
- float diffuse = diff * diffuseStrength;
59
- float specular = spec * specularStrength;
60
-
61
- return light.colour * (diffuse + specular);
62
- }
63
-
64
- void main()
65
- {
66
- vec3 sampledNormal = texture(normalMap, TexCoord).rgb * 2.0 - 1.0;
67
- if ( sampledNormal.r + sampledNormal.g + sampledNormal.b <= 0)
68
- {
69
- sampledNormal = vec3(0.0, 0.0, 1.0);
70
- }
71
- vec3 n = normalize(Normal);
72
- vec3 t = normalize(Tangent);
73
- vec3 norm = n;
74
- if ( length(t) > 0.0 )
75
- {
76
- vec3 b = cross(t, n);
77
- mat3 TBN = mat3(t, b, n);
78
- norm = normalize(TBN * normalize(sampledNormal));
79
- }
80
- vec3 viewDir = normalize(cameraPos - FragPos);
81
-
82
- vec3 result = ambientLight;
83
-
84
- for (int i = 0; i < NR_POINT_LIGHTS; i++) {
85
- if (pointLights[i].sqrRange == 0.0)
86
- {
87
- break;
88
- }
89
- result += CalcPointLight(pointLights[i], norm, FragPos, viewDir);
90
- }
91
-
92
- for (int i = 0; i < NR_DIRECTIONAL_LIGHTS; i++) {
93
- if (directionalLights[i].colour == vec3(0.0))
94
- {
95
- break;
96
- }
97
- result += CalcDirectionalLight(directionalLights[i], norm, FragPos, viewDir);
98
- }
99
-
100
- vec4 tex = texture(image, TexCoord);
101
- color = tex * vec4(result, 1.0);
102
- }
1
+ #version 330 core
2
+
3
+ in vec2 TexCoord;
4
+ in vec3 Normal;
5
+ in vec3 Tangent;
6
+ in vec3 FragPos;
7
+
8
+ out vec4 color;
9
+
10
+ uniform sampler2D image;
11
+ uniform sampler2D normalMap;
12
+ uniform vec3 cameraPos;
13
+ uniform float diffuseStrength;
14
+ uniform float specularStrength;
15
+ uniform float specularPower;
16
+ uniform vec3 ambientLight;
17
+
18
+ struct DirectionalLight {
19
+ vec3 direction;
20
+ vec3 colour;
21
+ };
22
+ #define NR_DIRECTIONAL_LIGHTS 4
23
+ uniform DirectionalLight directionalLights[NR_DIRECTIONAL_LIGHTS];
24
+
25
+ struct PointLight {
26
+ vec3 position;
27
+ float sqrRange;
28
+ vec3 colour;
29
+ };
30
+ #define NR_POINT_LIGHTS 16
31
+ uniform PointLight pointLights[NR_POINT_LIGHTS];
32
+
33
+ vec3 CalcPointLight(PointLight light, vec3 normal, vec3 fragPos, vec3 viewDir)
34
+ {
35
+ vec3 lightOffset = light.position - fragPos;
36
+ float sqrDistance = dot(lightOffset, lightOffset);
37
+ vec3 lightDir = normalize(lightOffset);
38
+ float diff = max(dot(normal, lightDir), 0.0);
39
+
40
+ vec3 reflectDir = reflect(lightDir, normal);
41
+ float spec = pow(max(dot(-viewDir, reflectDir), 0.0), specularPower);
42
+
43
+ float attenuation = light.sqrRange / sqrDistance;
44
+
45
+ float diffuse = diff * diffuseStrength;
46
+ float specular = spec * specularStrength;
47
+
48
+ return light.colour * (diffuse + specular) * attenuation;
49
+ }
50
+
51
+ vec3 CalcDirectionalLight(DirectionalLight light, vec3 normal, vec3 fragPos, vec3 viewDir)
52
+ {
53
+ float diff = max(dot(normal, -light.direction), 0.0);
54
+
55
+ vec3 reflectDir = reflect(-light.direction, normal);
56
+ float spec = pow(max(dot(-viewDir, reflectDir), 0.0), specularPower);
57
+
58
+ float diffuse = diff * diffuseStrength;
59
+ float specular = spec * specularStrength;
60
+
61
+ return light.colour * (diffuse + specular);
62
+ }
63
+
64
+ void main()
65
+ {
66
+ vec3 sampledNormal = texture(normalMap, TexCoord).rgb * 2.0 - 1.0;
67
+ if ( sampledNormal.r + sampledNormal.g + sampledNormal.b <= 0)
68
+ {
69
+ sampledNormal = vec3(0.0, 0.0, 1.0);
70
+ }
71
+ vec3 n = normalize(Normal);
72
+ vec3 t = normalize(Tangent);
73
+ vec3 norm = n;
74
+ if ( length(t) > 0.0 )
75
+ {
76
+ vec3 b = cross(t, n);
77
+ mat3 TBN = mat3(t, b, n);
78
+ norm = normalize(TBN * normalize(sampledNormal));
79
+ }
80
+ vec3 viewDir = normalize(cameraPos - FragPos);
81
+
82
+ vec3 result = ambientLight;
83
+
84
+ for (int i = 0; i < NR_POINT_LIGHTS; i++) {
85
+ if (pointLights[i].sqrRange == 0.0)
86
+ {
87
+ break;
88
+ }
89
+ result += CalcPointLight(pointLights[i], norm, FragPos, viewDir);
90
+ }
91
+
92
+ for (int i = 0; i < NR_DIRECTIONAL_LIGHTS; i++) {
93
+ if (directionalLights[i].colour == vec3(0.0))
94
+ {
95
+ break;
96
+ }
97
+ result += CalcDirectionalLight(directionalLights[i], norm, FragPos, viewDir);
98
+ }
99
+
100
+ vec4 tex = texture(image, TexCoord);
101
+ color = tex * vec4(result, 1.0);
102
+ }
@@ -1,25 +1,25 @@
1
- #version 330 core
2
-
3
- // <vec2 position, vec2 texCoords, vec3 normal, vec3 tangent>
4
- layout (location = 0) in vec3 vertex;
5
- layout (location = 1) in vec2 texCoord;
6
- layout (location = 2) in vec3 normal;
7
- layout (location = 3) in vec3 tangent;
8
- layout (location = 7) in mat4 model;
9
-
10
- out vec2 TexCoord;
11
- out vec3 Normal;
12
- out vec3 Tangent;
13
- out vec3 FragPos;
14
-
15
- uniform mat4 camera;
16
-
17
- void main()
18
- {
19
- TexCoord = texCoord;
20
- mat3 normalMatrix = mat3(transpose(inverse(model)));
21
- Normal = normalMatrix * normal;
22
- Tangent = normalMatrix * tangent;
23
- FragPos = vec3(model * vec4(vertex, 1.0));
24
- gl_Position = camera * model * vec4(vertex, 1.0);
25
- }
1
+ #version 330 core
2
+
3
+ // <vec2 position, vec2 texCoords, vec3 normal, vec3 tangent>
4
+ layout (location = 0) in vec3 vertex;
5
+ layout (location = 1) in vec2 texCoord;
6
+ layout (location = 2) in vec3 normal;
7
+ layout (location = 3) in vec3 tangent;
8
+ layout (location = 7) in mat4 model;
9
+
10
+ out vec2 TexCoord;
11
+ out vec3 Normal;
12
+ out vec3 Tangent;
13
+ out vec3 FragPos;
14
+
15
+ uniform mat4 camera;
16
+
17
+ void main()
18
+ {
19
+ TexCoord = texCoord;
20
+ mat3 normalMatrix = mat3(transpose(inverse(model)));
21
+ Normal = normalMatrix * normal;
22
+ Tangent = normalMatrix * tangent;
23
+ FragPos = vec3(model * vec4(vertex, 1.0));
24
+ gl_Position = camera * model * vec4(vertex, 1.0);
25
+ }
@@ -1,12 +1,12 @@
1
- #version 330 core
2
-
3
- in vec3 FragPos;
4
- out vec4 color;
5
-
6
- void main()
7
- {
8
- vec4 ground = vec4(0.541176, 0.709804, 0.286275, 1);
9
- vec4 sky = vec4(0.2, 0.6, 0.8, 1);
10
- float mixFactor = clamp(FragPos.y / 2.0, 0.0, 1.0);
11
- color = mix(ground, sky, mixFactor);
12
- }
1
+ #version 330 core
2
+
3
+ in vec3 FragPos;
4
+ out vec4 color;
5
+
6
+ void main()
7
+ {
8
+ vec4 ground = vec4(0.541176, 0.709804, 0.286275, 1);
9
+ vec4 sky = vec4(0.2, 0.6, 0.8, 1);
10
+ float mixFactor = clamp(FragPos.y / 2.0, 0.0, 1.0);
11
+ color = mix(ground, sky, mixFactor);
12
+ }
@@ -1,14 +1,14 @@
1
- #version 330 core
2
-
3
- layout (location = 0) in vec3 vertex;
4
- layout (location = 7) in mat4 model;
5
-
6
- out vec3 FragPos;
7
-
8
- uniform mat4 camera;
9
-
10
- void main()
11
- {
12
- FragPos = vec3(model * vec4(vertex, 1.0));
13
- gl_Position = camera * model * vec4(vertex, 1.0);
14
- }
1
+ #version 330 core
2
+
3
+ layout (location = 0) in vec3 vertex;
4
+ layout (location = 7) in mat4 model;
5
+
6
+ out vec3 FragPos;
7
+
8
+ uniform mat4 camera;
9
+
10
+ void main()
11
+ {
12
+ FragPos = vec3(model * vec4(vertex, 1.0));
13
+ gl_Position = camera * model * vec4(vertex, 1.0);
14
+ }
@@ -1,17 +1,17 @@
1
- #version 330 core
2
- in vec2 TexCoords;
3
- out vec4 color;
4
-
5
- uniform sampler2D image;
6
- uniform vec3 spriteColor;
7
- uniform vec4 frameCoords;
8
-
9
- void main()
10
- {
11
- vec2 interpolatedCoords = vec2(frameCoords.x + (TexCoords.x * frameCoords.z), frameCoords.y + TexCoords.y * frameCoords.w);;
12
- vec4 texColor = texture(image, interpolatedCoords);
13
- if(texColor.a < 0.05)
14
- discard;
15
- else
16
- color = vec4(spriteColor, 1.0) * texColor;
17
- }
1
+ #version 330 core
2
+ in vec2 TexCoords;
3
+ out vec4 color;
4
+
5
+ uniform sampler2D image;
6
+ uniform vec3 spriteColor;
7
+ uniform vec4 frameCoords;
8
+
9
+ void main()
10
+ {
11
+ vec2 interpolatedCoords = vec2(frameCoords.x + (TexCoords.x * frameCoords.z), frameCoords.y + TexCoords.y * frameCoords.w);;
12
+ vec4 texColor = texture(image, interpolatedCoords);
13
+ if(texColor.a < 0.05)
14
+ discard;
15
+ else
16
+ color = vec4(spriteColor, 1.0) * texColor;
17
+ }
@@ -1,16 +1,16 @@
1
- #version 330 core
2
-
3
- // <vec3 position, vec2 texCoords>
4
- layout (location = 0) in vec3 vertex;
5
- layout (location = 1) in vec2 texCoord;
6
-
7
- out vec2 TexCoords;
8
-
9
- uniform mat4 camera;
10
- uniform mat4 model;
11
-
12
- void main()
13
- {
14
- TexCoords = texCoord;
15
- gl_Position = camera * model * vec4(vertex, 1.0);
1
+ #version 330 core
2
+
3
+ // <vec3 position, vec2 texCoords>
4
+ layout (location = 0) in vec3 vertex;
5
+ layout (location = 1) in vec2 texCoord;
6
+
7
+ out vec2 TexCoords;
8
+
9
+ uniform mat4 camera;
10
+ uniform mat4 model;
11
+
12
+ void main()
13
+ {
14
+ TexCoords = texCoord;
15
+ gl_Position = camera * model * vec4(vertex, 1.0);
16
16
  }
@@ -1,15 +1,15 @@
1
- #version 330 core
2
-
3
- out vec4 color;
4
-
5
- in vec2 TexCoords;
6
-
7
- uniform sampler2D fontTexture;
8
-
9
- void main()
10
- {
11
- vec4 textureColor = texture(fontTexture, TexCoords);
12
- if(textureColor.a < 0.1)
13
- discard;
14
- color = vec4(1.0, 1.0, 1.0, textureColor.a);
15
- }
1
+ #version 330 core
2
+
3
+ out vec4 color;
4
+
5
+ in vec2 TexCoords;
6
+
7
+ uniform sampler2D fontTexture;
8
+
9
+ void main()
10
+ {
11
+ vec4 textureColor = texture(fontTexture, TexCoords);
12
+ if(textureColor.a < 0.1)
13
+ discard;
14
+ color = vec4(1.0, 1.0, 1.0, textureColor.a);
15
+ }
@@ -1,31 +1,31 @@
1
- #version 330 core
2
-
3
- // <vec3 position, vec2 texCoords>
4
- layout (location = 0) in vec3 vertex;
5
- layout (location = 1) in vec2 texCoords;
6
- layout (location = 2) in int textIndex;
7
- layout (location = 3) in vec2 offset;
8
-
9
- uniform mat4 camera;
10
- uniform mat4 model;
11
-
12
- out vec2 TexCoords;
13
-
14
- vec2 getTexCoords()
15
- {
16
- int x = textIndex / 16;
17
- int y = textIndex % 16;
18
- return (vec2(x, y) + texCoords) / 16.0;
19
- }
20
-
21
- vec3 quadPosition()
22
- {
23
- return vertex + vec3(offset.x, offset.y, 0);
24
- }
25
-
26
-
27
- void main()
28
- {
29
- gl_Position = camera * model * vec4(quadPosition(), 1.0);
30
- TexCoords = getTexCoords();
31
- }
1
+ #version 330 core
2
+
3
+ // <vec3 position, vec2 texCoords>
4
+ layout (location = 0) in vec3 vertex;
5
+ layout (location = 1) in vec2 texCoords;
6
+ layout (location = 2) in int textIndex;
7
+ layout (location = 3) in vec2 offset;
8
+
9
+ uniform mat4 camera;
10
+ uniform mat4 model;
11
+
12
+ out vec2 TexCoords;
13
+
14
+ vec2 getTexCoords()
15
+ {
16
+ int x = textIndex / 16;
17
+ int y = textIndex % 16;
18
+ return (vec2(x, y) + texCoords) / 16.0;
19
+ }
20
+
21
+ vec3 quadPosition()
22
+ {
23
+ return vertex + vec3(offset.x, offset.y, 0);
24
+ }
25
+
26
+
27
+ void main()
28
+ {
29
+ gl_Position = camera * model * vec4(quadPosition(), 1.0);
30
+ TexCoords = getTexCoords();
31
+ }
@@ -1,15 +1,15 @@
1
- #version 330 core
2
- in vec2 TexCoords;
3
- out vec4 color;
4
-
5
- uniform sampler2D image;
6
- uniform vec4 spriteColor;
7
-
8
- void main()
9
- {
10
- vec4 texColor = texture(image, TexCoords);
11
- if(texColor.a < 0.05)
12
- discard;
13
- else
14
- color = spriteColor * texColor;
15
- }
1
+ #version 330 core
2
+ in vec2 TexCoords;
3
+ out vec4 color;
4
+
5
+ uniform sampler2D image;
6
+ uniform vec4 spriteColor;
7
+
8
+ void main()
9
+ {
10
+ vec4 texColor = texture(image, TexCoords);
11
+ if(texColor.a < 0.05)
12
+ discard;
13
+ else
14
+ color = spriteColor * texColor;
15
+ }
@@ -1,16 +1,16 @@
1
- #version 330 core
2
-
3
- // <vec3 position, vec2 texCoords>
4
- layout (location = 0) in vec3 vertex;
5
- layout (location = 1) in vec2 texCoord;
6
-
7
- out vec2 TexCoords;
8
-
9
- uniform mat4 camera;
10
- uniform mat4 model;
11
-
12
- void main()
13
- {
14
- TexCoords = texCoord;
15
- gl_Position = camera * model * vec4(vertex, 1.0);
1
+ #version 330 core
2
+
3
+ // <vec3 position, vec2 texCoords>
4
+ layout (location = 0) in vec3 vertex;
5
+ layout (location = 1) in vec2 texCoord;
6
+
7
+ out vec2 TexCoords;
8
+
9
+ uniform mat4 camera;
10
+ uniform mat4 model;
11
+
12
+ void main()
13
+ {
14
+ TexCoords = texCoord;
15
+ gl_Position = camera * model * vec4(vertex, 1.0);
16
16
  }