Mandelbulb adalah fraktal tiga dimensi yang menjadi semakin populer di Seni 3d. dan vfx. Dalam artikel ini, saya akan berjalan melalui cara dengan cepat membuat mandelbulb Houdini. , menggunakan SDF (volume bidang jarak yang ditandatangani).
Di setiap voxel, SDF menyimpan jarak ke titik terdekat di permukaan. Houdini dapat menafsirkan jarak ini, dan memvisualisasikan permukaan yang diturunkan sebagai geometri 3D. Ini sangat nyaman karena sebagian besar formula fraktal mengambil bentuk 'fungsi estimasi jarak' - diberi titik dalam ruang, fungsi mengembalikan jarak ke titik terdekat pada permukaan implisit fraktal. Ini berarti Anda dapat menempatkan hasil fungsi fraktal secara langsung di setiap voxel dan hanya akan berfungsi!
Pertama, buat volume kosong (volume sop) untuk diisi dengan nilai jarak - berikan nama 'permukaan'. Sebuah fraktal yang baik untuk diuji dengan mandelbulb, dan secara default itu sekitar 2,5 unit lebar, jadi atur ukuran volume menjadi 2,5, 2.5, 2.5. Anda dapat mengubah resolusi volume untuk menukar kecepatan terhadap kualitas; Titik awal yang baik dapat mengatur sampling seragam berdasarkan ukuran, dengan ukuran divisi 0,01. Mode default visualisasi volume dalam Houdini adalah volume kabut, tetapi Anda dapat mengubahnya untuk ditampilkan sebagai permukaan batas keras, dengan mengubah mode tampilan ke isosurface (di tab Properties).
Maka itu masalah mengisi voxels dengan nilai jarak. Gunakan kode vex ini dalam volume Wrangle SOP untuk menjalankan formula mandelbulb per-voxel:
vektor p = v @ p;
float dr = 1;
float r = 0,0;
Float Power = CHF ("Power");
untuk (int i = 0; i & lt; chi ("iterasi"); i ++) {
r = panjang (p);
IF (R & GT; 1.5) istirahat;
// Konversi ke Koordinat Polar
float theta = acos (p.z / r);
float phi = atan (p.y, p.x);
Dr = POW (R, Power-1.0) * Power * DR + 1.0;
// skala dan putar titik
float zr = pow (r, power);
theta * = kekuatan;
phi * = kekuatan;
// Konversi kembali ke koordinat Cartesian
p = zr * set (sin (theta) * cos (phi), sin (phi) * sin (theta), cos (theta));
p + = v @ p;
}
F @ Surface = 0,5 * Log (R) * R / DR;
Houdini memungkinkan Anda menambahkan parameter cadangan khusus Anda ke antarmuka pengguna Node individual. Kode VEX kami berisi referensi parameter (The CHF () Fungsi), untuk membiarkan kami mengontrol aspek-aspek formula dengan parameter di UI. Parameter itu tidak akan ada secara default, tetapi Anda dapat membuatnya dengan menekan tombol Buat Parameter Cadangan di sebelah kanan jendela kode.
Dalam hal ini, parameter iterasi akan mengontrol tingkat detail untuk Mandelbulb - Mulailah dengan 5 atau 6. Daya akan mengontrol bentuk Mandelbulb - bentuk khas muncul di sekitar Power 8.0.
Untuk mengubah permukaan menjadi poligon, ikuti volume bertengkar dengan SOP volume konversi. Gunakan mode Invert, karena ditafsirkan sebagai bidang jarak yang ditandatangani, dan Anda akan mendapatkan bentuk fraktal yang terperinci dalam bentuk poligon. Secara efektif, mode invert membalikkan normal permukaan dan arah gulungan poligon.
Anda kemudian dapat membuatnya sama dengan yang Anda lakukan mesh lain, tetapi karena sangat detail Anda tidak akan dapat menghapusnya dengan mudah - pertimbangkan dengan menggunakan teknik prosedural untuk memamerkannya, misalnya, naungan berdasarkan kelengkungannya.
Artikel ini awalnya diterbitkan di Dunia 3d. , majalah terlaris di dunia untuk seniman CG.Membeli Masalah 237. atau langganan .
Baca lebih lajut:
(Kredit Gambar: Alex Blake / Facebook) Pengaturan privasi Facebook mungkin tampak seperti sedikit paradoks. Facebook ..
Dimensi Adobe membuatnya mudah untuk mengatur adegan yang kompleks (Kredit Gambar: Mike Griggs) Dimensi A..
Panduan langkah demi langkah ini diatur untuk mengungkapkan bagaimana cara pergi tentang penciptaan awan realistis. Tutorial ini ..
Layout Grid CSS. tumbuh di dukungan browser setiap hari dan kami dapat mengirimkan jaringan CSS ke produksi. Adopsi c..
Belajar bereaksi, perpustakaan JavaScript untuk membuat antarmuka pengguna dari Facebook dan Instagram tampaknya gila sampai Anda..
Apakah kami ingin mengakuinya atau tidak, platform interaksi perpesanan berkontribusi pada waktu layar ponsel kami harian. Mereka..
Dalam tutorial menggambar ini, Anda akan belajar Cara menggambar dan melukis sebuah zombie menggunakannya ..
Lukisan 'alla prima' (yaitu, lukisan basah-on-wet, dalam satu sesi) adalah teknik ideal untuk merangkul sifat cat minyak. Ada ses..