mittsu 0.4.1 → 0.5.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (147) hide show
  1. checksums.yaml +4 -4
  2. data/.github/workflows/build-workflow.yml +3 -38
  3. data/Gemfile +0 -4
  4. data/README.md +16 -130
  5. data/bin/console +0 -4
  6. data/lib/mittsu/cameras/cube_camera.rb +1 -1
  7. data/lib/mittsu/core/uniform.rb +23 -0
  8. data/lib/mittsu/core.rb +1 -0
  9. data/lib/mittsu/loaders/stl_loader.rb +186 -0
  10. data/lib/mittsu/loaders.rb +1 -0
  11. data/lib/mittsu/textures/render_target.rb +93 -0
  12. data/lib/mittsu/textures/render_target_cube.rb +8 -0
  13. data/lib/mittsu/textures/texture.rb +1 -1
  14. data/lib/mittsu/textures.rb +2 -0
  15. data/lib/mittsu/version.rb +1 -1
  16. data/lib/mittsu.rb +0 -1
  17. data/mittsu.gemspec +8 -12
  18. metadata +28 -199
  19. data/install-glfw.ps1 +0 -13
  20. data/lib/mittsu/renderers/generic_lib.rb +0 -125
  21. data/lib/mittsu/renderers/glfw_lib.rb +0 -64
  22. data/lib/mittsu/renderers/glfw_window.rb +0 -233
  23. data/lib/mittsu/renderers/opengl/core/buffer_geometry.rb +0 -11
  24. data/lib/mittsu/renderers/opengl/core/geometry.rb +0 -346
  25. data/lib/mittsu/renderers/opengl/core/object_3d.rb +0 -134
  26. data/lib/mittsu/renderers/opengl/lights/ambient_light.rb +0 -26
  27. data/lib/mittsu/renderers/opengl/lights/directional_light.rb +0 -35
  28. data/lib/mittsu/renderers/opengl/lights/hemisphere_light.rb +0 -39
  29. data/lib/mittsu/renderers/opengl/lights/light.rb +0 -55
  30. data/lib/mittsu/renderers/opengl/lights/point_light.rb +0 -36
  31. data/lib/mittsu/renderers/opengl/lights/spot_light.rb +0 -47
  32. data/lib/mittsu/renderers/opengl/materials/line_basic_material.rb +0 -16
  33. data/lib/mittsu/renderers/opengl/materials/material.rb +0 -274
  34. data/lib/mittsu/renderers/opengl/materials/mesh_basic_material.rb +0 -21
  35. data/lib/mittsu/renderers/opengl/materials/mesh_lambert_material.rb +0 -33
  36. data/lib/mittsu/renderers/opengl/materials/mesh_phong_material.rb +0 -44
  37. data/lib/mittsu/renderers/opengl/materials/opengl_material_basics.rb +0 -57
  38. data/lib/mittsu/renderers/opengl/materials/point_cloud_material.rb +0 -27
  39. data/lib/mittsu/renderers/opengl/materials/shader_material.rb +0 -11
  40. data/lib/mittsu/renderers/opengl/objects/group.rb +0 -9
  41. data/lib/mittsu/renderers/opengl/objects/line.rb +0 -45
  42. data/lib/mittsu/renderers/opengl/objects/mesh.rb +0 -70
  43. data/lib/mittsu/renderers/opengl/objects/point_cloud.rb +0 -39
  44. data/lib/mittsu/renderers/opengl/objects/sprite.rb +0 -12
  45. data/lib/mittsu/renderers/opengl/opengl_buffer.rb +0 -13
  46. data/lib/mittsu/renderers/opengl/opengl_debug.rb +0 -81
  47. data/lib/mittsu/renderers/opengl/opengl_default_target.rb +0 -50
  48. data/lib/mittsu/renderers/opengl/opengl_geometry_group.rb +0 -758
  49. data/lib/mittsu/renderers/opengl/opengl_geometry_like.rb +0 -132
  50. data/lib/mittsu/renderers/opengl/opengl_helper.rb +0 -161
  51. data/lib/mittsu/renderers/opengl/opengl_implementations.rb +0 -37
  52. data/lib/mittsu/renderers/opengl/opengl_lib.rb +0 -19
  53. data/lib/mittsu/renderers/opengl/opengl_light_renderer.rb +0 -43
  54. data/lib/mittsu/renderers/opengl/opengl_mittsu_params.rb +0 -53
  55. data/lib/mittsu/renderers/opengl/opengl_program.rb +0 -250
  56. data/lib/mittsu/renderers/opengl/opengl_shader.rb +0 -58
  57. data/lib/mittsu/renderers/opengl/opengl_state.rb +0 -205
  58. data/lib/mittsu/renderers/opengl/plugins/shadow_map_plugin.rb +0 -417
  59. data/lib/mittsu/renderers/opengl/plugins/sprite_fragment.glsl +0 -38
  60. data/lib/mittsu/renderers/opengl/plugins/sprite_plugin.rb +0 -250
  61. data/lib/mittsu/renderers/opengl/plugins/sprite_vertex.glsl +0 -31
  62. data/lib/mittsu/renderers/opengl/scenes/scene.rb +0 -9
  63. data/lib/mittsu/renderers/opengl/textures/compressed_texture.rb +0 -20
  64. data/lib/mittsu/renderers/opengl/textures/cube_texture.rb +0 -77
  65. data/lib/mittsu/renderers/opengl/textures/data_texture.rb +0 -21
  66. data/lib/mittsu/renderers/opengl/textures/texture.rb +0 -107
  67. data/lib/mittsu/renderers/opengl_render_target.rb +0 -201
  68. data/lib/mittsu/renderers/opengl_renderer.rb +0 -1028
  69. data/lib/mittsu/renderers/shaders/rbsl_loader.rb +0 -166
  70. data/lib/mittsu/renderers/shaders/shader_chunk/alphamap_fragment.glsl +0 -5
  71. data/lib/mittsu/renderers/shaders/shader_chunk/alphamap_pars_fragment.glsl +0 -5
  72. data/lib/mittsu/renderers/shaders/shader_chunk/alphatest_fragment.glsl +0 -5
  73. data/lib/mittsu/renderers/shaders/shader_chunk/bumpmap_pars_fragment.glsl +0 -40
  74. data/lib/mittsu/renderers/shaders/shader_chunk/color_fragment.glsl +0 -5
  75. data/lib/mittsu/renderers/shaders/shader_chunk/color_pars_fragment.glsl +0 -5
  76. data/lib/mittsu/renderers/shaders/shader_chunk/color_pars_vertex.glsl +0 -5
  77. data/lib/mittsu/renderers/shaders/shader_chunk/color_vertex.glsl +0 -5
  78. data/lib/mittsu/renderers/shaders/shader_chunk/common.glsl +0 -60
  79. data/lib/mittsu/renderers/shaders/shader_chunk/default_vertex.glsl +0 -15
  80. data/lib/mittsu/renderers/shaders/shader_chunk/defaultnormal_vertex.glsl +0 -21
  81. data/lib/mittsu/renderers/shaders/shader_chunk/envmap_fragment.glsl +0 -62
  82. data/lib/mittsu/renderers/shaders/shader_chunk/envmap_pars_fragment.glsl +0 -21
  83. data/lib/mittsu/renderers/shaders/shader_chunk/envmap_pars_vertex.glsl +0 -7
  84. data/lib/mittsu/renderers/shaders/shader_chunk/envmap_vertex.glsl +0 -17
  85. data/lib/mittsu/renderers/shaders/shader_chunk/fog_fragment.glsl +0 -26
  86. data/lib/mittsu/renderers/shaders/shader_chunk/fog_pars_fragment.glsl +0 -15
  87. data/lib/mittsu/renderers/shaders/shader_chunk/lightmap_fragment.glsl +0 -5
  88. data/lib/mittsu/renderers/shaders/shader_chunk/lightmap_pars_fragment.glsl +0 -6
  89. data/lib/mittsu/renderers/shaders/shader_chunk/lightmap_pars_vertex.glsl +0 -5
  90. data/lib/mittsu/renderers/shaders/shader_chunk/lightmap_vertex.glsl +0 -5
  91. data/lib/mittsu/renderers/shaders/shader_chunk/lights_lambert_pars_vertex.glsl +0 -43
  92. data/lib/mittsu/renderers/shaders/shader_chunk/lights_lambert_vertex.glsl +0 -196
  93. data/lib/mittsu/renderers/shaders/shader_chunk/lights_phong_fragment.glsl +0 -243
  94. data/lib/mittsu/renderers/shaders/shader_chunk/lights_phong_pars_fragment.glsl +0 -58
  95. data/lib/mittsu/renderers/shaders/shader_chunk/lights_phong_pars_vertex.glsl +0 -5
  96. data/lib/mittsu/renderers/shaders/shader_chunk/lights_phong_vertex.glsl +0 -5
  97. data/lib/mittsu/renderers/shaders/shader_chunk/linear_to_gamma_fragment.glsl +0 -2
  98. data/lib/mittsu/renderers/shaders/shader_chunk/logdepthbuf_fragment.glsl +0 -5
  99. data/lib/mittsu/renderers/shaders/shader_chunk/logdepthbuf_pars_fragment.glsl +0 -12
  100. data/lib/mittsu/renderers/shaders/shader_chunk/logdepthbuf_pars_vertex.glsl +0 -11
  101. data/lib/mittsu/renderers/shaders/shader_chunk/logdepthbuf_vertex.glsl +0 -15
  102. data/lib/mittsu/renderers/shaders/shader_chunk/map_fragment.glsl +0 -9
  103. data/lib/mittsu/renderers/shaders/shader_chunk/map_pars_fragment.glsl +0 -11
  104. data/lib/mittsu/renderers/shaders/shader_chunk/map_pars_vertex.glsl +0 -6
  105. data/lib/mittsu/renderers/shaders/shader_chunk/map_particle_fragment.glsl +0 -5
  106. data/lib/mittsu/renderers/shaders/shader_chunk/map_particle_pars_fragment.glsl +0 -6
  107. data/lib/mittsu/renderers/shaders/shader_chunk/map_vertex.glsl +0 -5
  108. data/lib/mittsu/renderers/shaders/shader_chunk/morphnormal_vertex.glsl +0 -12
  109. data/lib/mittsu/renderers/shaders/shader_chunk/morphtarget_pars_vertex.glsl +0 -13
  110. data/lib/mittsu/renderers/shaders/shader_chunk/morphtarget_vertex.glsl +0 -20
  111. data/lib/mittsu/renderers/shaders/shader_chunk/normalmap_pars_fragment.glsl +0 -27
  112. data/lib/mittsu/renderers/shaders/shader_chunk/shadowmap_fragment.glsl +0 -216
  113. data/lib/mittsu/renderers/shaders/shader_chunk/shadowmap_pars_fragment.glsl +0 -19
  114. data/lib/mittsu/renderers/shaders/shader_chunk/shadowmap_pars_vertex.glsl +0 -6
  115. data/lib/mittsu/renderers/shaders/shader_chunk/shadowmap_vertex.glsl +0 -9
  116. data/lib/mittsu/renderers/shaders/shader_chunk/skinbase_vertex.glsl +0 -8
  117. data/lib/mittsu/renderers/shaders/shader_chunk/skinning_pars_vertex.glsl +0 -47
  118. data/lib/mittsu/renderers/shaders/shader_chunk/skinning_vertex.glsl +0 -20
  119. data/lib/mittsu/renderers/shaders/shader_chunk/skinnormal_vertex.glsl +0 -20
  120. data/lib/mittsu/renderers/shaders/shader_chunk/specularmap_fragment.glsl +0 -12
  121. data/lib/mittsu/renderers/shaders/shader_chunk/specularmap_pars_fragment.glsl +0 -5
  122. data/lib/mittsu/renderers/shaders/shader_chunk/worldpos_vertex.glsl +0 -17
  123. data/lib/mittsu/renderers/shaders/shader_chunk.rb +0 -9
  124. data/lib/mittsu/renderers/shaders/shader_lib/basic/basic_fragment.rbsl +0 -37
  125. data/lib/mittsu/renderers/shaders/shader_lib/basic/basic_uniforms.rbslu +0 -3
  126. data/lib/mittsu/renderers/shaders/shader_lib/basic/basic_vertex.rbsl +0 -33
  127. data/lib/mittsu/renderers/shaders/shader_lib/cube/cube_fragment.rbsl +0 -12
  128. data/lib/mittsu/renderers/shaders/shader_lib/cube/cube_uniforms.rbslu +0 -2
  129. data/lib/mittsu/renderers/shaders/shader_lib/cube/cube_vertex.rbsl +0 -12
  130. data/lib/mittsu/renderers/shaders/shader_lib/depth_rgba/depth_rgba_fragment.rbsl +0 -26
  131. data/lib/mittsu/renderers/shaders/shader_lib/depth_rgba/depth_rgba_uniforms.rbslu +0 -0
  132. data/lib/mittsu/renderers/shaders/shader_lib/depth_rgba/depth_rgba_vertex.rbsl +0 -12
  133. data/lib/mittsu/renderers/shaders/shader_lib/lambert/lambert_fragment.rbsl +0 -56
  134. data/lib/mittsu/renderers/shaders/shader_lib/lambert/lambert_uniforms.rbslu +0 -7
  135. data/lib/mittsu/renderers/shaders/shader_lib/lambert/lambert_vertex.rbsl +0 -37
  136. data/lib/mittsu/renderers/shaders/shader_lib/particle_basic/particle_basic_fragment.rbsl +0 -27
  137. data/lib/mittsu/renderers/shaders/shader_lib/particle_basic/particle_basic_uniforms.rbslu +0 -2
  138. data/lib/mittsu/renderers/shaders/shader_lib/particle_basic/particle_basic_vertex.rbsl +0 -25
  139. data/lib/mittsu/renderers/shaders/shader_lib/phong/phong_fragment.rbsl +0 -45
  140. data/lib/mittsu/renderers/shaders/shader_lib/phong/phong_uniforms.rbslu +0 -11
  141. data/lib/mittsu/renderers/shaders/shader_lib/phong/phong_vertex.rbsl +0 -43
  142. data/lib/mittsu/renderers/shaders/shader_lib.rb +0 -43
  143. data/lib/mittsu/renderers/shaders/shader_templates/fragment.glsl.erb +0 -105
  144. data/lib/mittsu/renderers/shaders/shader_templates/vertex.glsl.erb +0 -143
  145. data/lib/mittsu/renderers/shaders/uniforms_lib.rb +0 -106
  146. data/lib/mittsu/renderers/shaders/uniforms_utils.rb +0 -31
  147. data/lib/mittsu/renderers.rb +0 -1
@@ -1,216 +0,0 @@
1
- #ifdef USE_SHADOWMAP
2
-
3
- #ifdef SHADOWMAP_DEBUG
4
-
5
- vec3 frustumColors[3];
6
- frustumColors[0] = vec3( 1.0, 0.5, 0.0 );
7
- frustumColors[1] = vec3( 0.0, 1.0, 0.8 );
8
- frustumColors[2] = vec3( 0.0, 0.5, 1.0 );
9
-
10
- #endif
11
-
12
- #ifdef SHADOWMAP_CASCADE
13
-
14
- int inFrustumCount = 0;
15
-
16
- #endif
17
-
18
- float fDepth;
19
- vec3 shadowColor = vec3( 1.0 );
20
-
21
- <% parameters[:max_shadows].times do |i| %>
22
- vec3 shadowCoord = vShadowCoord[ <%= i %> ].xyz / vShadowCoord[ <%= i %> ].w;
23
-
24
- // if ( something && something ) breaks ATI OpenGL shader compiler
25
- // if ( all( something, something ) ) using this instead
26
-
27
- bvec4 inFrustumVec = bvec4 ( shadowCoord.x >= 0.0, shadowCoord.x <= 1.0, shadowCoord.y >= 0.0, shadowCoord.y <= 1.0 );
28
- bool inFrustum = all( inFrustumVec );
29
-
30
- // don't shadow pixels outside of light frustum
31
- // use just first frustum (for cascades)
32
- // don't shadow pixels behind far plane of light frustum
33
-
34
- #ifdef SHADOWMAP_CASCADE
35
-
36
- inFrustumCount += int( inFrustum );
37
- bvec3 frustumTestVec = bvec3( inFrustum, inFrustumCount == 1, shadowCoord.z <= 1.0 );
38
-
39
- #else
40
-
41
- bvec2 frustumTestVec = bvec2( inFrustum, shadowCoord.z <= 1.0 );
42
-
43
- #endif
44
-
45
- bool frustumTest = all( frustumTestVec );
46
-
47
- if ( frustumTest ) {
48
-
49
- shadowCoord.z += shadowBias[ <%= i %> ];
50
-
51
- #if defined( SHADOWMAP_TYPE_PCF )
52
-
53
- // Percentage-close filtering
54
- // (9 pixel kernel)
55
- // http://fabiensanglard.net/shadowmappingPCF/
56
-
57
- float shadow = 0.0;
58
-
59
- /*
60
- // nested loops breaks shader compiler / validator on some ATI cards when using OpenGL
61
- // must enroll loop manually
62
-
63
- for ( float y = -1.25; y <= 1.25; y += 1.25 )
64
- for ( float x = -1.25; x <= 1.25; x += 1.25 ) {
65
-
66
- vec4 rgbaDepth = texture( shadowMap[ <%= i %> ], vec2( x * xPixelOffset, y * yPixelOffset ) + shadowCoord.xy );
67
-
68
- // doesn't seem to produce any noticeable visual difference compared to simple texture lookup
69
- //vec4 rgbaDepth = textureProj( shadowMap[ <%= i %> ], vec4( vShadowCoord[ <%= i %> ].w * ( vec2( x * xPixelOffset, y * yPixelOffset ) + shadowCoord.xy ), 0.05, vShadowCoord[ <%= i %> ].w ) );
70
-
71
- float fDepth = unpackDepth( rgbaDepth );
72
-
73
- if ( fDepth < shadowCoord.z )
74
- shadow += 1.0;
75
-
76
- }
77
-
78
- shadow /= 9.0;
79
-
80
- */
81
-
82
- const float shadowDelta = 1.0 / 9.0;
83
-
84
- float xPixelOffset = 1.0 / shadowMapSize[ <%= i %> ].x;
85
- float yPixelOffset = 1.0 / shadowMapSize[ <%= i %> ].y;
86
-
87
- float dx0 = -1.25 * xPixelOffset;
88
- float dy0 = -1.25 * yPixelOffset;
89
- float dx1 = 1.25 * xPixelOffset;
90
- float dy1 = 1.25 * yPixelOffset;
91
-
92
- fDepth = unpackDepth( texture( shadowMap[ <%= i %> ], shadowCoord.xy + vec2( dx0, dy0 ) ) );
93
- if ( fDepth < shadowCoord.z ) shadow += shadowDelta;
94
-
95
- fDepth = unpackDepth( texture( shadowMap[ <%= i %> ], shadowCoord.xy + vec2( 0.0, dy0 ) ) );
96
- if ( fDepth < shadowCoord.z ) shadow += shadowDelta;
97
-
98
- fDepth = unpackDepth( texture( shadowMap[ <%= i %> ], shadowCoord.xy + vec2( dx1, dy0 ) ) );
99
- if ( fDepth < shadowCoord.z ) shadow += shadowDelta;
100
-
101
- fDepth = unpackDepth( texture( shadowMap[ <%= i %> ], shadowCoord.xy + vec2( dx0, 0.0 ) ) );
102
- if ( fDepth < shadowCoord.z ) shadow += shadowDelta;
103
-
104
- fDepth = unpackDepth( texture( shadowMap[ <%= i %> ], shadowCoord.xy ) );
105
- if ( fDepth < shadowCoord.z ) shadow += shadowDelta;
106
-
107
- fDepth = unpackDepth( texture( shadowMap[ <%= i %> ], shadowCoord.xy + vec2( dx1, 0.0 ) ) );
108
- if ( fDepth < shadowCoord.z ) shadow += shadowDelta;
109
-
110
- fDepth = unpackDepth( texture( shadowMap[ <%= i %> ], shadowCoord.xy + vec2( dx0, dy1 ) ) );
111
- if ( fDepth < shadowCoord.z ) shadow += shadowDelta;
112
-
113
- fDepth = unpackDepth( texture( shadowMap[ <%= i %> ], shadowCoord.xy + vec2( 0.0, dy1 ) ) );
114
- if ( fDepth < shadowCoord.z ) shadow += shadowDelta;
115
-
116
- fDepth = unpackDepth( texture( shadowMap[ <%= i %> ], shadowCoord.xy + vec2( dx1, dy1 ) ) );
117
- if ( fDepth < shadowCoord.z ) shadow += shadowDelta;
118
-
119
- shadowColor = shadowColor * vec3( ( 1.0 - shadowDarkness[ <%= i %> ] * shadow ) );
120
-
121
- #elif defined( SHADOWMAP_TYPE_PCF_SOFT )
122
-
123
- // Percentage-close filtering
124
- // (9 pixel kernel)
125
- // http://fabiensanglard.net/shadowmappingPCF/
126
-
127
- float shadow = 0.0;
128
-
129
- float xPixelOffset = 1.0 / shadowMapSize[ <%= i %> ].x;
130
- float yPixelOffset = 1.0 / shadowMapSize[ <%= i %> ].y;
131
-
132
- float dx0 = -1.0 * xPixelOffset;
133
- float dy0 = -1.0 * yPixelOffset;
134
- float dx1 = 1.0 * xPixelOffset;
135
- float dy1 = 1.0 * yPixelOffset;
136
-
137
- mat3 shadowKernel;
138
- mat3 depthKernel;
139
-
140
- depthKernel[0][0] = unpackDepth( texture( shadowMap[ <%= i %> ], shadowCoord.xy + vec2( dx0, dy0 ) ) );
141
- depthKernel[0][1] = unpackDepth( texture( shadowMap[ <%= i %> ], shadowCoord.xy + vec2( dx0, 0.0 ) ) );
142
- depthKernel[0][2] = unpackDepth( texture( shadowMap[ <%= i %> ], shadowCoord.xy + vec2( dx0, dy1 ) ) );
143
- depthKernel[1][0] = unpackDepth( texture( shadowMap[ <%= i %> ], shadowCoord.xy + vec2( 0.0, dy0 ) ) );
144
- depthKernel[1][1] = unpackDepth( texture( shadowMap[ <%= i %> ], shadowCoord.xy ) );
145
- depthKernel[1][2] = unpackDepth( texture( shadowMap[ <%= i %> ], shadowCoord.xy + vec2( 0.0, dy1 ) ) );
146
- depthKernel[2][0] = unpackDepth( texture( shadowMap[ <%= i %> ], shadowCoord.xy + vec2( dx1, dy0 ) ) );
147
- depthKernel[2][1] = unpackDepth( texture( shadowMap[ <%= i %> ], shadowCoord.xy + vec2( dx1, 0.0 ) ) );
148
- depthKernel[2][2] = unpackDepth( texture( shadowMap[ <%= i %> ], shadowCoord.xy + vec2( dx1, dy1 ) ) );
149
-
150
- vec3 shadowZ = vec3( shadowCoord.z );
151
- shadowKernel[0] = vec3(lessThan(depthKernel[0], shadowZ ));
152
- shadowKernel[0] *= vec3(0.25);
153
-
154
- shadowKernel[1] = vec3(lessThan(depthKernel[1], shadowZ ));
155
- shadowKernel[1] *= vec3(0.25);
156
-
157
- shadowKernel[2] = vec3(lessThan(depthKernel[2], shadowZ ));
158
- shadowKernel[2] *= vec3(0.25);
159
-
160
- vec2 fractionalCoord = 1.0 - fract( shadowCoord.xy * shadowMapSize[<%= i %>].xy );
161
-
162
- shadowKernel[0] = mix( shadowKernel[1], shadowKernel[0], fractionalCoord.x );
163
- shadowKernel[1] = mix( shadowKernel[2], shadowKernel[1], fractionalCoord.x );
164
-
165
- vec4 shadowValues;
166
- shadowValues.x = mix( shadowKernel[0][1], shadowKernel[0][0], fractionalCoord.y );
167
- shadowValues.y = mix( shadowKernel[0][2], shadowKernel[0][1], fractionalCoord.y );
168
- shadowValues.z = mix( shadowKernel[1][1], shadowKernel[1][0], fractionalCoord.y );
169
- shadowValues.w = mix( shadowKernel[1][2], shadowKernel[1][1], fractionalCoord.y );
170
-
171
- shadow = dot( shadowValues, vec4( 1.0 ) );
172
-
173
- shadowColor = shadowColor * vec3( ( 1.0 - shadowDarkness[ <%= i %> ] * shadow ) );
174
-
175
- #else
176
-
177
- vec4 rgbaDepth = texture( shadowMap[ <%= i %> ], shadowCoord.xy );
178
- float fDepth = unpackDepth( rgbaDepth );
179
-
180
- if ( fDepth < shadowCoord.z )
181
-
182
- // spot with multiple shadows is darker
183
-
184
- shadowColor = shadowColor * vec3( 1.0 - shadowDarkness[ <%= i %> ] );
185
-
186
- // spot with multiple shadows has the same color as single shadow spot
187
-
188
- // shadowColor = min( shadowColor, vec3( shadowDarkness[ <%= i %> ] ) );
189
-
190
- #endif
191
-
192
- }
193
-
194
-
195
- #ifdef SHADOWMAP_DEBUG
196
-
197
- #ifdef SHADOWMAP_CASCADE
198
-
199
- if ( inFrustum && inFrustumCount == 1 ) outgoingLight *= frustumColors[ <%= i %> ];
200
-
201
- #else
202
-
203
- if ( inFrustum ) outgoingLight *= frustumColors[ <%= i %> ];
204
-
205
- #endif
206
-
207
- #endif
208
-
209
- <% end %>
210
-
211
- // NOTE: I am unsure if this is correct in linear space. -bhouston, Dec 29, 2014
212
- shadowColor = inputToLinear( shadowColor );
213
-
214
- outgoingLight = outgoingLight * shadowColor;
215
-
216
- #endif
@@ -1,19 +0,0 @@
1
- #ifdef USE_SHADOWMAP
2
-
3
- uniform sampler2D shadowMap[ MAX_SHADOWS ];
4
- uniform vec2 shadowMapSize[ MAX_SHADOWS ];
5
-
6
- uniform float shadowDarkness[ MAX_SHADOWS ];
7
- uniform float shadowBias[ MAX_SHADOWS ];
8
-
9
- in vec4 vShadowCoord[ MAX_SHADOWS ];
10
-
11
- float unpackDepth( const in vec4 rgba_depth ) {
12
-
13
- const vec4 bit_shift = vec4( 1.0 / ( 256.0 * 256.0 * 256.0 ), 1.0 / ( 256.0 * 256.0 ), 1.0 / 256.0, 1.0 );
14
- float depth = dot( rgba_depth, bit_shift );
15
- return depth;
16
-
17
- }
18
-
19
- #endif
@@ -1,6 +0,0 @@
1
- #ifdef USE_SHADOWMAP
2
-
3
- out vec4 vShadowCoord[ MAX_SHADOWS ];
4
- uniform mat4 shadowMatrix[ MAX_SHADOWS ];
5
-
6
- #endif
@@ -1,9 +0,0 @@
1
- #ifdef USE_SHADOWMAP
2
-
3
- for( int i = 0; i < MAX_SHADOWS; i ++ ) {
4
-
5
- vShadowCoord[ i ] = shadowMatrix[ i ] * worldPosition;
6
-
7
- }
8
-
9
- #endif
@@ -1,8 +0,0 @@
1
- #ifdef USE_SKINNING
2
-
3
- mat4 boneMatX = getBoneMatrix( skinIndex.x );
4
- mat4 boneMatY = getBoneMatrix( skinIndex.y );
5
- mat4 boneMatZ = getBoneMatrix( skinIndex.z );
6
- mat4 boneMatW = getBoneMatrix( skinIndex.w );
7
-
8
- #endif
@@ -1,47 +0,0 @@
1
- #ifdef USE_SKINNING
2
-
3
- uniform mat4 bindMatrix;
4
- uniform mat4 bindMatrixInverse;
5
-
6
- #ifdef BONE_TEXTURE
7
-
8
- uniform sampler2D boneTexture;
9
- uniform int boneTextureWidth;
10
- uniform int boneTextureHeight;
11
-
12
- mat4 getBoneMatrix( const in float i ) {
13
-
14
- float j = i * 4.0;
15
- float x = mod( j, float( boneTextureWidth ) );
16
- float y = floor( j / float( boneTextureWidth ) );
17
-
18
- float dx = 1.0 / float( boneTextureWidth );
19
- float dy = 1.0 / float( boneTextureHeight );
20
-
21
- y = dy * ( y + 0.5 );
22
-
23
- vec4 v1 = texture( boneTexture, vec2( dx * ( x + 0.5 ), y ) );
24
- vec4 v2 = texture( boneTexture, vec2( dx * ( x + 1.5 ), y ) );
25
- vec4 v3 = texture( boneTexture, vec2( dx * ( x + 2.5 ), y ) );
26
- vec4 v4 = texture( boneTexture, vec2( dx * ( x + 3.5 ), y ) );
27
-
28
- mat4 bone = mat4( v1, v2, v3, v4 );
29
-
30
- return bone;
31
-
32
- }
33
-
34
- #else
35
-
36
- uniform mat4 boneGlobalMatrices[ MAX_BONES ];
37
-
38
- mat4 getBoneMatrix( const in float i ) {
39
-
40
- mat4 bone = boneGlobalMatrices[ int(i) ];
41
- return bone;
42
-
43
- }
44
-
45
- #endif
46
-
47
- #endif
@@ -1,20 +0,0 @@
1
- #ifdef USE_SKINNING
2
-
3
- #ifdef USE_MORPHTARGETS
4
-
5
- vec4 skinVertex = bindMatrix * vec4( morphed, 1.0 );
6
-
7
- #else
8
-
9
- vec4 skinVertex = bindMatrix * vec4( position, 1.0 );
10
-
11
- #endif
12
-
13
- vec4 skinned = vec4( 0.0 );
14
- skinned += boneMatX * skinVertex * skinWeight.x;
15
- skinned += boneMatY * skinVertex * skinWeight.y;
16
- skinned += boneMatZ * skinVertex * skinWeight.z;
17
- skinned += boneMatW * skinVertex * skinWeight.w;
18
- skinned = bindMatrixInverse * skinned;
19
-
20
- #endif
@@ -1,20 +0,0 @@
1
- #ifdef USE_SKINNING
2
-
3
- mat4 skinMatrix = mat4( 0.0 );
4
- skinMatrix += skinWeight.x * boneMatX;
5
- skinMatrix += skinWeight.y * boneMatY;
6
- skinMatrix += skinWeight.z * boneMatZ;
7
- skinMatrix += skinWeight.w * boneMatW;
8
- skinMatrix = bindMatrixInverse * skinMatrix * bindMatrix;
9
-
10
- #ifdef USE_MORPHNORMALS
11
-
12
- vec4 skinnedNormal = skinMatrix * vec4( morphedNormal, 0.0 );
13
-
14
- #else
15
-
16
- vec4 skinnedNormal = skinMatrix * vec4( normal, 0.0 );
17
-
18
- #endif
19
-
20
- #endif
@@ -1,12 +0,0 @@
1
- float specularStrength;
2
-
3
- #ifdef USE_SPECULARMAP
4
-
5
- vec4 texelSpecular = texture( specularMap, vUv );
6
- specularStrength = texelSpecular.r;
7
-
8
- #else
9
-
10
- specularStrength = 1.0;
11
-
12
- #endif
@@ -1,5 +0,0 @@
1
- #ifdef USE_SPECULARMAP
2
-
3
- uniform sampler2D specularMap;
4
-
5
- #endif
@@ -1,17 +0,0 @@
1
- #if defined( USE_ENVMAP ) || defined( PHONG ) || defined( LAMBERT ) || defined ( USE_SHADOWMAP )
2
-
3
- #ifdef USE_SKINNING
4
-
5
- vec4 worldPosition = modelMatrix * skinned;
6
-
7
- #elif defined( USE_MORPHTARGETS )
8
-
9
- vec4 worldPosition = modelMatrix * vec4( morphed, 1.0 );
10
-
11
- #else
12
-
13
- vec4 worldPosition = modelMatrix * vec4( position, 1.0 );
14
-
15
- #endif
16
-
17
- #endif
@@ -1,9 +0,0 @@
1
- module Mittsu
2
- ShaderChunk = Hash.new do |chunks, key|
3
- file_name = "#{key.to_s}.glsl"
4
- file_path = File.join(__dir__, 'shader_chunk', file_name)
5
- chunk = File.read(file_path)
6
- # chunk = "// #{chunk_name}\n#{chunk}"
7
- chunks[key] = chunk
8
- end
9
- end
@@ -1,37 +0,0 @@
1
- uniform vec3 diffuse;
2
- uniform float opacity;
3
-
4
- #include common
5
- #include color_pars_fragment
6
- #include map_pars_fragment
7
- #include alphamap_pars_fragment
8
- #include lightmap_pars_fragment
9
- #include envmap_pars_fragment
10
- #include fog_pars_fragment
11
- #include shadowmap_pars_fragment
12
- #include specularmap_pars_fragment
13
- #include logdepthbuf_pars_fragment
14
-
15
- void main() {
16
- vec3 outgoingLight = vec3( 0.0 ); // outgoing light does not have an alpha, the surface does
17
- vec4 diffuseColor = vec4( diffuse, opacity );
18
-
19
- #include logdepthbuf_fragment
20
- #include map_fragment
21
- #include color_fragment
22
- #include alphamap_fragment
23
- #include alphatest_fragment
24
- #include specularmap_fragment
25
-
26
- outgoingLight = diffuseColor.rgb; // simple shader
27
-
28
- #include lightmap_fragment // TODO: Light map on an otherwise unlit surface doesn't make sense.
29
- #include envmap_fragment
30
- #include shadowmap_fragment // TODO: Shadows on an otherwise unlit surface doesn't make sense.
31
-
32
- #include linear_to_gamma_fragment
33
-
34
- #include fog_fragment
35
-
36
- fragColor = vec4( outgoingLight, diffuseColor.a ); // TODO, this should be pre-multiplied to allow for bright highlights on very transparent objects
37
- }
@@ -1,3 +0,0 @@
1
- #include common
2
- #include fog
3
- #include shadow_map
@@ -1,33 +0,0 @@
1
- #include common
2
- #include map_pars_vertex
3
- #include lightmap_pars_vertex
4
- #include envmap_pars_vertex
5
- #include color_pars_vertex
6
- #include morphtarget_pars_vertex
7
- #include skinning_pars_vertex
8
- #include shadowmap_pars_vertex
9
- #include logdepthbuf_pars_vertex
10
-
11
- void main() {
12
- #include map_vertex
13
- #include lightmap_vertex
14
- #include color_vertex
15
- #include skinbase_vertex
16
-
17
- #ifdef USE_ENVMAP
18
-
19
- #include morphnormal_vertex
20
- #include skinnormal_vertex
21
- #include defaultnormal_vertex
22
-
23
- #endif
24
-
25
- #include morphtarget_vertex
26
- #include skinning_vertex
27
- #include default_vertex
28
- #include logdepthbuf_vertex
29
-
30
- #include worldpos_vertex
31
- #include envmap_vertex
32
- #include shadowmap_vertex
33
- }
@@ -1,12 +0,0 @@
1
- uniform samplerCube tCube;
2
- uniform float tFlip;
3
-
4
- in vec3 vWorldPosition;
5
-
6
- #include common
7
- #include logdepthbuf_pars_fragment
8
-
9
- void main() {
10
- fragColor = texture( tCube, vec3( tFlip * vWorldPosition.x, vWorldPosition.yz ) );
11
- #include logdepthbuf_fragment
12
- }
@@ -1,2 +0,0 @@
1
- uniform texture tCube;
2
- uniform float tFlip = -1.0;
@@ -1,12 +0,0 @@
1
- out vec3 vWorldPosition;
2
-
3
- #include common
4
-
5
- #include logdepthbuf_pars_vertex
6
-
7
- void main() {
8
- vWorldPosition = transformDirection( position, modelMatrix );
9
- gl_Position = projectionMatrix * modelViewMatrix * vec4( position, 1.0 );
10
-
11
- #include logdepthbuf_vertex
12
- }
@@ -1,26 +0,0 @@
1
- #include common
2
- #include logdepthbuf_pars_fragment
3
-
4
- vec4 pack_depth( const in float depth ) {
5
- const vec4 bit_shift = vec4( 256.0 * 256.0 * 256.0, 256.0 * 256.0, 256.0, 1.0 );
6
- const vec4 bit_mask = vec4( 0.0, 1.0 / 256.0, 1.0 / 256.0, 1.0 / 256.0 );
7
- vec4 res = mod( depth * bit_shift * vec4( 255 ), vec4( 256 ) ) / vec4( 255 );
8
- // vec4 res = fract( depth * bit_shift );
9
- res -= res.xxyz * bit_mask;
10
- return res;
11
- }
12
-
13
- void main() {
14
- #include logdepthbuf_fragment
15
-
16
- #ifdef USE_LOGDEPTHBUF_EXT
17
- fragColor = pack_depth( gl_FragDepthEXT );
18
- #else
19
- fragColor = pack_depth( gl_FragCoord.z );
20
- #endif
21
-
22
- // fragColor = pack_depth( gl_FragCoord.z / gl_FragCoord.w );
23
- // float z = ( ( gl_FragCoord.z / gl_FragCoord.w ) - 3.0 ) / ( 4000.0 - 3.0 );
24
- // fragColor = pack_depth( z );
25
- // fragColor = vec4( z, z, z, 1.0 );
26
- }
@@ -1,12 +0,0 @@
1
- #include common
2
- #include morphtarget_pars_vertex
3
- #include skinning_pars_vertex
4
- #include logdepthbuf_pars_vertex
5
-
6
- void main() {
7
- #include skinbase_vertex
8
- #include morphtarget_vertex
9
- #include skinning_vertex
10
- #include default_vertex
11
- #include logdepthbuf_vertex
12
- }
@@ -1,56 +0,0 @@
1
- uniform vec3 diffuse;
2
- uniform vec3 emissive;
3
- uniform float opacity;
4
-
5
- in vec3 vLightFront;
6
-
7
- #ifdef DOUBLE_SIDED
8
- in vec3 vLightBack;
9
- #endif
10
-
11
- #include common
12
- #include color_pars_fragment
13
- #include map_pars_fragment
14
- #include alphamap_pars_fragment
15
- #include lightmap_pars_fragment
16
- #include envmap_pars_fragment
17
- #include fog_pars_fragment
18
- #include shadowmap_pars_fragment
19
- #include specularmap_pars_fragment
20
- #include logdepthbuf_pars_fragment
21
-
22
- void main() {
23
- vec3 outgoingLight = vec3( 0.0 ); // outgoing light does not have an alpha, the surface does
24
- vec4 diffuseColor = vec4( diffuse, opacity );
25
-
26
- #include logdepthbuf_fragment
27
- #include map_fragment
28
- #include color_fragment
29
- #include alphamap_fragment
30
- #include alphatest_fragment
31
- #include specularmap_fragment
32
-
33
- #ifdef DOUBLE_SIDED
34
- float isFront = float( gl_FrontFacing );
35
- fragColor.xyz *= isFront * vLightFront + ( 1.0 - isFront ) * vLightBack;
36
-
37
- if ( gl_FrontFacing )
38
- outgoingLight += diffuseColor.rgb * vLightFront + emissive;
39
- else
40
- outgoingLight += diffuseColor.rgb * vLightBack + emissive;
41
- #else
42
- outgoingLight += diffuseColor.rgb * vLightFront + emissive;
43
- #endif
44
-
45
- #include lightmap_fragment
46
- #include envmap_fragment
47
- #include shadowmap_fragment
48
-
49
- #include linear_to_gamma_fragment
50
-
51
- #include fog_fragment
52
-
53
- // fragColor = vec4( outgoingLight, diffuseColor.a ); // TODO, this should be pre-multiplied to allow for bright highlights on very transparent objects
54
-
55
- fragColor = vec4(outgoingLight, diffuseColor.a);
56
- }
@@ -1,7 +0,0 @@
1
- #include common
2
- #include fog
3
- #include lights
4
- #include shadow_map
5
-
6
- uniform color emissive = color(0.0, 0.0, 0.0);
7
- uniform vec3 wrapRGB = vec3(1.0, 1.0, 1.0);
@@ -1,37 +0,0 @@
1
- #define LAMBERT
2
- out vec3 vLightFront;
3
- #ifdef DOUBLE_SIDED
4
- out vec3 vLightBack;
5
- #endif
6
-
7
- #include common
8
- #include map_pars_vertex
9
- #include lightmap_pars_vertex
10
- #include envmap_pars_vertex
11
- #include lights_lambert_pars_vertex
12
- #include color_pars_vertex
13
- #include morphtarget_pars_vertex
14
- #include skinning_pars_vertex
15
- #include shadowmap_pars_vertex
16
- #include logdepthbuf_pars_vertex
17
-
18
- void main() {
19
- #include map_vertex
20
- #include lightmap_vertex
21
- #include color_vertex
22
-
23
- #include morphnormal_vertex
24
- #include skinbase_vertex
25
- #include skinnormal_vertex
26
- #include defaultnormal_vertex
27
-
28
- #include morphtarget_vertex
29
- #include skinning_vertex
30
- #include default_vertex
31
- #include logdepthbuf_vertex
32
-
33
- #include worldpos_vertex
34
- #include envmap_vertex
35
- #include lights_lambert_vertex
36
- #include shadowmap_vertex
37
- }
@@ -1,27 +0,0 @@
1
- uniform vec3 psColor;
2
- uniform float opacity;
3
-
4
- #include common
5
- #include color_pars_fragment
6
- #include map_particle_pars_fragment
7
- #include fog_pars_fragment
8
- #include shadowmap_pars_fragment
9
- #include logdepthbuf_pars_fragment
10
-
11
- void main() {
12
- vec3 outgoingLight = vec3( 0.0 ); // outgoing light does not have an alpha, the surface does
13
- vec4 diffuseColor = vec4( psColor, opacity );
14
-
15
- #include logdepthbuf_fragment
16
- #include map_particle_fragment
17
- #include color_fragment
18
- #include alphatest_fragment
19
-
20
- outgoingLight = diffuseColor.rgb; // simple shader
21
-
22
- #include shadowmap_fragment
23
- #include fog_fragment
24
-
25
-
26
- fragColor = vec4( outgoingLight, diffuseColor.a ); // TODO, this should be pre-multiplied to allow for bright highlights on very transparent objects
27
- }