Fraktály

2019-12-24

Inspirováno videem Create Procedural Fractals Fast. Juliova množina je definovaná iterací funkce f(z) = z^2 + c ‒ číslo z je vstupní pixel a c je komplexní číslo, které volíme a animujeme. Při zapnutí Open Shading Language lze v Blenderu využít Script node:

shader fractal (
    float Re = 0,
    float Im = 0,
    point Position = P,
    output color Color = 0
) {
    float real = Position[0];
    float imag = Position[1];

    for (float i = 0; i < 200; i++) {
        float real_ = real;
        real = real*real - imag*imag + Re;
        imag = 2*real_*imag + Im;

        if (sqrt(real*real + imag*imag) > 4) {
            Color = i/200;
        }
    }
}

Nejprve video.

Video

A obrázky. Rozkliknutím zobrazíte plnou velikost, která se pohybuje mezi 4K a 8K.

c = 0.276522 + 0.486148i: c = 0.276522 + 0.486148i

c = 0.289579 + 0.486148i: c = 0.289579 + 0.486148i

c = -1.5: c = -1.5

c = 0.2846 + 0.1399i: c = 0.2846 + 0.1399i

c = 0.2896 + 0.4861i: c = 0.2896 + 0.4861i

c = ??? + ???i: c = ??? + ???i

c = -0.800 + 0.156i: c = -0.800 + 0.156i

Pro "vysunutí" do prostoru jsem plochu několikrát rozdělil a přidal jí modifikátor Subdivision Surface s adaptivním režimem.

Node setup