mittsu 0.1.1 → 0.1.2
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/Gemfile +2 -1
- data/README.md +1 -1
- data/lib/mittsu/cameras/orthographic_camera.rb +13 -0
- data/lib/mittsu/cameras/perspective_camera.rb +11 -0
- data/lib/mittsu/core/geometry.rb +12 -9
- data/lib/mittsu/core/object_3d.rb +33 -66
- data/lib/mittsu/lights/ambient_light.rb +8 -0
- data/lib/mittsu/lights/directional_light.rb +9 -0
- data/lib/mittsu/lights/hemisphere_light.rb +9 -0
- data/lib/mittsu/lights/point_light.rb +11 -0
- data/lib/mittsu/lights/spot_light.rb +13 -0
- data/lib/mittsu/loaders.rb +1 -0
- data/lib/mittsu/loaders/mtl_loader.rb +5 -12
- data/lib/mittsu/loaders/obj_loader.rb +212 -0
- data/lib/mittsu/loaders/obj_mtl_loader.rb +11 -207
- data/lib/mittsu/materials/material.rb +5 -2
- data/lib/mittsu/materials/mesh_basic_material.rb +0 -9
- data/lib/mittsu/math/color.rb +44 -104
- data/lib/mittsu/math/matrix3.rb +8 -1
- data/lib/mittsu/math/matrix4.rb +6 -0
- data/lib/mittsu/math/vector.rb +251 -0
- data/lib/mittsu/math/vector2.rb +14 -213
- data/lib/mittsu/math/vector3.rb +61 -351
- data/lib/mittsu/math/vector4.rb +45 -295
- data/lib/mittsu/objects/line.rb +12 -2
- data/lib/mittsu/objects/mesh.rb +18 -9
- data/lib/mittsu/renderers/glfw_window.rb +15 -13
- data/lib/mittsu/renderers/opengl/core/opengl_geometry.rb +253 -0
- data/lib/mittsu/renderers/opengl/core/opengl_object_3d.rb +131 -0
- data/lib/mittsu/renderers/opengl/lights/opengl_ambient_light.rb +26 -0
- data/lib/mittsu/renderers/opengl/lights/opengl_directional_light.rb +35 -0
- data/lib/mittsu/renderers/opengl/lights/opengl_hemisphere_light.rb +42 -0
- data/lib/mittsu/renderers/opengl/lights/opengl_light.rb +52 -0
- data/lib/mittsu/renderers/opengl/lights/opengl_point_light.rb +36 -0
- data/lib/mittsu/renderers/opengl/lights/opengl_spot_light.rb +47 -0
- data/lib/mittsu/renderers/opengl/materials/opengl_line_basic_material.rb +16 -0
- data/lib/mittsu/renderers/opengl/materials/opengl_material.rb +275 -0
- data/lib/mittsu/renderers/opengl/materials/opengl_mesh_basic_material.rb +69 -0
- data/lib/mittsu/renderers/opengl/materials/opengl_mesh_lambert_material.rb +29 -0
- data/lib/mittsu/renderers/opengl/materials/opengl_mesh_phong_material.rb +40 -0
- data/lib/mittsu/renderers/opengl/materials/opengl_shader_material.rb +11 -0
- data/lib/mittsu/renderers/opengl/objects/opengl_group.rb +8 -0
- data/lib/mittsu/renderers/opengl/objects/opengl_line.rb +54 -0
- data/lib/mittsu/renderers/opengl/objects/opengl_mesh.rb +77 -0
- data/lib/mittsu/renderers/opengl/opengl_buffer.rb +5 -0
- data/lib/mittsu/renderers/opengl/opengl_debug.rb +49 -7
- data/lib/mittsu/renderers/opengl/opengl_default_target.rb +54 -0
- data/lib/mittsu/renderers/opengl/opengl_geometry_group.rb +763 -0
- data/lib/mittsu/renderers/opengl/opengl_geometry_like.rb +130 -0
- data/lib/mittsu/renderers/opengl/opengl_helper.rb +161 -0
- data/lib/mittsu/renderers/opengl/opengl_implementations.rb +61 -0
- data/lib/mittsu/renderers/opengl/opengl_light_renderer.rb +43 -0
- data/lib/mittsu/renderers/opengl/opengl_mittsu_params.rb +53 -0
- data/lib/mittsu/renderers/opengl/opengl_program.rb +147 -296
- data/lib/mittsu/renderers/opengl/opengl_state.rb +3 -5
- data/lib/mittsu/renderers/opengl/plugins/shadow_map_plugin.rb +12 -10
- data/lib/mittsu/renderers/opengl/scenes/opengl_scene.rb +8 -0
- data/lib/mittsu/renderers/opengl/textures/opengl_compressed_texture.rb +21 -0
- data/lib/mittsu/renderers/opengl/textures/opengl_cube_texture.rb +75 -0
- data/lib/mittsu/renderers/opengl/textures/opengl_data_texture.rb +23 -0
- data/lib/mittsu/renderers/opengl/textures/opengl_texture.rb +111 -0
- data/lib/mittsu/renderers/opengl_render_target.rb +117 -2
- data/lib/mittsu/renderers/opengl_renderer.rb +653 -2978
- data/lib/mittsu/renderers/shaders/rbsl_loader.rb +166 -0
- data/lib/mittsu/renderers/shaders/shader_chunk.rb +6 -9
- data/lib/mittsu/renderers/shaders/shader_chunk/shadowmap_fragment.glsl +36 -37
- data/lib/mittsu/renderers/shaders/shader_lib.rb +26 -403
- data/lib/mittsu/renderers/shaders/shader_lib/basic/basic_fragment.rbsl +37 -0
- data/lib/mittsu/renderers/shaders/shader_lib/basic/basic_uniforms.rbslu +3 -0
- data/lib/mittsu/renderers/shaders/shader_lib/basic/basic_vertex.rbsl +33 -0
- data/lib/mittsu/renderers/shaders/shader_lib/cube/cube_fragment.rbsl +12 -0
- data/lib/mittsu/renderers/shaders/shader_lib/cube/cube_uniforms.rbslu +2 -0
- data/lib/mittsu/renderers/shaders/shader_lib/cube/cube_vertex.rbsl +12 -0
- data/lib/mittsu/renderers/shaders/shader_lib/depth_rgba/depth_rgba_fragment.rbsl +26 -0
- data/lib/mittsu/renderers/shaders/shader_lib/depth_rgba/depth_rgba_uniforms.rbslu +0 -0
- data/lib/mittsu/renderers/shaders/shader_lib/depth_rgba/depth_rgba_vertex.rbsl +12 -0
- data/lib/mittsu/renderers/shaders/shader_lib/lambert/lambert_fragment.rbsl +56 -0
- data/lib/mittsu/renderers/shaders/shader_lib/lambert/lambert_uniforms.rbslu +7 -0
- data/lib/mittsu/renderers/shaders/shader_lib/lambert/lambert_vertex.rbsl +37 -0
- data/lib/mittsu/renderers/shaders/shader_lib/phong/phong_fragment.rbsl +45 -0
- data/lib/mittsu/renderers/shaders/shader_lib/phong/phong_uniforms.rbslu +11 -0
- data/lib/mittsu/renderers/shaders/shader_lib/phong/phong_vertex.rbsl +43 -0
- data/lib/mittsu/renderers/shaders/shader_templates/fragment.glsl.erb +105 -0
- data/lib/mittsu/renderers/shaders/shader_templates/vertex.glsl.erb +143 -0
- data/lib/mittsu/renderers/shaders/uniforms_lib.rb +54 -55
- data/lib/mittsu/textures/texture.rb +5 -2
- data/lib/mittsu/version.rb +1 -1
- data/run_all_examples.sh +7 -0
- metadata +77 -28
- data/.ruby-version +0 -1
- data/lib/mittsu/core/hash_object.rb +0 -19
@@ -0,0 +1,37 @@
|
|
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
|
+
}
|
@@ -0,0 +1,33 @@
|
|
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
|
+
}
|
@@ -0,0 +1,12 @@
|
|
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
|
+
}
|
@@ -0,0 +1,12 @@
|
|
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
|
+
}
|
@@ -0,0 +1,26 @@
|
|
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
|
+
}
|
File without changes
|
@@ -0,0 +1,12 @@
|
|
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
|
+
}
|
@@ -0,0 +1,56 @@
|
|
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
|
+
}
|
@@ -0,0 +1,37 @@
|
|
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
|
+
}
|
@@ -0,0 +1,45 @@
|
|
1
|
+
#define PHONG
|
2
|
+
|
3
|
+
uniform vec3 diffuse;
|
4
|
+
uniform vec3 emissive;
|
5
|
+
uniform vec3 specular;
|
6
|
+
uniform float shininess;
|
7
|
+
uniform float opacity;
|
8
|
+
|
9
|
+
#include common
|
10
|
+
#include color_pars_fragment
|
11
|
+
#include map_pars_fragment
|
12
|
+
#include alphamap_pars_fragment
|
13
|
+
#include lightmap_pars_fragment
|
14
|
+
#include envmap_pars_fragment
|
15
|
+
#include fog_pars_fragment
|
16
|
+
#include lights_phong_pars_fragment
|
17
|
+
#include shadowmap_pars_fragment
|
18
|
+
#include bumpmap_pars_fragment
|
19
|
+
#include normalmap_pars_fragment
|
20
|
+
#include specularmap_pars_fragment
|
21
|
+
#include logdepthbuf_pars_fragment
|
22
|
+
|
23
|
+
void main() {
|
24
|
+
vec3 outgoingLight = vec3( 0.0 ); // outgoing light does not have an alpha, the surface does
|
25
|
+
vec4 diffuseColor = vec4( diffuse, opacity );
|
26
|
+
|
27
|
+
#include logdepthbuf_fragment
|
28
|
+
#include map_fragment
|
29
|
+
#include color_fragment
|
30
|
+
#include alphamap_fragment
|
31
|
+
#include alphatest_fragment
|
32
|
+
#include specularmap_fragment
|
33
|
+
|
34
|
+
#include lights_phong_fragment
|
35
|
+
|
36
|
+
#include lightmap_fragment
|
37
|
+
#include envmap_fragment
|
38
|
+
#include shadowmap_fragment
|
39
|
+
|
40
|
+
#include linear_to_gamma_fragment
|
41
|
+
|
42
|
+
#include fog_fragment
|
43
|
+
|
44
|
+
fragColor = vec4( outgoingLight, diffuseColor.a ); // TODO, this should be pre-multiplied to allow for bright highlights on very transparent objects
|
45
|
+
}
|
@@ -0,0 +1,11 @@
|
|
1
|
+
#include common
|
2
|
+
#include bump
|
3
|
+
#include normal_map
|
4
|
+
#include fog
|
5
|
+
#include lights
|
6
|
+
#include shadow_map
|
7
|
+
|
8
|
+
uniform color emissive = color(0.0, 0.0, 0.0);
|
9
|
+
uniform color specular = color(0.667, 0.667, 0.667);
|
10
|
+
uniform float shininess = 30.0;
|
11
|
+
uniform vec3 wrapRGB = vec3(1.0, 1.0, 1.0);
|
@@ -0,0 +1,43 @@
|
|
1
|
+
#define PHONG
|
2
|
+
out vec3 vViewPosition;
|
3
|
+
#ifndef FLAT_SHADED
|
4
|
+
out vec3 vNormal;
|
5
|
+
#endif
|
6
|
+
|
7
|
+
#include common
|
8
|
+
#include map_pars_vertex
|
9
|
+
#include lightmap_pars_vertex
|
10
|
+
#include envmap_pars_vertex
|
11
|
+
#include lights_phong_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
|
+
#ifndef FLAT_SHADED // Normal computed with derivatives when FLAT_SHADED
|
29
|
+
vNormal = normalize( transformedNormal );
|
30
|
+
#endif
|
31
|
+
|
32
|
+
#include morphtarget_vertex
|
33
|
+
#include skinning_vertex
|
34
|
+
#include default_vertex
|
35
|
+
#include logdepthbuf_vertex
|
36
|
+
|
37
|
+
vViewPosition = -mvPosition.xyz;
|
38
|
+
|
39
|
+
#include worldpos_vertex
|
40
|
+
#include envmap_vertex
|
41
|
+
#include lights_phong_vertex
|
42
|
+
#include shadowmap_vertex
|
43
|
+
}
|
@@ -0,0 +1,105 @@
|
|
1
|
+
#version 330
|
2
|
+
|
3
|
+
// (parameters[:bump_map] || parameters[:normal_map] || parameters[:flat_shading]) ? '#extension GL_OES_standard_derivatives : enable' : '', # TODO: does extension exist in OpenGL?
|
4
|
+
|
5
|
+
<%= custom_defines %>
|
6
|
+
|
7
|
+
#define MAX_DIR_LIGHTS <%= parameters[:max_dir_lights] %>
|
8
|
+
#define MAX_POINT_LIGHTS <%= parameters[:max_point_lights] %>
|
9
|
+
#define MAX_SPOT_LIGHTS <%= parameters[:max_spot_lights] %>
|
10
|
+
#define MAX_HEMI_LIGHTS <%= parameters[:max_hemi_lights] %>
|
11
|
+
|
12
|
+
#define MAX_SHADOWS <%= parameters[:max_shadows] %>
|
13
|
+
|
14
|
+
<% if parameters[:alpha_test] %>
|
15
|
+
#define ALPHATEST <%= parameters[:alpha_test].to_f %>
|
16
|
+
<% end %>
|
17
|
+
|
18
|
+
<% if @renderer.gamma_input %>
|
19
|
+
#define GAMMA_INPUT
|
20
|
+
<% end %>
|
21
|
+
<% if @renderer.gamma_output %>
|
22
|
+
#define GAMMA_OUTPUT
|
23
|
+
<% end %>
|
24
|
+
#define GAMMA_FACTOR <%= gamma_factor_define %>
|
25
|
+
|
26
|
+
<% if parameters[:use_fog] && parameters[:fog] %>
|
27
|
+
#define USE_FOG
|
28
|
+
<% end %>
|
29
|
+
<% if parameters[:use_fog] && parameters[:fog_exp] %>
|
30
|
+
#define FOG_EXP2
|
31
|
+
<% end %>
|
32
|
+
|
33
|
+
<% if parameters[:map] %>
|
34
|
+
#define USE_MAP
|
35
|
+
<% end %>
|
36
|
+
<% if parameters[:env_map] %>
|
37
|
+
#define USE_ENVMAP
|
38
|
+
<% end %>
|
39
|
+
<% if parameters[:env_map] %>
|
40
|
+
#define <%= env_map_type_define %>
|
41
|
+
<% end %>
|
42
|
+
<% if parameters[:env_map] %>
|
43
|
+
#define <%= env_map_mode_define %>
|
44
|
+
<% end %>
|
45
|
+
<% if parameters[:env_map] %>
|
46
|
+
#define <%= env_map_blending_define %>
|
47
|
+
<% end %>
|
48
|
+
<% if parameters[:light_map] %>
|
49
|
+
#define USE_LIGHTMAP
|
50
|
+
<% end %>
|
51
|
+
<% if parameters[:bump_map] %>
|
52
|
+
#define USE_BUMPMAP
|
53
|
+
<% end %>
|
54
|
+
<% if parameters[:normal_map] %>
|
55
|
+
#define USE_NORMALMAP
|
56
|
+
<% end %>
|
57
|
+
<% if parameters[:specular_map] %>
|
58
|
+
#define USE_SPECULARMAP
|
59
|
+
<% end %>
|
60
|
+
<% if parameters[:alpha_map] %>
|
61
|
+
#define USE_ALPHAMAP
|
62
|
+
<% end %>
|
63
|
+
<% if parameters[:vertex_colors] %>
|
64
|
+
#define USE_COLOR
|
65
|
+
<% end %>
|
66
|
+
|
67
|
+
<% if parameters[:flat_shading] %>
|
68
|
+
#define FLAT_SHADED
|
69
|
+
<% end %>
|
70
|
+
|
71
|
+
<% if parameters[:metal] %>
|
72
|
+
#define METAL
|
73
|
+
<% end %>
|
74
|
+
<% if parameters[:wrap_around] %>
|
75
|
+
#define WRAP_AROUND
|
76
|
+
<% end %>
|
77
|
+
<% if parameters[:double_sided] %>
|
78
|
+
#define DOUBLE_SIDED
|
79
|
+
<% end %>
|
80
|
+
<% if parameters[:flip_sided] %>
|
81
|
+
#define FLIP_SIDED
|
82
|
+
<% end %>
|
83
|
+
|
84
|
+
<% if parameters[:shadow_map_enabled] %>
|
85
|
+
#define USE_SHADOWMAP
|
86
|
+
<% end %>
|
87
|
+
<% if parameters[:shadow_map_enabled] %>
|
88
|
+
#define <%= shadow_map_type_define %>
|
89
|
+
<% end %>
|
90
|
+
<% if parameters[:shadow_map_debug] %>
|
91
|
+
#define SHADOWMAP_DEBUG
|
92
|
+
<% end %>
|
93
|
+
<% if parameters[:'shadow_map_cascade'] %>
|
94
|
+
#define SHADOWMAP_CASCADE
|
95
|
+
<% end %>
|
96
|
+
|
97
|
+
<% if parameters[:logarithmic_depth_buffer] %>
|
98
|
+
#define USE_LOGDEPTHBUF
|
99
|
+
<% end %>
|
100
|
+
// @renderer._glExtensionFragDepth ? '#define USE_LOGDEPTHBUF_EXT' : '',
|
101
|
+
|
102
|
+
uniform mat4 viewMatrix;
|
103
|
+
uniform vec3 cameraPosition;
|
104
|
+
|
105
|
+
layout(location = 0) out vec4 fragColor;
|