Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #version 330
- //uv coordinates from the texture
- in vec2 UV;
- in vec3 normal_direction;
- uniform sampler2D myTextureSampler;
- uniform float dim_factor = 1.0f;
- uniform bool color_override = false;
- uniform vec4 override_color = vec4(1.0f, 1.0f, 1.0f, 1.0f);
- uniform bool text = false;
- uniform vec4 text_color(1.0f, 1.0f, 1.0f, 1.0f);
- uniform vec4 transparency_color(1.0f, 1.0f, 1.0f, 1.0f);
- //lighting dependencies
- uniform mat4 model_matrix;
- uniform mat4 view_matrix;
- uniform bool use_lighting = false;
- vec4 light_direction(-2.0f, -1.0f, -6.0f, 1.0f);
- out vec4 output_color;
- void main()
- {
- vec3 texture_color = texture2D( myTextureSampler, UV).rgb;
- if (text)
- {
- //check to see if color pulled from texture map matches that of the the green screen color
- vec3 transparency_delta = abs(transparency_color.rgb - texture_color);
- if (transparency_delta.x + transparency_delta.y + transparency_delta.y < .001)
- output_color = vec4(0.0f, 0.0f, 0.0f, 0.0f);
- else
- {
- float anti_alias_value = 1.0f - texture_color.y;
- output_color = vec4(text_color.x, text_color.y, text_color.z, anti_alias_value);
- }
- return;
- }
- if (!color_override)
- {
- if(use_lighting)
- {
- vec4 light_color(1.0f, 1.0f, 1.0f, 1.0f);
- vec3 worldspace_normal = vec3(model_matrix * vec4(normal_direction, 1.0f));
- worldspace_normal = glm::normalize(worldspace_normal);
- float cosTheta = clamp( dot( worldspace_normal, light_direction ), 0.0f, 1.0f );
- vec4 modified_color = light_color * cosTheta;
- output_color = modified_color;
- //vec4 diffuse_color = vec4(texture_color, 1.0f);
- //vec3 undimmed_color = texture_color;
- //output_color = vec4(undimmed_color.x * dim_factor, undimmed_color.y * dim_factor, undimmed_color.z * dim_factor, 1.0f);
- }
- else
- {
- vec3 undimmed_color = texture_color;
- output_color = vec4(undimmed_color.x * dim_factor, undimmed_color.y * dim_factor, undimmed_color.z * dim_factor, 1.0f);
- }
- }
- else output_color = override_color;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement