Skip to content
Snippets Groups Projects
Select Git revision
  • 5191a46f72cdad6c8f4de7c34c613c5de151a25c
  • master default protected
  • developement_1 protected
  • Version_1.2.4
  • Version_1.2.3
  • Version_1.2.2
  • Version_1.2.1
  • Version_1.2.0
  • Version_1.0.1
  • Version_1.0.0
  • Version_0.1.0
  • Version_0.0.6
  • Version_0.0.5
  • Version_0.0.4
  • Version_0.0.3
  • Version_0.0.2
  • Version_0.0.1
17 results

fshader.glsl

Blame
  • Code owners
    Assign users and groups as approvers for specific file changes. Learn more.
    fshader.glsl 840 B
    #ifdef GL_ES
    // Set default precision to medium
    precision mediump int;
    precision mediump float;
    #endif
    
    uniform mat3 n_matrix;
    uniform sampler2D texture;
    
    uniform struct Light {
        vec3 position;
        vec3 intensities;
    } light;
    
    uniform bool b_transparent;
    
    varying vec2 v_texcoord;
    varying vec4 v_position;
    varying vec3 v_normal;
    
    void main()
    {
        
        vec3 normal = normalize(n_matrix * v_normal);
    
        vec3 surfaceToLight = light.position - v_position;
        
        float brightness = dot(normal, surfaceToLight) / (length(surfaceToLight) * length(normal));
        brightness = clamp(brightness, 0, 1);
    
    	// Set fragment color from texture
    	vec4 surfaceColor = vec4(texture2D(texture, v_texcoord));
    
    	if(!b_transparent)
    	{
    		surfaceColor.a = 1.0f;
    	}
    
    	gl_FragColor = vec4(brightness * light.intensities * surfaceColor.rgb, surfaceColor.a);
    }