1// 2// Fragment shader for camera lighting 3// 4// Author: Dan Gudmundsson 5// 6 7#version 120 8 9#include "lib_base.glsl" 10#include "lib_normal.glsl" 11#include "lib_envlight.glsl" 12#include "lib_material.glsl" 13 14varying vec3 ws_position; 15uniform vec3 ws_eyepoint; 16uniform vec4 light_diffuse; 17uniform float Exposure; 18 19void main(void) 20{ 21 vec3 n = get_normal(); 22 vec3 v = normalize(ws_eyepoint-ws_position); // point to camera 23 PBRInfo pbr = calc_views(n, v, vec3(0.0)); 24 pbr = calc_material(pbr); 25 vec3 frag_color = light_diffuse.rgb * background_lighting(pbr, n, normalize(reflect(v, n))); 26 frag_color += get_emission(); 27 frag_color *= Exposure; 28 gl_FragColor = vec4(pow(frag_color, vec3(1.0/2.2)), pbr.opaque); // Should be 2.2 29} 30