mildly strobing video
colour according to angle of gradient (wrt image coordinates) of continuous escape time. one direction is more saturated, this direction is animated.
vec3 shade(float d00, float d01, float d10, float d11)
vec2 e = vec2(d00 - d11, d01 - d10);
float de = 1.0 / (log(2.0) * length(e));
float slope = dot(normalize(e), normalize(vec2(cos(radians(LightDirection)), sin(radians(LightDirection)))));
if (0.0 == d00 * d01 * d10 * d11 || isinf(de) || isnan(de)) return vec3(0.0);
vec3 h = hsv2rgb(vec3(degrees(atan(e.y, e.x)) / 360.0, clamp(slope, 0.0, 1.0), 1.0));
return h * tanh(clamp(4.0 * de, 0.0, 4.0));
fract(0.5 * dwell + time / 3.0) < 0.5
? vec3(1.0, 0.0, 0.0)
Where dwell (aka #continuous #escapetime) is computed 4x per pixel for image-space distance estimation (because using #gsls dFdx and dFdy on computed data is too low-resolution and fraught with peril in the event of incoherent control flow, works fine for the input smooth coordinates to know where to offset the 4x dwell computations).
For some reason I always seem to end up with #fractals that look a bit like insects
the trick is to replace (in your camera frag vertex block) all uses of the `Zoom` uniform by `Zoom*pow(2.0, ZoomFactor)` and add a Linear easing curve to new `ZoomFactor` uniform.
keep ZoomFactor at 0 while navigating for sanity
this toot brought to you by "Qt's InExpo easing curve is a bit rubbish" https://code.qt.io/cgit/qt/qtbase.git/tree/src/3rdparty/easing/easing.cpp#n292
I ported some of the #fractal formulas I use in #et to #fragmentarium, for faster rendering. Because of legacy baggage in the existing code of #FragM I started work on #trudy a new #glsl framework for 2D fragment #shaders within FragM.
Similar in spirit to #raymond (my physically inspired raytracer for FragM), only with the added complication of wanting to support double precision (#OpenGL 4) where available, while still working to some extent (without so deep zooms) on single precision float (OpenGL 3) if that is all the #GPU can do. Only single precision is implemented so far.