lib/mittsu/opengl/shader/templates/fragment.glsl.erb
#version 330
// (parameters[:bump_map] || parameters[:normal_map] || parameters[:flat_shading]) ? '#extension GL_OES_standard_derivatives : enable' : '', # TODO: does extension exist in OpenGL?
<%= custom_defines %>
#define MAX_DIR_LIGHTS <%= parameters[:max_dir_lights] %>
#define MAX_POINT_LIGHTS <%= parameters[:max_point_lights] %>
#define MAX_SPOT_LIGHTS <%= parameters[:max_spot_lights] %>
#define MAX_HEMI_LIGHTS <%= parameters[:max_hemi_lights] %>
#define MAX_SHADOWS <%= parameters[:max_shadows] %>
<% if parameters[:alpha_test] %>
#define ALPHATEST <%= parameters[:alpha_test].to_f %>
<% end %>
<% if @renderer.gamma_input %>
#define GAMMA_INPUT
<% end %>
<% if @renderer.gamma_output %>
#define GAMMA_OUTPUT
<% end %>
#define GAMMA_FACTOR <%= gamma_factor_define %>
<% if parameters[:use_fog] && parameters[:fog] %>
#define USE_FOG
<% end %>
<% if parameters[:use_fog] && parameters[:fog_exp] %>
#define FOG_EXP2
<% end %>
<% if parameters[:map] %>
#define USE_MAP
<% end %>
<% if parameters[:env_map] %>
#define USE_ENVMAP
<% end %>
<% if parameters[:env_map] %>
#define <%= env_map_type_define %>
<% end %>
<% if parameters[:env_map] %>
#define <%= env_map_mode_define %>
<% end %>
<% if parameters[:env_map] %>
#define <%= env_map_blending_define %>
<% end %>
<% if parameters[:light_map] %>
#define USE_LIGHTMAP
<% end %>
<% if parameters[:bump_map] %>
#define USE_BUMPMAP
<% end %>
<% if parameters[:normal_map] %>
#define USE_NORMALMAP
<% end %>
<% if parameters[:specular_map] %>
#define USE_SPECULARMAP
<% end %>
<% if parameters[:alpha_map] %>
#define USE_ALPHAMAP
<% end %>
<% if parameters[:vertex_colors] %>
#define USE_COLOR
<% end %>
<% if parameters[:flat_shading] %>
#define FLAT_SHADED
<% end %>
<% if parameters[:metal] %>
#define METAL
<% end %>
<% if parameters[:wrap_around] %>
#define WRAP_AROUND
<% end %>
<% if parameters[:double_sided] %>
#define DOUBLE_SIDED
<% end %>
<% if parameters[:flip_sided] %>
#define FLIP_SIDED
<% end %>
<% if parameters[:shadow_map_enabled] %>
#define USE_SHADOWMAP
<% end %>
<% if parameters[:shadow_map_enabled] %>
#define <%= shadow_map_type_define %>
<% end %>
<% if parameters[:shadow_map_debug] %>
#define SHADOWMAP_DEBUG
<% end %>
<% if parameters[:'shadow_map_cascade'] %>
#define SHADOWMAP_CASCADE
<% end %>
<% if parameters[:logarithmic_depth_buffer] %>
#define USE_LOGDEPTHBUF
<% end %>
// @renderer._GL.ExtensionFragDepth ? '#define USE_LOGDEPTHBUF_EXT' : '',
uniform mat4 viewMatrix;
uniform vec3 cameraPosition;
layout(location = 0) out vec4 fragColor;