Welcome to Fractal Forums

Fractal Software => Mandelbulber Gallery => Topic started by: mclarekin on May 11, 2016, 01:52:13 AM




Title: Polynomial Menger Sponge
Post by: mclarekin on May 11, 2016, 01:52:13 AM
Polynomial Menger Sponge

(http://nocache-nocookies.digitalgott.com/gallery/19/8347_11_05_16_1_52_13.jpeg)

http://www.fractalforums.com/index.php?action=gallery;sa=view;id=19047

Polynomial Menger Sponge


Title: Re: Polynomial Menger Sponge
Post by: mclarekin on May 11, 2016, 07:16:14 AM
Lately for Mandelbulber dev V2.08 we have been exploring Polynomials

    z^2  +  z  +  c;


 or written with some variable parameters added

   newZ =  A * z^2  +  B * z  +  C;


The case, when A = 1 and B = 0, we get      z = z^2 + C ,     mandelbrot julia;

Collatz fractal is  also a  polynomial,  refer:

Wiki/Claude/Zebastian
https://en.wikipedia.org/wiki/Collatz_conjecture#Iterating_on_real_or_complex_numbers
http://www.fractalforums.com/fragmentarium/collatz-fractal/

Each  “z”   can be made conditionally unique by modification,

The polynomial  can be re-written  as:    newZ =  ( Za * Zb)    +   Zc  +  C;

examples of unique "z" conditions:
Za = (VectA + ScaleA * z )   
Zb =  cos( pi * ScaleB * z)
Zc = fabs(z) 
Zd = Box Offset
or infinitely more  complicated,    Ze =  (  Za + Zg + Zp  ……)

however, the more complicated functions,  require  longer render times and can make distance estimation  difficult.


In Mandelbulber dev V2.08  we currently have  a transform, Transf_Pwr2_Polynomial, which is coded as

   newZ =   - (partA * fn(z))   + part B,  where

partA =  Za = (VectA + ScaleA * z )

fn(z) is various z_function options    e.g  Zb =  cos( pi * ScaleB * z) (default = Collatz)

partB  =  Zc + C   =    ScaleC * z + VectC.


Exploration to date, finds the easiest  usage is as a single iteration pre-transform,  and works very well with IFS especially Menger_Sponge, using analytic linear DE.