Kuidas teha Mandelbulb

Mandelbulb on kolmemõõtmeline fraktaal, mis muutub üha populaarsemaks aastal 3D-kunst ja VFX. Selles artiklis tutvustan, kuidas Mandelbulbi kiiresti teha Houdini , kasutades SDF-i (allkirjastatud kaugusvälja maht).

Igas vokslis salvestab SDF kauguse pinnale lähima punktini. Houdini oskab neid vahemaid tõlgendada ja tuletatud pinda visualiseerida 3D-geomeetriana. See on väga mugav, kuna enamik fraktaalvalemeid on „kauguse hindamise funktsiooni” vormis - antud ruumipunkt annab funktsioon kauguse lähima punktini fraktaali kaudsel pinnal. See tähendab, et saate fraktaali funktsiooni tulemused panna otse igasse vokslisse ja see lihtsalt töötab!

01. Looge tühi maht

Looge tühi helitugevuse tööriistariba

Pildi suurendamiseks klõpsake paremas ülaosas oleval ikoonil

Kõigepealt looge vahemaa väärtustega täitmiseks tühi köide (Volume SOP) - andke sellele nimi 'pind'. Hea fraktaal, millega katsetada, on Mandelbulb ja vaikimisi on see umbes 2,5 ühikut lai, seega määrake helitugevuse suuruseks 2,5, 2,5, 2,5. Saate muuta helitugevuse eraldusvõimet, et vahetada kiirust kvaliteedi vastu; hea lähtepunkt võiks olla ühtse valimi määramine suuruse järgi jagunemise suuruseks 0,01. Houdinis helitugevuse visualiseerimise vaikerežiim on udumaht, kuid saate seda muuta kõva piirpinnana kuvamiseks, muutes kuvarežiimi Isosurface (vahekaardil Atribuudid).

02. Lisage kood

Lisage mõni koodi tööriistariba

Pildi suurendamiseks klõpsake paremas ülaosas oleval ikoonil

Siis on tegemist vokslite täitmisega kauguse väärtustega. Kasutage seda VEX-koodi Volume Wrangle SOP-is, et käivitada voelbeli Mandelbulbi valem:

vector p = v@P; float dr = 1; float r = 0.0; float power = chf(“power”); for (int i = 0; i 1.5) break; // convert to polar coordinates float theta = acos(p.z/r); float phi = atan(p.y, p.x); dr = pow( r, power-1.0)*power*dr + 1.0; // scale and rotate the point float zr = pow(r, power); theta *= power; phi *= power; // convert back to cartesian coordinates p = zr*set(sin(theta)*cos(phi), sin(phi)*sin(theta), cos(theta)); p += v@P; } f@surface = 0.5*log(r)*r/dr;

03. Tutvustage parameetriviited

3D fraktaal

Pildi suurendamiseks klõpsake paremas ülaosas oleval ikoonil

Houdini võimaldab teil lisada individuaalse sõlme kasutajaliidesesse oma kohandatud varuparameetrid. Meie VEX-kood sisaldab parameetriviiteid ( chf () funktsioonid), et saaksime kasutajaliidese parameetritega valemi aspekte kontrollida. Neid parameetreid vaikimisi ei eksisteeri, kuid saate need luua, vajutades koodiakna paremas nurgas nuppu Loo varuparameetrid.

Sellisel juhul kontrollib parameeter Iterations Mandelbulbi üksikasjalikkuse taset - alustage 5-ga või 6-ga. Power juhib Mandelbulbi kuju - tüüpiline kuju tekib võimsuse 8.0 ümber.

04. Teisendamine hulknurkadeks

teisendada hulknurkadeks

Pildi suurendamiseks klõpsake paremas ülaosas oleval ikoonil

Pinna teisendamiseks hulknurkadeks järgige helitugevuse ümberarvestamise käsku Teisenda helitugevuse SOP. Kasutage režiimi Invert, kuna seda tõlgendatakse allkirjastatud kauguseväljana ja saate detailse fraktaali kuju võrku hulknurga kujul. Tegelikult muudab režiim Invert pinna normaalsused ja polügoonide mähistamise suuna vastupidiseks.

05. Esitage oma Mandelbulb

mandelbulb renderdada

Pildi suurendamiseks klõpsake paremas ülaosas oleval ikoonil

Seejärel saate selle renderdada samamoodi nagu mis tahes muu võrgusilma, kuid kuna see on nii detailne, ei saa te seda UV-ga hõlpsalt lahti pakkida - kaaluge selle pindamiseks protseduuriliste võtete kasutamist, näiteks varjutamist selle kõveruse põhjal.

See artikkel avaldati algselt aastal 3D maailm , maailma enimmüüdud ajakiri CG-kunstnikele. Osta väljaanne 237 või telli .

Loe rohkem: