Files
orx/orx-fx/src/shaders/glsl/distort/polar-to-rectangular.frag
Edwin Jakobs 750b5ef67e [orx-fx] Use the appropriate FilterNto1 interfaces
* Fix webgl 2 compatibility
 * Add LumaLaplacian, ACESTonemap, ReinhardTonemap, DirectionalHashBlur
2022-12-28 14:18:37 +01:00

38 lines
772 B
GLSL

#ifdef OR_IN_OUT
in vec2 v_texCoord0;
#else
varying vec2 v_texCoord0;
#endif
uniform vec2 textureSize0;
uniform sampler2D tex0;
uniform bool logPolar;
#ifndef OR_GL_FRAGCOLOR
out vec4 o_color;
#endif
#define PI 3.141592653589793
void main() {
vec2 uv = v_texCoord0 - vec2(0.5);
float arg = atan(uv.y, uv.x);
float bias = 0.0;
float radius = logPolar? log(1.0 + length(uv)*(exp(1.0)-bias)) / log(1.0+(exp(1.0)-bias)*sqrt(0.5)) : (length(uv) / sqrt(0.5));
vec2 sourceUV = vec2(arg / (2.0 * PI) + 0.5, radius);
#ifndef OR_GL_TEXTURE2D
vec4 result = texture(tex0, sourceUV);
#else
vec4 result = texture2D(tex0, sourceUV);
#endif
#ifdef OR_GL_FRAGCOLOR
gl_FragColor = result;
#else
o_color = result;
#endif
}