Mandelbulb เป็นเศษส่วนสามมิติที่เป็นที่นิยมมากขึ้นเรื่อย ๆ ศิลปะ 3 มิติ และ VFX ในบทความนี้ฉันจะเดินผ่านวิธีการทำ mandelbulb อย่างรวดเร็ว ฮูดินี่ ใช้ SDF (ระดับฟิลด์ระยะทางที่ลงนาม)
ในแต่ละ Voxel, SDF เก็บระยะห่างไปยังจุดที่ใกล้ที่สุดบนพื้นผิว ฮูดินี่สามารถตีความระยะทางเหล่านี้และมองเห็นพื้นผิวที่ได้รับเป็นรูปทรงเรขาคณิต 3 มิติ สะดวกมากเนื่องจากสูตรเศษส่วนส่วนใหญ่ใช้รูปแบบของ 'ฟังก์ชั่นการประมาณระยะทาง' - กำหนดจุดในอวกาศฟังก์ชั่นจะส่งกลับระยะทางไปยังจุดที่ใกล้ที่สุดบนพื้นผิวที่เป็นเศษส่วนโดยปริยาย ซึ่งหมายความว่าคุณสามารถใส่ผลลัพธ์ของฟังก์ชั่นเศษส่วนได้โดยตรงในแต่ละ voxel และมันจะทำงานได้!
ก่อนอื่นให้สร้างโวลุ่มว่าง (ปริมาณ SOP) เพื่อเติมเต็มค่าระยะทาง - ให้ชื่อ 'Surface' เศษส่วนที่ดีในการทดสอบด้วยคือ Mandelbulb และโดยค่าเริ่มต้นมันกว้างประมาณ 2.5 หน่วยดังนั้นตั้งขนาดของปริมาณเป็น 2.5, 2.5, 2.5 คุณสามารถเปลี่ยนความละเอียดของระดับเสียงเพื่อแลกเปลี่ยนความเร็วกับคุณภาพ จุดเริ่มต้นที่ดีสามารถตั้งค่าการสุ่มตัวอย่างสม่ำเสมอตามขนาดด้วยขนาดการแบ่ง 0.01 โหมดเริ่มต้นของการแสดงปริมาณใน Houdini คือระดับเสียงหมอก แต่คุณสามารถเปลี่ยนได้เพื่อแสดงเป็นพื้นผิวที่ จำกัด อย่างหนักโดยการเปลี่ยนโหมดการแสดงผลเป็น Isosurface (ในแท็บคุณสมบัติ)
จากนั้นมันเป็นเรื่องของการเติม voxels ด้วยค่าระยะทาง ใช้รหัส VEX นี้ใน SOP Wrangle DOP เพื่อเรียกใช้สูตร Mandelbulb ต่อ Voxel:
เวกเตอร์ p = v @ p;
ลอยดร. = 1;
ลอย r = 0.0;
Power Float = CHF ("พลังงาน");
สำหรับ (int i = 0; i & lt; chi ("วนซ้ำ"); i ++) {
r = ความยาว (p);
ถ้า (r & gt; 1.5) หยุดพัก;
// แปลงเป็นพิกัดขั้วโลก
float theta = acos (p.z / r);
ลอย phi = atan (p.y, p.x);
DR = POW (R, POWER-1.0) * Power * DR + 1.0;
// ปรับขนาดและหมุนจุด
ลอย ZR = POW (R, POWER);
theta * = พลังงาน;
PHI * = พลังงาน;
// แปลงกลับเป็นพิกัดคาร์ทีเซียน
P = ZR * SET (SIN (THETA) * COS (PHI), SIN (PHI) * SIN (THETA), COS (THETA));
p + = v @ p;
}
F @ Surface = 0.5 * บันทึก (R) * R / DR;
Houdini ให้คุณเพิ่มพารามิเตอร์อะไหล่ที่กำหนดเองของคุณเองในส่วนต่อประสานผู้ใช้ของแต่ละโหนด รหัส VEX ของเรามีการอ้างอิงพารามิเตอร์ ( chf () ฟังก์ชั่น) เพื่อให้เราควบคุมด้านของสูตรที่มีพารามิเตอร์ใน UI พารามิเตอร์เหล่านั้นจะไม่มีอยู่ตามค่าเริ่มต้น แต่คุณสามารถสร้างได้โดยการกดปุ่มสร้างพารามิเตอร์การสร้างพารามิเตอร์ทางด้านขวาของรหัสโค้ด
ในกรณีนี้พารามิเตอร์การทำซ้ำจะควบคุมระดับรายละเอียดสำหรับ Mandelbulb - เริ่มต้นด้วย 5 หรือ 6 พลังจะควบคุมรูปร่างของ Mandelbulb - รูปร่างทั่วไปจะเกิดขึ้นที่รอบกำลังไฟ 8.0
เพื่อแปลงพื้นผิวเป็นรูปหลายเหลี่ยมให้ทำตามปริมาณการเขียนด้วยสปวอลุ่มแปลง ใช้โหมด Invert เนื่องจากการตีความว่าเป็นฟิลด์ระยะทางที่ลงนามแล้วและคุณจะได้รับรูปแบบเศษส่วนที่มีรายละเอียดตาข่ายในรูปแบบรูปหลายเหลี่ยม มีประสิทธิภาพโหมด Invert ย้อนกลับบรรทัดฐานของพื้นผิวและทิศทางที่คดเคี้ยวของรูปหลายเหลี่ยม
จากนั้นคุณสามารถทำให้มันเหมือนกับที่คุณต้องการตาข่ายอื่น ๆ แต่เป็นเพราะรายละเอียดคุณจะไม่สามารถรับ UV ได้อย่างง่ายดาย - พิจารณาใช้เทคนิคขั้นตอนเพื่อสร้างพื้นผิวเช่นการแรเงาขึ้นอยู่กับความโค้งของมัน
บทความนี้ได้รับการตีพิมพ์ครั้งแรกใน โลก 3 มิติ นิตยสารที่ขายดีที่สุดในโลกสำหรับศิลปิน CGซื้อ ปัญหา 237 หรือ ติดตาม .
อ่านเพิ่มเติม:
วิดีโอจับภาพหน้าจอสั้นต่อไปนี้ ชาร์ลีเดวิ..
Vue.js ได้มาที่ leaps and bounds เมื่อเร็ว ๆ นี้กลายเป็นโครงก..
html & lt; canvas & gt; องค์ประกอบเป็นโซลูชันที่ทรงพลังส�..
Aging รูปถ่ายใน Photoshop เป็นเทคนิคคลาสสิกที่สามารถเป�..
สีน้ำมันนำเสนอปานกลางในอุดมคติสำหรับการบรรลุพู่กันที่แข็งแกร่งแ�..
เมืองที่ดีที่สุดคือเมืองที่วุ่นวาย แต่บรรยา�..
ปีที่ผ่านมานี้เป็นเกมเปลี่ยนเกมสำหรับอุตสาห..