2 :copyright: 2011 by Florian Boesch <pyalot@gmail.com>.
3 :license: GNU AGPL3, see LICENSE for more details.
6 attribute vec3 position;
9 gl_Position = vec4(position, 1.0);
13 uniform vec2 viewport;
14 uniform mat4 inv_proj;
15 uniform mat3 inv_view_rot;
16 uniform samplerCube source;
18 vec3 get_world_normal(vec2 pos, vec2 dims){
19 vec2 frag_coord = pos/dims;
20 frag_coord = (frag_coord-0.5)*2.0;
21 vec4 device_normal = vec4(frag_coord, 0.0, 1.0);
22 vec3 eye_normal = normalize((inv_proj * device_normal).xyz);
23 vec3 world_normal = normalize(inv_view_rot*eye_normal);
27 vec4 sample(float xoff, float yoff){
28 vec2 off = gl_FragCoord.xy*2.0+vec2(xoff, yoff);
29 vec3 normal = get_world_normal(off, viewport*2.0);
30 return textureCube(source, normal);
40 gl_FragColor = vec4(color.rgb, 1.0);