| 1234567891011121314151617181920212223242526272829303132333435363738394041424344 |
- /*
- * Copyright (C) 2020, Inria
- * GRAPHDECO research group, https://team.inria.fr/graphdeco
- * All rights reserved.
- *
- * This software is free for non-commercial, research and evaluation use
- * under the terms of the LICENSE.md file.
- *
- * For inquiries contact sibr@inria.fr and/or George.Drettakis@inria.fr
- */
- #version 420
- uniform vec4 weights;
- uniform float scale;
- layout(binding = 0) uniform sampler2D curr_tex;
- layout(location= 0) out vec4 out_color;
- void main(void) {
- ivec2 coord = ivec2(gl_FragCoord.xy*scale);
- float w_center = weights.x;
- float w_edge = weights.y;
- float w_corner = weights.z;
- float w_c_x_inv= weights.w;
- // Solve the Laplace equation, same as Poisson equation with
- // divergence equal to 0
- out_color =
- -w_c_x_inv * (
- (texelFetch(curr_tex, coord, 0) * w_center +
- (texelFetch(curr_tex, coord+ivec2( 0, 1), 0) +
- texelFetch(curr_tex, coord+ivec2( 0,-1), 0) +
- texelFetch(curr_tex, coord+ivec2( 1, 0), 0) +
- texelFetch(curr_tex, coord+ivec2(-1, 0), 0)) * w_edge +
- (texelFetch(curr_tex, coord+ivec2(-1,-1), 0) +
- texelFetch(curr_tex, coord+ivec2(-1, 1), 0) +
- texelFetch(curr_tex, coord+ivec2( 1,-1), 0) +
- texelFetch(curr_tex, coord+ivec2( 1, 1), 0)) * w_corner
- )
- );
- }
|