Fractal Related Discussion > Fractal Mathematics And New Theories

colouring by heightmap surface curvature

(1/1)

**claude**:

http://graphics.zcu.cz/sscurvature.html has a reference implementation for Screen Space Curvature as a Unity shader (afaict), I ported it to C++ and tried it out on Mandelbrot iteration data considered as a heightmap (z = log(iteration count)).

Some results attached. Seems mean curvature looks different to Gauss curvature, both look a bit like distance estimation colouring.

But it doesn't look as good as I'd hoped.

Code here: https://code.mathr.co.uk/kf-extras/blob/HEAD:/kfb-curvature.cc

Linkback: https://fractalforums.org/index.php?topic=383.0

**gerrit**:

Perhaps a problem is the numerical second derivatives in the curvature formula.

I wonder if an analytic formula for curvature can be found by tracking \( d^2z_n/dc^2 \) during the iterations similar to tracking the first derivative with the analytic distance estimation method.

**gerrit**:

I tried something which is probably not directly "curvature" but uses the second derivative.

As the usual DE is \( DE = |G(c)/G'(c)| \) with G the Douady Hubbard potential (exp(-smoothed iteration)) I

tried \( DDE = |G/G''| \) with G'' second dervative computed analytically in the iterations.

Results are perhaps interesting, looking like DE but with little "swamp lights" which persists to any depth I've checked.

Below two examples; left is usual DE, right "DDE". Tweaking it by for example \( DDE = |G'/G''| \) looks similar.

**gerrit**:

Actually I think G'/G'' looks better than G/G''. The former is probably a more natural generalization of the DE.

\( DE = 1/(log(G))' \) and the modified DDE (G'/G'') is just \( DDE = 1/(log(G'))' \), whereas G/G'' is nothing in particular.

Below example of G/G'' (top) and G'/G''.

**gerrit**:

Another interesting aspect of the DDE = G'/G'' is that it seems to show (better) the minis embedded in the filaments.

See below example (left DE, right DDE).

Navigation

[0] Message Index

Go to full version