mittsu 0.1.1 → 0.1.2
Sign up to get free protection for your applications and to get access to all the features.
- 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;
|