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