Mandelbulb là một fractal ba chiều đang ngày càng trở nên phổ biến trong Nghệ thuật 3D. và vfx. Trong bài viết này, tôi sẽ đi qua cách nhanh chóng tạo ra một mandelbulb trong Houdini. , sử dụng SDF (Khối lượng trường khoảng cách đã ký).
Trong mỗi Voxel, SDF lưu trữ khoảng cách đến điểm gần nhất trên bề mặt. Houdini có thể diễn giải các khoảng cách này và hình dung bề mặt dẫn xuất dưới dạng hình học 3D. Điều này rất tiện lợi vì hầu hết các công thức Fractal có dạng 'chức năng ước tính khoảng cách' - được đưa ra một điểm trong không gian, hàm trả về khoảng cách đến điểm gần nhất trên bề mặt fractal. Điều này có nghĩa là bạn có thể đặt kết quả của hàm fractal trực tiếp trong mỗi voxel và nó sẽ chỉ hoạt động!
Đầu tiên, tạo một khối lượng trống (SOP âm lượng) để điền vào các giá trị khoảng cách - Đặt tên 'Bề mặt'. Một fractal tốt để kiểm tra là mandelbulb, và theo mặc định, nó rộng khoảng 2,5 đơn vị, do đó, đặt kích thước của âm lượng thành 2,5, 2,5, 2.5. Bạn có thể thay đổi độ phân giải của khối lượng để đánh đổi tốc độ chống lại chất lượng; Một điểm khởi đầu tốt có thể được thiết lập lấy mẫu đồng nhất theo kích thước, với kích thước phân chia là 0,01. Chế độ mặc định của hình dung một âm lượng trong Houdini là một khối sương mù, nhưng bạn có thể thay đổi điều đó để hiển thị dưới dạng bề mặt giới hạn cứng, bằng cách thay đổi chế độ hiển thị sang isosurface (trong tab Thuộc tính).
Sau đó, đó là vấn đề lấp đầy Voxels với các giá trị khoảng cách. Sử dụng mã VEX này trong một khối lượng Wrangle SOP để chạy Công thức Mandelbulb Per-Voxel:
Vector p = v @ p;
float dr = 1;
float r = 0,0;
float power = CHF ("Power");
cho (int i = 0; i & lt; chi ("enerations"); i ++) {
r = chiều dài (p);
if (R & GT; 1.5) phá vỡ;
// Chuyển đổi sang tọa độ cực
float theta = acos (p.z / r);
float phi = atan (p.y, p.x);
DR = POW (R, POWER-1.0) * POWER * DR + 1.0;
// Tỷ lệ và xoay điểm
float zr = pow (r, power);
theta * = sức mạnh;
PHI * = POWER;
// Chuyển đổi lại tọa độ cartesian
P = ZR * SET (SIN (THETA) * COS (PHI), SIN (PHI) * SIN (THETA), CO (THETA));
p + = v @ p;
Không thể
f @ Surface = 0,5 * log (r) * r / dr;
Houdini cho phép bạn thêm các tham số dự phòng tùy chỉnh của riêng bạn vào giao diện người dùng của một nút riêng lẻ. Mã VEX của chúng tôi chứa tham chiếu tham chiếu ( CHF () Các chức năng), để chúng ta để chúng tôi kiểm soát các khía cạnh của công thức với các tham số trong UI. Các tham số đó sẽ không tồn tại theo mặc định, nhưng bạn có thể tạo chúng bằng cách nhấn nút Tạo tham số dự phòng ở bên phải cửa sổ mã.
Trong trường hợp này, tham số lặp sẽ kiểm soát mức độ chi tiết cho Mandelbulb - Bắt đầu với 5 hoặc 6. Nguồn sẽ kiểm soát hình dạng của Mandelbulb - Hình dạng điển hình xuất hiện ở mức xung động 8.0.
Để chuyển đổi bề mặt thành đa giác, hãy làm theo khối lượng được trình diễn với âm lượng chuyển đổi SOP. Sử dụng chế độ Đảo ngược, vì nó được hiểu là một trường khoảng cách đã ký và bạn sẽ nhận được hình dạng fractal chi tiết trong dạng đa giác. Hiệu quả, chế độ đảo ngược đảo ngược các quy tắc của bề mặt và hướng quanh co của đa giác.
Sau đó, bạn có thể hiển thị nó giống như bất kỳ lưới nào khác, nhưng vì nó rất chi tiết, bạn sẽ không thể mở UV dễ dàng - xem xét sử dụng các kỹ thuật thủ tục để bề mặt, ví dụ, tô bóng dựa trên độ cong của nó.
Bài viết này ban đầu được xuất bản trong Thế giới 3d , Tạp chí bán chạy nhất thế giới cho các nghệ sĩ CG.Mua Vấn đề 237. hoặc là đăng ký. .
Đọc thêm:
Học cách sử dụng độ tương phản trong nghệ thuật sẽ chuyển đổi các dự án của bạn và cách bạn làm việc. Khía cạnh yêu thích của tôi để làm vi..
[số 8] (Tín dụng hình ảnh: Alex Blake / Facebook) Cài đặt quyền riêng tư của Facebook có vẻ giố..
[số 8] (Tín dụng hình ảnh: pexels.com) Thoạt nhìn, xử lý song song nghe có vẻ như một lời mời ..
[số 8] (Tín dụng hình ảnh: Travis Knight) Một hiệu ứng Anaglyph là tên thích hợp cho phong cách 3D..
[số 8] Khi bạn vẽ những sinh vật, nó quan trọng là họ đáng tin cậy. Cho dù thiết kế của bạn điên nh..
Khi bạn đang vẽ nước gợn sóng với một cái gì đó trong đó, bạn đang đảm nhận nhiệm vụ vẽ một sự phản ánh bị gián đoạn. Điều này có thể l�..
[số 8] Vue.js đã xuất hiện những bước nhảy vọt gần đây, trở thành dự án ngã ba thứ sáu cho đến n..
[số 8] Việc sử dụng đèn vòm là một trong những tiến bộ lớn nhất trong CGI Creation trong thập kỷ qua. ..