mittsu 0.4.1 → 0.5.0

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 (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,166 +0,0 @@
1
- module Mittsu
2
- module RBSLLoader
3
- UNIFORM_RGX = /uniform\s+(\S+)\s+(\w+)(|\s+\=\s+(.+));/
4
- COLOR_RGX = /color\(([^\)]*)\)/
5
-
6
- class << self
7
- def load_shader(shader, chunks)
8
- shader.lines.flat_map(&:chomp).map{ |line|
9
- if line =~ /(\s*)#include\s+(\w+)/
10
- indentation = $1
11
- chunk_name = $2.to_sym
12
-
13
- chunks[chunk_name].lines.map(&:chomp).map{ |l|
14
- "#{indentation}#{l}"
15
- }
16
- else
17
- line
18
- end
19
- }.join("\n") + "\n"
20
- end
21
-
22
- def extract_array_contents(str)
23
- /\[([^\]]+)\]/.match(str)[1]
24
- end
25
-
26
- def parse_int(str)
27
- str.to_i
28
- end
29
-
30
- (2..4).each do |n|
31
- define_method("parse_ivec#{n}") do |str|
32
- str =~ /ivec#{n}\(([^\)]+)\)/
33
- $1.split(',').map(&:strip).map(&:to_i).take(n)
34
- end
35
- end
36
-
37
- def parse_float(str)
38
- str.to_f
39
- end
40
-
41
- def parse_single_color(values)
42
- if values.length == 1
43
- values = values.map(&:to_i)
44
- else
45
- values = values.map(&:to_f)
46
- end
47
- Color.new(*values)
48
- end
49
-
50
- def parse_color(str)
51
- str =~ COLOR_RGX
52
- values = $1.split(',').map(&:strip)
53
- parse_single_color(values)
54
- end
55
-
56
- def parse_color_array(str)
57
- str = extract_array_contents(str)
58
- str.scan(COLOR_RGX).map{ |m|
59
- values = m.first.split(',').map(&:strip)
60
- parse_single_color(values)
61
- }
62
- end
63
-
64
- def parse_int_array(str)
65
- str = extract_array_contents(str)
66
- str.split(',').map(&:strip).map(&:to_i)
67
- end
68
-
69
- def parse_float_array(str)
70
- str = extract_array_contents(str)
71
- str.split(',').map(&:strip).map(&:to_f)
72
- end
73
-
74
- [Vector2, Vector3, Vector4].each do |vectorClass|
75
- define_method("parse_vec#{vectorClass::DIMENSIONS}") do |str|
76
- str =~ /vec#{vectorClass::DIMENSIONS}\(([^\)]+)\)/
77
- values = $1.split(',').map(&:strip).map(&:to_f).take(vectorClass::DIMENSIONS)
78
- vectorClass.new(*values)
79
- end
80
- end
81
-
82
- (2..4).each do |n|
83
- define_method("parse_ivec#{n}_array") do |str|
84
- str = extract_array_contents(str)
85
- str.scan(/ivec#{n}\(([^\)]+)\)/).map{ |m| m.first.split(',').map(&:strip).map(&:to_i).take(n) }
86
- end
87
- end
88
-
89
- [Vector2, Vector3, Vector4].each do |vectorClass|
90
- define_method("parse_vec#{vectorClass::DIMENSIONS}_array") do |str|
91
- str = extract_array_contents(str)
92
- str.scan(/vec#{vectorClass::DIMENSIONS}\(([^\)]+)\)/).map{ |m|
93
- values = m.first.split(',').map(&:strip).map(&:to_f).take(vectorClass::DIMENSIONS)
94
- vectorClass.new(*values)
95
- }
96
- end
97
- end
98
-
99
- [Matrix3, Matrix4].each do |matrixClass|
100
- define_method("parse_mat#{matrixClass::DIMENSIONS}") do |str|
101
- str =~ /mat#{matrixClass::DIMENSIONS}\(([^\)]+)\)/
102
- values = $1.split(',').map(&:strip).map(&:to_f).take(matrixClass::DIMENSIONS * matrixClass::DIMENSIONS)
103
- matrixClass.new().tap { |mat| mat.set(*values) }
104
- end
105
- end
106
-
107
- [Matrix3, Matrix4].each do |matrixClass|
108
- define_method("parse_mat#{matrixClass::DIMENSIONS}_array") do |str|
109
- str = extract_array_contents(str)
110
- str.scan(/mat#{matrixClass::DIMENSIONS}\(([^\)]+)\)/).map{ |m|
111
- values = m.first.split(',').map(&:strip).map(&:to_f).take(matrixClass::DIMENSIONS * matrixClass::DIMENSIONS)
112
- matrixClass.new().tap { |mat| mat.set(*values) }
113
- }
114
- end
115
- end
116
-
117
- def parse_texture(_str)
118
- nil
119
- end
120
-
121
- def parse_texture_array(_str)
122
- []
123
- end
124
-
125
- def parse_uniform(uniform)
126
- uniform =~ UNIFORM_RGX
127
- type_str = $1
128
- type = type_str.to_sym
129
- is_array = type_str.end_with?('[]')
130
- name = $2
131
- value_str = $4
132
- value = is_array ? [] : nil
133
- if value_str && !value_str.empty?
134
- value = send("parse_#{type.to_s.gsub(/\[\]/, '_array')}".to_s, value_str)
135
- end
136
- [name, Uniform.new(type, value)]
137
- end
138
-
139
- def load_uniforms(uniforms, uniforms_lib)
140
- uniform_strings = nil;
141
- in_uniform = false
142
-
143
- uniforms.lines.map(&:strip).each_with_object({}) { |line, hash|
144
- if in_uniform
145
- uniform_strings << line
146
- if line.end_with?(';')
147
- in_uniform = false
148
- name, value = parse_uniform(uniform_strings.join(' '))
149
- hash[name] = value
150
- end
151
- elsif line =~ /#include\s+(\w+)/
152
- uniforms_lib[$1.to_sym].map { |(k, v)| hash[k] = v.clone }
153
- elsif line.start_with?('uniform')
154
- if line.end_with?(';')
155
- name, value = parse_uniform(line)
156
- hash[name] = value
157
- else
158
- in_uniform = true
159
- uniform_strings = [line]
160
- end
161
- end
162
- }
163
- end
164
- end
165
- end
166
- end
@@ -1,5 +0,0 @@
1
- #ifdef USE_ALPHAMAP
2
-
3
- diffuseColor.a *= texture( alphaMap, vUv ).g;
4
-
5
- #endif
@@ -1,5 +0,0 @@
1
- #ifdef USE_ALPHAMAP
2
-
3
- uniform sampler2D alphaMap;
4
-
5
- #endif
@@ -1,5 +0,0 @@
1
- #ifdef ALPHATEST
2
-
3
- if ( diffuseColor.a < ALPHATEST ) discard;
4
-
5
- #endif
@@ -1,40 +0,0 @@
1
- #ifdef USE_BUMPMAP
2
-
3
- uniform sampler2D bumpMap;
4
- uniform float bumpScale;
5
-
6
- // Derivative maps - bump mapping unparametrized surfaces by Morten Mikkelsen
7
- // http://mmikkelsen3d.blogspot.sk/2011/07/derivative-maps.html
8
-
9
- // Evaluate the derivative of the height w.r.t. screen-space using forward differencing (listing 2)
10
-
11
- vec2 dHdxy_fwd() {
12
-
13
- vec2 dSTdx = dFdx( vUv );
14
- vec2 dSTdy = dFdy( vUv );
15
-
16
- float Hll = bumpScale * texture( bumpMap, vUv ).x;
17
- float dBx = bumpScale * texture( bumpMap, vUv + dSTdx ).x - Hll;
18
- float dBy = bumpScale * texture( bumpMap, vUv + dSTdy ).x - Hll;
19
-
20
- return vec2( dBx, dBy );
21
-
22
- }
23
-
24
- vec3 perturbNormalArb( vec3 surf_pos, vec3 surf_norm, vec2 dHdxy ) {
25
-
26
- vec3 vSigmaX = dFdx( surf_pos );
27
- vec3 vSigmaY = dFdy( surf_pos );
28
- vec3 vN = surf_norm; // normalized
29
-
30
- vec3 R1 = cross( vSigmaY, vN );
31
- vec3 R2 = cross( vN, vSigmaX );
32
-
33
- float fDet = dot( vSigmaX, R1 );
34
-
35
- vec3 vGrad = sign( fDet ) * ( dHdxy.x * R1 + dHdxy.y * R2 );
36
- return normalize( abs( fDet ) * surf_norm - vGrad );
37
-
38
- }
39
-
40
- #endif
@@ -1,5 +0,0 @@
1
- #ifdef USE_COLOR
2
-
3
- diffuseColor.rgb *= vColor;
4
-
5
- #endif
@@ -1,5 +0,0 @@
1
- #ifdef USE_COLOR
2
-
3
- in vec3 vColor;
4
-
5
- #endif
@@ -1,5 +0,0 @@
1
- #ifdef USE_COLOR
2
-
3
- out vec3 vColor;
4
-
5
- #endif
@@ -1,5 +0,0 @@
1
- #ifdef USE_COLOR
2
-
3
- vColor.xyz = inputToLinear( color.xyz );
4
-
5
- #endif
@@ -1,60 +0,0 @@
1
- #define PI 3.14159
2
- #define PI2 6.28318
3
- #define RECIPROCAL_PI2 0.15915494
4
- #define LOG2 1.442695
5
- #define EPSILON 1e-6
6
-
7
- float square( in float a ) { return a*a; }
8
- vec2 square( in vec2 a ) { return vec2( a.x*a.x, a.y*a.y ); }
9
- vec3 square( in vec3 a ) { return vec3( a.x*a.x, a.y*a.y, a.z*a.z ); }
10
- vec4 square( in vec4 a ) { return vec4( a.x*a.x, a.y*a.y, a.z*a.z, a.w*a.w ); }
11
- float saturate( in float a ) { return clamp( a, 0.0, 1.0 ); }
12
- vec2 saturate( in vec2 a ) { return clamp( a, 0.0, 1.0 ); }
13
- vec3 saturate( in vec3 a ) { return clamp( a, 0.0, 1.0 ); }
14
- vec4 saturate( in vec4 a ) { return clamp( a, 0.0, 1.0 ); }
15
- float average( in float a ) { return a; }
16
- float average( in vec2 a ) { return ( a.x + a.y) * 0.5; }
17
- float average( in vec3 a ) { return ( a.x + a.y + a.z) / 3.0; }
18
- float average( in vec4 a ) { return ( a.x + a.y + a.z + a.w) * 0.25; }
19
- float whiteCompliment( in float a ) { return saturate( 1.0 - a ); }
20
- vec2 whiteCompliment( in vec2 a ) { return saturate( vec2(1.0) - a ); }
21
- vec3 whiteCompliment( in vec3 a ) { return saturate( vec3(1.0) - a ); }
22
- vec4 whiteCompliment( in vec4 a ) { return saturate( vec4(1.0) - a ); }
23
- vec3 transformDirection( in vec3 normal, in mat4 matrix ) {
24
- return normalize( ( matrix * vec4( normal, 0.0 ) ).xyz );
25
- }
26
- // http://en.wikibooks.org/wiki/GLSL_Programming/Applying_Matrix_Transformations
27
- vec3 inverseTransformDirection( in vec3 normal, in mat4 matrix ) {
28
- return normalize( ( vec4( normal, 0.0 ) * matrix ).xyz );
29
- }
30
- vec3 projectOnPlane(in vec3 point, in vec3 pointOnPlane, in vec3 planeNormal) {
31
- float distance = dot( planeNormal, point-pointOnPlane );
32
- return point - distance * planeNormal;
33
- }
34
- float sideOfPlane( in vec3 point, in vec3 pointOnPlane, in vec3 planeNormal ) {
35
- return sign( dot( point - pointOnPlane, planeNormal ) );
36
- }
37
- vec3 linePlaneIntersect( in vec3 pointOnLine, in vec3 lineDirection, in vec3 pointOnPlane, in vec3 planeNormal ) {
38
- return pointOnLine + lineDirection * ( dot( planeNormal, pointOnPlane - pointOnLine ) / dot( planeNormal, lineDirection ) );
39
- }
40
- float calcLightAttenuation( float lightDistance, float cutoffDistance, float decayExponent ) {
41
- if ( decayExponent > 0.0 ) {
42
- return pow( saturate( 1.0 - lightDistance / cutoffDistance ), decayExponent );
43
- }
44
- return 1.0;
45
- }
46
-
47
- vec3 inputToLinear( in vec3 a ) {
48
- #ifdef GAMMA_INPUT
49
- return pow( a, vec3( float( GAMMA_FACTOR ) ) );
50
- #else
51
- return a;
52
- #endif
53
- }
54
- vec3 linearToOutput( in vec3 a ) {
55
- #ifdef GAMMA_OUTPUT
56
- return pow( a, vec3( 1.0 / float( GAMMA_FACTOR ) ) );
57
- #else
58
- return a;
59
- #endif
60
- }
@@ -1,15 +0,0 @@
1
- #ifdef USE_SKINNING
2
-
3
- vec4 mvPosition = modelViewMatrix * skinned;
4
-
5
- #elif defined( USE_MORPHTARGETS )
6
-
7
- vec4 mvPosition = modelViewMatrix * vec4( morphed, 1.0 );
8
-
9
- #else
10
-
11
- vec4 mvPosition = modelViewMatrix * vec4( position, 1.0 );
12
-
13
- #endif
14
-
15
- gl_Position = projectionMatrix * mvPosition;
@@ -1,21 +0,0 @@
1
- #ifdef USE_SKINNING
2
-
3
- vec3 objectNormal = skinnedNormal.xyz;
4
-
5
- #elif defined( USE_MORPHNORMALS )
6
-
7
- vec3 objectNormal = morphedNormal;
8
-
9
- #else
10
-
11
- vec3 objectNormal = normal;
12
-
13
- #endif
14
-
15
- #ifdef FLIP_SIDED
16
-
17
- objectNormal = -objectNormal;
18
-
19
- #endif
20
-
21
- vec3 transformedNormal = normalMatrix * objectNormal;
@@ -1,62 +0,0 @@
1
- #ifdef USE_ENVMAP
2
-
3
- #if defined( USE_BUMPMAP ) || defined( USE_NORMALMAP ) || defined( PHONG )
4
-
5
- vec3 cameraToVertex = normalize( vWorldPosition - cameraPosition );
6
-
7
- // Transforming Normal Vectors with the Inverse Transformation
8
- vec3 worldNormal = inverseTransformDirection( normal, viewMatrix );
9
-
10
- #ifdef ENVMAP_MODE_REFLECTION
11
-
12
- vec3 reflectVec = reflect( cameraToVertex, worldNormal );
13
-
14
- #else
15
-
16
- vec3 reflectVec = refract( cameraToVertex, worldNormal, refractionRatio );
17
-
18
- #endif
19
-
20
- #else
21
-
22
- vec3 reflectVec = vReflect;
23
-
24
- #endif
25
-
26
- #ifdef DOUBLE_SIDED
27
- float flipNormal = ( -1.0 + 2.0 * float( gl_FrontFacing ) );
28
- #else
29
- float flipNormal = 1.0;
30
- #endif
31
-
32
- #ifdef ENVMAP_TYPE_CUBE
33
- vec4 envColor = texture( envMap, flipNormal * vec3( flipEnvMap * reflectVec.x, reflectVec.yz ) );
34
-
35
- #elif defined( ENVMAP_TYPE_EQUIREC )
36
- vec2 sampleUV;
37
- sampleUV.y = saturate( flipNormal * reflectVec.y * 0.5 + 0.5 );
38
- sampleUV.x = atan( flipNormal * reflectVec.z, flipNormal * reflectVec.x ) * RECIPROCAL_PI2 + 0.5;
39
- vec4 envColor = texture( envMap, sampleUV );
40
-
41
- #elif defined( ENVMAP_TYPE_SPHERE )
42
- vec3 reflectView = flipNormal * normalize((viewMatrix * vec4( reflectVec, 0.0 )).xyz + vec3(0.0,0.0,1.0));
43
- vec4 envColor = texture( envMap, reflectView.xy * 0.5 + 0.5 );
44
- #endif
45
-
46
- envColor.xyz = inputToLinear( envColor.xyz );
47
-
48
- #ifdef ENVMAP_BLENDING_MULTIPLY
49
-
50
- outgoingLight = mix( outgoingLight, outgoingLight * envColor.xyz, specularStrength * reflectivity );
51
-
52
- #elif defined( ENVMAP_BLENDING_MIX )
53
-
54
- outgoingLight = mix( outgoingLight, envColor.xyz, specularStrength * reflectivity );
55
-
56
- #elif defined( ENVMAP_BLENDING_ADD )
57
-
58
- outgoingLight += envColor.xyz * specularStrength * reflectivity;
59
-
60
- #endif
61
-
62
- #endif
@@ -1,21 +0,0 @@
1
- #ifdef USE_ENVMAP
2
-
3
- uniform float reflectivity;
4
- #ifdef ENVMAP_TYPE_CUBE
5
- uniform samplerCube envMap;
6
- #else
7
- uniform sampler2D envMap;
8
- #endif
9
- uniform float flipEnvMap;
10
-
11
- #if defined( USE_BUMPMAP ) || defined( USE_NORMALMAP ) || defined( PHONG )
12
-
13
- uniform float refractionRatio;
14
-
15
- #else
16
-
17
- in vec3 vReflect;
18
-
19
- #endif
20
-
21
- #endif
@@ -1,7 +0,0 @@
1
- #if defined( USE_ENVMAP ) && ! defined( USE_BUMPMAP ) && ! defined( USE_NORMALMAP ) && ! defined( PHONG )
2
-
3
- out vec3 vReflect;
4
-
5
- uniform float refractionRatio;
6
-
7
- #endif
@@ -1,17 +0,0 @@
1
- #if defined( USE_ENVMAP ) && ! defined( USE_BUMPMAP ) && ! defined( USE_NORMALMAP ) && ! defined( PHONG )
2
-
3
- vec3 worldNormal = transformDirection( objectNormal, modelMatrix );
4
-
5
- vec3 cameraToVertex = normalize( worldPosition.xyz - cameraPosition );
6
-
7
- #ifdef ENVMAP_MODE_REFLECTION
8
-
9
- vReflect = reflect( cameraToVertex, worldNormal );
10
-
11
- #else
12
-
13
- vReflect = refract( cameraToVertex, worldNormal, refractionRatio );
14
-
15
- #endif
16
-
17
- #endif
@@ -1,26 +0,0 @@
1
- #ifdef USE_FOG
2
-
3
- #ifdef USE_LOGDEPTHBUF_EXT
4
-
5
- float depth = gl_FragDepthEXT / gl_FragCoord.w;
6
-
7
- #else
8
-
9
- float depth = gl_FragCoord.z / gl_FragCoord.w;
10
-
11
- #endif
12
-
13
- #ifdef FOG_EXP2
14
-
15
- float fogFactor = exp2( - square( fogDensity ) * square( depth ) * LOG2 );
16
- fogFactor = whiteCompliment( fogFactor );
17
-
18
- #else
19
-
20
- float fogFactor = smoothstep( fogNear, fogFar, depth );
21
-
22
- #endif
23
-
24
- outgoingLight = mix( outgoingLight, fogColor, fogFactor );
25
-
26
- #endif
@@ -1,15 +0,0 @@
1
- #ifdef USE_FOG
2
-
3
- uniform vec3 fogColor;
4
-
5
- #ifdef FOG_EXP2
6
-
7
- uniform float fogDensity;
8
-
9
- #else
10
-
11
- uniform float fogNear;
12
- uniform float fogFar;
13
- #endif
14
-
15
- #endif
@@ -1,5 +0,0 @@
1
- #ifdef USE_LIGHTMAP
2
-
3
- outgoingLight *= diffuseColor.xyz * texture( lightMap, vUv2 ).xyz;
4
-
5
- #endif
@@ -1,6 +0,0 @@
1
- #ifdef USE_LIGHTMAP
2
-
3
- in vec2 vUv2;
4
- uniform sampler2D lightMap;
5
-
6
- #endif
@@ -1,5 +0,0 @@
1
- #ifdef USE_LIGHTMAP
2
-
3
- out vec2 vUv2;
4
-
5
- #endif
@@ -1,5 +0,0 @@
1
- #ifdef USE_LIGHTMAP
2
-
3
- vUv2 = uv2;
4
-
5
- #endif
@@ -1,43 +0,0 @@
1
- uniform vec3 ambientLightColor;
2
-
3
- #if MAX_DIR_LIGHTS > 0
4
-
5
- uniform vec3 directionalLightColor[ MAX_DIR_LIGHTS ];
6
- uniform vec3 directionalLightDirection[ MAX_DIR_LIGHTS ];
7
-
8
- #endif
9
-
10
- #if MAX_HEMI_LIGHTS > 0
11
-
12
- uniform vec3 hemisphereLightSkyColor[ MAX_HEMI_LIGHTS ];
13
- uniform vec3 hemisphereLightGroundColor[ MAX_HEMI_LIGHTS ];
14
- uniform vec3 hemisphereLightDirection[ MAX_HEMI_LIGHTS ];
15
-
16
- #endif
17
-
18
- #if MAX_POINT_LIGHTS > 0
19
-
20
- uniform vec3 pointLightColor[ MAX_POINT_LIGHTS ];
21
- uniform vec3 pointLightPosition[ MAX_POINT_LIGHTS ];
22
- uniform float pointLightDistance[ MAX_POINT_LIGHTS ];
23
- uniform float pointLightDecay[ MAX_POINT_LIGHTS ];
24
-
25
- #endif
26
-
27
- #if MAX_SPOT_LIGHTS > 0
28
-
29
- uniform vec3 spotLightColor[ MAX_SPOT_LIGHTS ];
30
- uniform vec3 spotLightPosition[ MAX_SPOT_LIGHTS ];
31
- uniform vec3 spotLightDirection[ MAX_SPOT_LIGHTS ];
32
- uniform float spotLightDistance[ MAX_SPOT_LIGHTS ];
33
- uniform float spotLightAngleCos[ MAX_SPOT_LIGHTS ];
34
- uniform float spotLightExponent[ MAX_SPOT_LIGHTS ];
35
- uniform float spotLightDecay[ MAX_SPOT_LIGHTS ];
36
-
37
- #endif
38
-
39
- #ifdef WRAP_AROUND
40
-
41
- uniform vec3 wrapRGB;
42
-
43
- #endif