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.
- checksums.yaml +4 -4
- data/README.md +21 -21
- data/bin/build.bash +13 -13
- data/bin/import +44 -44
- data/glfw-3.3.9.bin.MACOS/LICENSE.md +23 -23
- data/glfw-3.3.9.bin.MACOS/README.md +5 -5
- data/glfw-3.3.9.bin.MACOS/docs/html/build_8dox.html +81 -81
- data/glfw-3.3.9.bin.MACOS/docs/html/build_guide.html +199 -199
- data/glfw-3.3.9.bin.MACOS/docs/html/compat_8dox.html +81 -81
- data/glfw-3.3.9.bin.MACOS/docs/html/compat_guide.html +153 -153
- data/glfw-3.3.9.bin.MACOS/docs/html/compile_8dox.html +81 -81
- data/glfw-3.3.9.bin.MACOS/docs/html/compile_guide.html +223 -223
- data/glfw-3.3.9.bin.MACOS/docs/html/context_8dox.html +81 -81
- data/glfw-3.3.9.bin.MACOS/docs/html/context_guide.html +259 -259
- data/glfw-3.3.9.bin.MACOS/docs/html/deprecated.html +88 -88
- data/glfw-3.3.9.bin.MACOS/docs/html/dir_08423ce7729c4554356a7de7171ba263.html +85 -85
- data/glfw-3.3.9.bin.MACOS/docs/html/dir_2dcebcdf14b42e92a6ed85c61bda6b9d.html +93 -93
- data/glfw-3.3.9.bin.MACOS/docs/html/dir_62ce056722ee97c199075aa1d6eca309.html +95 -95
- data/glfw-3.3.9.bin.MACOS/docs/html/dir_dddf4cf62655095a666cf715de3a31a2.html +91 -91
- data/glfw-3.3.9.bin.MACOS/docs/html/doc.svg +12 -12
- data/glfw-3.3.9.bin.MACOS/docs/html/docd.svg +12 -12
- data/glfw-3.3.9.bin.MACOS/docs/html/doxygen.css +1685 -1685
- data/glfw-3.3.9.bin.MACOS/docs/html/doxygen.svg +28 -28
- data/glfw-3.3.9.bin.MACOS/docs/html/dynsections.js +192 -192
- data/glfw-3.3.9.bin.MACOS/docs/html/extra.css +1 -1
- data/glfw-3.3.9.bin.MACOS/docs/html/files.html +91 -91
- data/glfw-3.3.9.bin.MACOS/docs/html/folderclosed.svg +11 -11
- data/glfw-3.3.9.bin.MACOS/docs/html/folderclosedd.svg +11 -11
- data/glfw-3.3.9.bin.MACOS/docs/html/folderopen.svg +17 -17
- data/glfw-3.3.9.bin.MACOS/docs/html/folderopend.svg +12 -12
- data/glfw-3.3.9.bin.MACOS/docs/html/glfw3_8h.html +1661 -1661
- data/glfw-3.3.9.bin.MACOS/docs/html/glfw3_8h_source.html +1175 -1175
- data/glfw-3.3.9.bin.MACOS/docs/html/glfw3native_8h.html +167 -167
- data/glfw-3.3.9.bin.MACOS/docs/html/glfw3native_8h_source.html +303 -303
- data/glfw-3.3.9.bin.MACOS/docs/html/group__buttons.html +282 -282
- data/glfw-3.3.9.bin.MACOS/docs/html/group__context.html +304 -304
- data/glfw-3.3.9.bin.MACOS/docs/html/group__errors.html +304 -304
- data/glfw-3.3.9.bin.MACOS/docs/html/group__gamepad__axes.html +202 -202
- data/glfw-3.3.9.bin.MACOS/docs/html/group__gamepad__buttons.html +410 -410
- data/glfw-3.3.9.bin.MACOS/docs/html/group__hat__state.html +234 -234
- data/glfw-3.3.9.bin.MACOS/docs/html/group__init.html +570 -570
- data/glfw-3.3.9.bin.MACOS/docs/html/group__input.html +2255 -2255
- data/glfw-3.3.9.bin.MACOS/docs/html/group__joysticks.html +362 -362
- data/glfw-3.3.9.bin.MACOS/docs/html/group__keys.html +2034 -2034
- data/glfw-3.3.9.bin.MACOS/docs/html/group__mods.html +198 -198
- data/glfw-3.3.9.bin.MACOS/docs/html/group__monitor.html +848 -848
- data/glfw-3.3.9.bin.MACOS/docs/html/group__native.html +812 -812
- data/glfw-3.3.9.bin.MACOS/docs/html/group__shapes.html +198 -198
- data/glfw-3.3.9.bin.MACOS/docs/html/group__vulkan.html +359 -359
- data/glfw-3.3.9.bin.MACOS/docs/html/group__window.html +3434 -3434
- data/glfw-3.3.9.bin.MACOS/docs/html/index.html +100 -100
- data/glfw-3.3.9.bin.MACOS/docs/html/input_8dox.html +81 -81
- data/glfw-3.3.9.bin.MACOS/docs/html/input_guide.html +570 -570
- data/glfw-3.3.9.bin.MACOS/docs/html/internal_8dox.html +81 -81
- data/glfw-3.3.9.bin.MACOS/docs/html/internals_guide.html +132 -132
- data/glfw-3.3.9.bin.MACOS/docs/html/intro_8dox.html +81 -81
- data/glfw-3.3.9.bin.MACOS/docs/html/intro_guide.html +351 -351
- data/glfw-3.3.9.bin.MACOS/docs/html/jquery.js +33 -33
- data/glfw-3.3.9.bin.MACOS/docs/html/main_8dox.html +81 -81
- data/glfw-3.3.9.bin.MACOS/docs/html/menu.js +136 -136
- data/glfw-3.3.9.bin.MACOS/docs/html/menudata.js +29 -29
- data/glfw-3.3.9.bin.MACOS/docs/html/minus.svg +8 -8
- data/glfw-3.3.9.bin.MACOS/docs/html/minusd.svg +8 -8
- data/glfw-3.3.9.bin.MACOS/docs/html/monitor_8dox.html +81 -81
- data/glfw-3.3.9.bin.MACOS/docs/html/monitor_guide.html +229 -229
- data/glfw-3.3.9.bin.MACOS/docs/html/moving_8dox.html +81 -81
- data/glfw-3.3.9.bin.MACOS/docs/html/moving_guide.html +374 -374
- data/glfw-3.3.9.bin.MACOS/docs/html/news.html +634 -634
- data/glfw-3.3.9.bin.MACOS/docs/html/news_8dox.html +81 -81
- data/glfw-3.3.9.bin.MACOS/docs/html/pages.html +99 -99
- data/glfw-3.3.9.bin.MACOS/docs/html/plus.svg +9 -9
- data/glfw-3.3.9.bin.MACOS/docs/html/plusd.svg +9 -9
- data/glfw-3.3.9.bin.MACOS/docs/html/quick_8dox.html +81 -81
- data/glfw-3.3.9.bin.MACOS/docs/html/quick_guide.html +397 -397
- data/glfw-3.3.9.bin.MACOS/docs/html/search/all_0.js +5 -5
- data/glfw-3.3.9.bin.MACOS/docs/html/search/all_1.js +4 -4
- data/glfw-3.3.9.bin.MACOS/docs/html/search/all_10.js +65 -65
- data/glfw-3.3.9.bin.MACOS/docs/html/search/all_11.js +26 -26
- data/glfw-3.3.9.bin.MACOS/docs/html/search/all_12.js +44 -44
- data/glfw-3.3.9.bin.MACOS/docs/html/search/all_13.js +34 -34
- data/glfw-3.3.9.bin.MACOS/docs/html/search/all_14.js +12 -12
- data/glfw-3.3.9.bin.MACOS/docs/html/search/all_15.js +52 -52
- data/glfw-3.3.9.bin.MACOS/docs/html/search/all_16.js +69 -69
- data/glfw-3.3.9.bin.MACOS/docs/html/search/all_17.js +51 -51
- data/glfw-3.3.9.bin.MACOS/docs/html/search/all_18.js +14 -14
- data/glfw-3.3.9.bin.MACOS/docs/html/search/all_19.js +36 -36
- data/glfw-3.3.9.bin.MACOS/docs/html/search/all_1a.js +98 -98
- data/glfw-3.3.9.bin.MACOS/docs/html/search/all_1b.js +12 -12
- data/glfw-3.3.9.bin.MACOS/docs/html/search/all_2.js +6 -6
- data/glfw-3.3.9.bin.MACOS/docs/html/search/all_3.js +9 -9
- data/glfw-3.3.9.bin.MACOS/docs/html/search/all_4.js +57 -57
- data/glfw-3.3.9.bin.MACOS/docs/html/search/all_5.js +22 -22
- data/glfw-3.3.9.bin.MACOS/docs/html/search/all_6.js +103 -103
- data/glfw-3.3.9.bin.MACOS/docs/html/search/all_7.js +23 -23
- data/glfw-3.3.9.bin.MACOS/docs/html/search/all_8.js +35 -35
- data/glfw-3.3.9.bin.MACOS/docs/html/search/all_9.js +63 -63
- data/glfw-3.3.9.bin.MACOS/docs/html/search/all_a.js +505 -505
- data/glfw-3.3.9.bin.MACOS/docs/html/search/all_b.js +24 -24
- data/glfw-3.3.9.bin.MACOS/docs/html/search/all_c.js +50 -50
- data/glfw-3.3.9.bin.MACOS/docs/html/search/all_d.js +17 -17
- data/glfw-3.3.9.bin.MACOS/docs/html/search/all_e.js +12 -12
- data/glfw-3.3.9.bin.MACOS/docs/html/search/all_f.js +35 -35
- data/glfw-3.3.9.bin.MACOS/docs/html/search/classes_0.js +7 -7
- data/glfw-3.3.9.bin.MACOS/docs/html/search/close.svg +18 -18
- data/glfw-3.3.9.bin.MACOS/docs/html/search/defines_0.js +34 -34
- data/glfw-3.3.9.bin.MACOS/docs/html/search/files_0.js +4 -4
- data/glfw-3.3.9.bin.MACOS/docs/html/search/files_1.js +6 -6
- data/glfw-3.3.9.bin.MACOS/docs/html/search/files_2.js +5 -5
- data/glfw-3.3.9.bin.MACOS/docs/html/search/files_3.js +6 -6
- data/glfw-3.3.9.bin.MACOS/docs/html/search/files_4.js +6 -6
- data/glfw-3.3.9.bin.MACOS/docs/html/search/files_5.js +4 -4
- data/glfw-3.3.9.bin.MACOS/docs/html/search/files_6.js +4 -4
- data/glfw-3.3.9.bin.MACOS/docs/html/search/files_7.js +4 -4
- data/glfw-3.3.9.bin.MACOS/docs/html/search/files_8.js +4 -4
- data/glfw-3.3.9.bin.MACOS/docs/html/search/functions_0.js +146 -146
- data/glfw-3.3.9.bin.MACOS/docs/html/search/groups_0.js +6 -6
- data/glfw-3.3.9.bin.MACOS/docs/html/search/groups_1.js +4 -4
- data/glfw-3.3.9.bin.MACOS/docs/html/search/groups_10.js +4 -4
- data/glfw-3.3.9.bin.MACOS/docs/html/search/groups_2.js +6 -6
- data/glfw-3.3.9.bin.MACOS/docs/html/search/groups_3.js +5 -5
- data/glfw-3.3.9.bin.MACOS/docs/html/search/groups_4.js +4 -4
- data/glfw-3.3.9.bin.MACOS/docs/html/search/groups_5.js +5 -5
- data/glfw-3.3.9.bin.MACOS/docs/html/search/groups_6.js +4 -4
- data/glfw-3.3.9.bin.MACOS/docs/html/search/groups_7.js +5 -5
- data/glfw-3.3.9.bin.MACOS/docs/html/search/groups_8.js +5 -5
- data/glfw-3.3.9.bin.MACOS/docs/html/search/groups_9.js +6 -6
- data/glfw-3.3.9.bin.MACOS/docs/html/search/groups_a.js +6 -6
- data/glfw-3.3.9.bin.MACOS/docs/html/search/groups_b.js +4 -4
- data/glfw-3.3.9.bin.MACOS/docs/html/search/groups_c.js +4 -4
- data/glfw-3.3.9.bin.MACOS/docs/html/search/groups_d.js +7 -7
- data/glfw-3.3.9.bin.MACOS/docs/html/search/groups_e.js +4 -4
- data/glfw-3.3.9.bin.MACOS/docs/html/search/groups_f.js +5 -5
- data/glfw-3.3.9.bin.MACOS/docs/html/search/mag.svg +24 -24
- data/glfw-3.3.9.bin.MACOS/docs/html/search/mag_d.svg +24 -24
- data/glfw-3.3.9.bin.MACOS/docs/html/search/mag_sel.svg +31 -31
- data/glfw-3.3.9.bin.MACOS/docs/html/search/mag_seld.svg +31 -31
- data/glfw-3.3.9.bin.MACOS/docs/html/search/pages_0.js +4 -4
- data/glfw-3.3.9.bin.MACOS/docs/html/search/pages_1.js +4 -4
- data/glfw-3.3.9.bin.MACOS/docs/html/search/pages_10.js +4 -4
- data/glfw-3.3.9.bin.MACOS/docs/html/search/pages_2.js +5 -5
- data/glfw-3.3.9.bin.MACOS/docs/html/search/pages_3.js +4 -4
- data/glfw-3.3.9.bin.MACOS/docs/html/search/pages_4.js +6 -6
- data/glfw-3.3.9.bin.MACOS/docs/html/search/pages_5.js +4 -4
- data/glfw-3.3.9.bin.MACOS/docs/html/search/pages_6.js +4 -4
- data/glfw-3.3.9.bin.MACOS/docs/html/search/pages_7.js +7 -7
- data/glfw-3.3.9.bin.MACOS/docs/html/search/pages_8.js +6 -6
- data/glfw-3.3.9.bin.MACOS/docs/html/search/pages_9.js +4 -4
- data/glfw-3.3.9.bin.MACOS/docs/html/search/pages_a.js +5 -5
- data/glfw-3.3.9.bin.MACOS/docs/html/search/pages_b.js +5 -5
- data/glfw-3.3.9.bin.MACOS/docs/html/search/pages_c.js +4 -4
- data/glfw-3.3.9.bin.MACOS/docs/html/search/pages_d.js +6 -6
- data/glfw-3.3.9.bin.MACOS/docs/html/search/pages_e.js +6 -6
- data/glfw-3.3.9.bin.MACOS/docs/html/search/pages_f.js +4 -4
- data/glfw-3.3.9.bin.MACOS/docs/html/search/search.css +291 -291
- data/glfw-3.3.9.bin.MACOS/docs/html/search/search.js +840 -840
- data/glfw-3.3.9.bin.MACOS/docs/html/search/searchdata.js +39 -39
- data/glfw-3.3.9.bin.MACOS/docs/html/search/typedefs_0.js +32 -32
- data/glfw-3.3.9.bin.MACOS/docs/html/search/variables_0.js +4 -4
- data/glfw-3.3.9.bin.MACOS/docs/html/search/variables_1.js +6 -6
- data/glfw-3.3.9.bin.MACOS/docs/html/search/variables_2.js +5 -5
- data/glfw-3.3.9.bin.MACOS/docs/html/search/variables_3.js +4 -4
- data/glfw-3.3.9.bin.MACOS/docs/html/search/variables_4.js +4 -4
- data/glfw-3.3.9.bin.MACOS/docs/html/search/variables_5.js +6 -6
- data/glfw-3.3.9.bin.MACOS/docs/html/search/variables_6.js +4 -4
- data/glfw-3.3.9.bin.MACOS/docs/html/search/variables_7.js +4 -4
- data/glfw-3.3.9.bin.MACOS/docs/html/spaces.svg +877 -877
- data/glfw-3.3.9.bin.MACOS/docs/html/struct_g_l_f_wgamepadstate.html +134 -134
- data/glfw-3.3.9.bin.MACOS/docs/html/struct_g_l_f_wgammaramp.html +170 -170
- data/glfw-3.3.9.bin.MACOS/docs/html/struct_g_l_f_wimage.html +151 -151
- data/glfw-3.3.9.bin.MACOS/docs/html/struct_g_l_f_wvidmode.html +204 -204
- data/glfw-3.3.9.bin.MACOS/docs/html/vulkan_8dox.html +81 -81
- data/glfw-3.3.9.bin.MACOS/docs/html/vulkan_guide.html +196 -196
- data/glfw-3.3.9.bin.MACOS/docs/html/window_8dox.html +81 -81
- data/glfw-3.3.9.bin.MACOS/docs/html/window_guide.html +763 -763
- data/glfw-3.3.9.bin.MACOS/include/GLFW/glfw3.h +5932 -5932
- data/glfw-3.3.9.bin.MACOS/include/GLFW/glfw3native.h +634 -634
- data/glfw-3.3.9.bin.MACOS/lib-arm64/libglfw.3.dylib +0 -0
- data/glfw-3.3.9.bin.MACOS/lib-universal/libglfw.3.dylib +0 -0
- data/glfw-3.3.9.bin.MACOS/lib-x86_64/libglfw.3.dylib +0 -0
- data/lib/engine/autoloader.rb +11 -11
- data/lib/engine/camera.rb +12 -12
- data/lib/engine/component.rb +63 -63
- data/lib/engine/components/audio_source.rb +41 -41
- data/lib/engine/components/direction_light.rb +22 -22
- data/lib/engine/components/font_renderer.rb +134 -134
- data/lib/engine/components/mesh_renderer.rb +31 -31
- data/lib/engine/components/orthographic_camera.rb +54 -54
- data/lib/engine/components/perspective_camera.rb +53 -53
- data/lib/engine/components/point_light.rb +23 -23
- data/lib/engine/components/sprite_renderer.rb +141 -141
- data/lib/engine/components/ui_font_renderer.rb +140 -140
- data/lib/engine/components/ui_sprite_clickbox.rb +62 -0
- data/lib/engine/components/ui_sprite_renderer.rb +101 -101
- data/lib/engine/compute_shader.rb +93 -0
- data/lib/engine/cursor.rb +43 -43
- data/lib/engine/debugging.rb +41 -41
- data/lib/engine/engine.rb +131 -131
- data/lib/engine/font.rb +74 -74
- data/lib/engine/game_object.rb +234 -234
- data/lib/engine/importers/font_importer.rb +69 -69
- data/lib/engine/importers/obj_file.rb +244 -244
- data/lib/engine/importers/obj_importer.rb +33 -33
- data/lib/engine/input.rb +105 -104
- data/lib/engine/material.rb +79 -79
- data/lib/engine/mesh.rb +43 -43
- data/lib/engine/path.rb +92 -92
- data/lib/engine/physics/collision.rb +12 -12
- data/lib/engine/physics/components/cube_collider.rb +6 -6
- data/lib/engine/physics/components/rigidbody.rb +103 -103
- data/lib/engine/physics/components/sphere_collider.rb +93 -93
- data/lib/engine/physics/physics_resolver.rb +37 -37
- data/lib/engine/polygon_mesh.rb +45 -45
- data/lib/engine/quaternion.rb +234 -234
- data/lib/engine/rendering/instance_renderer.rb +153 -153
- data/lib/engine/rendering/render_pipeline.rb +35 -35
- data/lib/engine/screenshoter.rb +34 -34
- data/lib/engine/shader.rb +119 -91
- data/lib/engine/shaders/colour_frag.glsl +8 -8
- data/lib/engine/shaders/colour_vertex.glsl +13 -13
- data/lib/engine/shaders/mesh_frag.glsl +102 -102
- data/lib/engine/shaders/mesh_vertex.glsl +25 -25
- data/lib/engine/shaders/skybox_frag.glsl +12 -12
- data/lib/engine/shaders/skybox_vert.glsl +14 -14
- data/lib/engine/shaders/sprite_frag.glsl +17 -17
- data/lib/engine/shaders/sprite_vertex.glsl +15 -15
- data/lib/engine/shaders/text_frag.glsl +15 -15
- data/lib/engine/shaders/text_vertex.glsl +31 -31
- data/lib/engine/shaders/ui_sprite_frag.glsl +15 -15
- data/lib/engine/shaders/ui_sprite_vertex.glsl +15 -15
- data/lib/engine/shaders/vertex_lit_frag.glsl +89 -89
- data/lib/engine/shaders/vertex_lit_vertex.glsl +28 -28
- data/lib/engine/tangent_calculator.rb +42 -42
- data/lib/engine/texture.rb +53 -53
- data/lib/engine/video_mode.rb +37 -37
- data/lib/engine/window.rb +126 -126
- data/lib/ruby_rpg.rb +58 -56
- 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
|
}
|