Advertisement
Guest User

Untitled

a guest
May 29th, 2015
630
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. #version 330
  2.  
  3. //uv coordinates from the texture
  4. in vec2 UV;
  5. in vec3 normal_direction;
  6.  
  7. uniform sampler2D myTextureSampler;
  8. uniform float dim_factor = 1.0f;
  9.  
  10. uniform bool color_override = false;
  11. uniform vec4 override_color = vec4(1.0f, 1.0f, 1.0f, 1.0f);
  12.  
  13. uniform bool text = false;
  14. uniform vec4 text_color(1.0f, 1.0f, 1.0f, 1.0f);
  15. uniform vec4 transparency_color(1.0f, 1.0f, 1.0f, 1.0f);
  16.  
  17. //lighting dependencies
  18. uniform mat4 model_matrix;
  19. uniform mat4 view_matrix;
  20. uniform bool use_lighting = false;
  21. vec4 light_direction(-2.0f, -1.0f, -6.0f, 1.0f);
  22.  
  23. out vec4 output_color;
  24.  
  25. void main()
  26. {
  27.     vec3 texture_color = texture2D( myTextureSampler, UV).rgb;
  28.  
  29.     if (text)
  30.     {      
  31.         //check to see if color pulled from texture map matches that of the the green screen color
  32.         vec3 transparency_delta = abs(transparency_color.rgb - texture_color);
  33.         if (transparency_delta.x + transparency_delta.y + transparency_delta.y < .001)
  34.             output_color = vec4(0.0f, 0.0f, 0.0f, 0.0f);
  35.  
  36.         else
  37.         {
  38.             float anti_alias_value = 1.0f - texture_color.y;
  39.             output_color = vec4(text_color.x, text_color.y, text_color.z, anti_alias_value);
  40.         }
  41.         return;
  42.     }
  43.  
  44.     if (!color_override)
  45.     {
  46.         if(use_lighting)
  47.         {
  48.             vec4 light_color(1.0f, 1.0f, 1.0f, 1.0f);
  49.             vec3 worldspace_normal = vec3(model_matrix * vec4(normal_direction, 1.0f));
  50.             worldspace_normal = glm::normalize(worldspace_normal);
  51.  
  52.             float cosTheta = clamp( dot( worldspace_normal, light_direction ), 0.0f, 1.0f );
  53.             vec4 modified_color = light_color * cosTheta;
  54.  
  55.             output_color = modified_color;
  56.  
  57.             //vec4 diffuse_color = vec4(texture_color, 1.0f);
  58.  
  59.             //vec3 undimmed_color = texture_color;
  60.             //output_color = vec4(undimmed_color.x * dim_factor, undimmed_color.y * dim_factor, undimmed_color.z * dim_factor, 1.0f);
  61.         }
  62.  
  63.         else
  64.         {
  65.             vec3 undimmed_color = texture_color;
  66.             output_color = vec4(undimmed_color.x * dim_factor, undimmed_color.y * dim_factor, undimmed_color.z * dim_factor, 1.0f);
  67.         }
  68.     }
  69.  
  70.     else output_color = override_color;
  71. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement