Sử dụng Houdini trong các effect thường dùng rất nhiều vật chất liên quan volume, particle nên các chương trình render dạng non-bias sẽ cho ra kết quả nhìn thật mắt và tự nhiên hơn các dạng bias. (liên kết tới tìm hiểu về unbias và bias trong render). Mantra là render non-bias có sẵn trong Houdini, làm việc rất hiệu quả, mọi shader đều xây dựng sẵn, có hỗ trợ BRDF và cả vật liệu Disney BRDF hay còn được biết là Principle Shader, Mantra cho kết quả rất tốt về mặt hình ảnh trên volume, particle. Tuy nhiên vấn đề của Mantra là chậm.
Dưới đây là Shader principle của Mantra, có texture, có bump normal, không dùng displacement. Không có xào nấu gì, một shot cái thác nước này mất 10 giờ (mình dự định render 6 shot, mà thấy mất thời gian render farm trên Hqueue quá, nên thôi tạm thời thế), cho ra Full HD có hỗ trợ motion blur và cũng nhiều noise, không sạch hình. Nếu bậc full displacement thì cần phải cả hơn nữa ngày một shot. Quá xa xỉ.
Thường để làm phim điện ảnh ở các dự án vĩ đại như Pixar, Disney, Industrial Light & Magic xét về tốc độ render thật sự cũng không quá đáng kể khi so với chất lượng hình ảnh của một shot hình. Mà đó lại là thứ quá xa xỉ với giới thực hiện truyền hình, làm phim quảng cáo hay các phim điện ảnh kinh phí thấp ở các nước như Việt Nam, nguồn lực giới hạn thì thời gian phải là hàng đầu, đảm bảo được hài hòa giữa chất lượng chấp nhận và thời gian mới thật sự cấp thiết, thực dụng nhưng đủ nguồn lực để hoàn tất được dự án.
Công việc hiện tại mình thấy phải chọn được một render hỗ trợ được các vật liệu volume, nước (fluid), bụi, bọt, sấm sét, phá hủy (destruction) một cách vừa đủ nhanh mà vẫn vừa đủ chất lượng. Chọn render nào phù hợp về tốc độ mà chất lượng vẫn ưng ý theo cá nhân ?
(Thời gian render Toy Story 3 tầm 7 giờ tới 39 giờ 1 frame – nguồn bài viết render Toy Story 3, công ty mình là Rainstorm Film, làm phim kiến trúc và animation mất cỡ 20 phút/frame là kêu trời, sau này anh chị em phải làm mọi thứ để xuống còn 12 phút, 7 phút một frame full HD, đó là V-Ray)
Để thay thế cho Mantra, sẽ có vài render tiêu biểu:
- Redshift 3D, render siêu nhanh với sự hỗ trợ GPU, là ngôi sao tiên tiến nhất hiện nay được giới 3D motion graphics công nhận cũng như nhiều thứ liên quan animation, vfx đã được các studio dùng, đây là chương trình render bias chạy trên GPU rất hiệu quả, có giao diện setup rất thân thiện, dễ dùng. Đang được dùng rộng rãi trong giới thiết kế, quảng cáo và các video game tại Việt Nam, một vài designer kiến trúc cũng đã chuyển qua dùng Redshift
- V-Ray cho Houdini, một render rất nổi tiếng trong giới làm phim diễn họa kiến trúc và các hình ảnh phối họa kiến trúc. Đây là một chương trình render nổi tiếng tại Việt Nam trong giới kiến trúc, thiết kế khi cho ra các vật liệu rất thật, tuy nhiên điểm chung thì giao diện khó dùng, đó là đặc điểm của phần mềm render bias. V-Ray cũng khá là già cỗi và ngày càng khó khăn với các artist, designer, rất nhiều người đã chuyển qua dùng Corona nhằm mục tiêu dễ dùng và thiết kế nhanh hơn.
- Solid Angle Arnold, một render unbias nổi tiếng trong giới làm phim điện ảnh, các phim quảng cáo có qui mô lớn, theo truyền thuyết thì mọi người bảo render ra thật, lighting sống động, nhưng thực tế thì mấy cái đó là do artist làm, render nào cũng vậy, artist làm không ra thiết kế đẹp thì cũng không thể ra sản phẩm thật hay tự nhiên được. Đặc điểm của Arnold là hỗ trợ tốt cho volume, shader có tính truyền thống làm phim nên có sự hỗ trợ cho việc lập trình shader riêng, rất nhiều tính năng tiện dụng sẵn để đầu ra cho các vai trò khác nhau và đã là một render sẵn trong nhiều qui trình sản xuất làm việc quốc tế.
- Renderman 23, cái này nhìn hình ảnh rất bắt mắt, đặc biệt trong các sản xuất của ILM, rồi làm các phim hoạt hình cho Disney. Tuy nhiên cá nhân mình không phải là artist trình độ ở ILM, Pixar mà cũng không có hệ thống máy móc cùng kỹ sư hùng hậu phía sau hậu thuẫn kỹ thuật, nên mình cũng không tự tin dồn toàn lực vào coi Renderman 23, đây là Render mới được nâng cấp khá toàn diện của Pixar dành cho Houdini 18, sắp tới hỗ trợ cả GPU và CPU chạy hybrid, gọi là XPU. Trong group của Houdini Artist đã có người khen chạy rất nhanh, kết quả thử với 1 cây dừa… nên mình cũng chưa dám thử
Xoay đi xoay lại cá nhân mình chọn Arnold (trước có dùng với Maya nên rất nhớ cái AL Shader đẹp lồng lộn). Lý do thì nói chung vô vàn, nhưng có lẽ duyên bén với Solid Angle Arnold. Hiện theo biết thì Arnold sẽ cho ra kết quả nhanh hơn Mantra, rồi đang có hỗ trợ GPU (giai đoạn chưa hoàn thiện – so với Redshift thì RS đã đi vào giai đoạn trưởng thành). Ngoài ra thì Arnold trong vai trò qui trình cũng có rất nhiều tài liệu, do được dùng rất nhiều ở các studio lớn nên tài liệu rất phong phú về shader, kinh nghiệm chia sẻ về ứng dụng vào các dự án từ nhỏ tới lớn.
Về đẹp thì do mình thiết kếrồi nên việc đó tính sau do cần phải thực sự tiếp thu Arnold và làm cho thành thạo thì lúc đó mới tính chuyện đẹp xấu được. Giờ cần thử nghiệm trước, ổn rồi thì chạy Houdini 17 phiên bản phù hợp với Arnold mới nhất là ngon.
Đây là hình ảnh render Arnold trên Maya trước đây mình đã từng thực hiện. Trông rất thích mắt so với V-Ray thời điểm đó. Tuy nhiên đặc điểm của Arnold thời điểm đó là rất chậm, không thể so được với V-Ray
Cách cài đặt
Về mặt cài đặt các phần mềm render nói chung trên Houdini thì phải nói mất rất nhiều lực và kiến thức sử dụng google tìm tòi liên hoàn. Mình đã mất khá nhiều thời gian để cài đặt được Redshift, và bây giờ là tới Arnold.
Để cái đặt Arnold thì bạn cần chọn đúng cái file Arnold version hỗ trợ đúng cái version Houdini bạn đang dùng. Ví dụ mình đang dùng Houdini 17.5.425 thì chỉ có mỗi phiên bản Arnold 5.0.0 và đúng loại chạy với phiên bản Houdini này mới chạy. Điều này cũng tương tự với Redshift và Renderman, mọi cái khác đều không tương thích, đó cũng là lý do mình chưa thử được Renderman 23, do không có phiên bản mà hỗ trợ Arnold nhưng cũng đúng số Renderman chọn.

Sau khi đã có được Houdini version tương ứng, cài vào, bạn sẽ cần setup file Houdini.env, mọi plugin của Houdini gần như đều không đơn giản chỉ là setup, mà sau khi cài xong phải tự tay vào chỉnh lại file Houdini.env trong trường hợp plugin không chạy, đây là một dạng file khai báo đầu vào cho Houdini trước khi sử dụng. Bản thân Arnold sẽ tự động ghi lên file này bộ thông tin setup cho người dùng, với Redshift thì phải tự thêm vào theo tài liệu nhà sản xuất. Đoạn thông tin trong Houdini.env của mình sẽ như sau:
# htoa config start
PATH = "$PATH;C:/Users/thor/htoa/htoa-5.0.0_rcd870fd_houdini-17.5.425/htoa-5.0.0_rcd870fd_houdini-${HOUDINI_VERSION}/scripts/bin"
HOUDINI_PATH = "C:/Users/thor/htoa/htoa-5.0.0_rcd870fd_houdini-17.5.425/htoa-5.0.0_rcd870fd_houdini-${HOUDINI_VERSION};&"
PXR_PLUGINPATH_NAME = "C:/Users/thor/htoa/htoa-5.0.0_rcd870fd_houdini-17.5.425/htoa-5.0.0_rcd870fd_houdini-${HOUDINI_VERSION}/hydra"
# htoa config end
Dịch từng dòng ra là:
# htoa config start
Dấu #
có nghĩa là comment trong code, tức khi thực thi, dòng lệnh này sẽ được bỏ qua bởi máy, đây là đoạn thông tin dành cho con người, không phải cho máy. Dòng này ý nói bắt đầu setup Solid Angle Arnold lên Houdini. HtoA nghĩa là Houdini To Arnold. Với Maya là MtoA.
PATH = "$PATH;C:/Users/thor/htoa/htoa-5.0.0_rcd870fd_houdini-17.5.425/htoa-5.0.0_rcd870fd_houdini-${HOUDINI_VERSION}/scripts/bin"
Đây là dòng khai báo quan trọng để Arnold chạy được hay không là ở đây. Dòng này chỉ đến đúng phiên bản Arnold dành cho phiên bản Houdini đạt yêu cầu tương ứng.
HOUDINI_PATH = "C:/Users/thor/htoa/htoa-5.0.0_rcd870fd_houdini-17.5.425/htoa-5.0.0_rcd870fd_houdini-${HOUDINI_VERSION};&"
Dòng này là khai báo cho Houdini biết rằng Arnold chạy rồi để Houdini load lên.
PXR_PLUGINPATH_NAME = "C:/Users/thor/htoa/htoa-5.0.0_rcd870fd_houdini-17.5.425/htoa-5.0.0_rcd870fd_houdini-${HOUDINI_VERSION}/hydra"
Đây là dòng kích hoạt Arnold đọc được các file USD (Pixar USD là gì), hydra là render của Pixar USD, cái này mình không đào sâu nên chưa rõ, nhưng USD chính là dạng file Universal mà hiện tại đang dần được phổ thông hóa trên các phần mềm DDC nói chung cũng như trong các qui trình của studio lớn nhỏ quốc tế. Cái này do Pixar làm ra.
# htoa config end
Ok, như vậy đã xong, dòng này báo xong. Có dấu #
thì máy bỏ qua. Thông tin setup Arnold nguyên bản ở đây từ Autodesk.
Bạn muốn tìm hiểu thêm về cấu trúc thông tin của Houdini.env tức các đoạn code file khai báo môi trường hoạt động của Houdini thì vào tìm hiểu Houdini.env ở đây nghiên cứu. Tạm gọi là đơn giản nhất.
Nếu bạn có bản quyền thì cài đặt bản quyền thông qua RLM License Manager khi mua phần mềm sẽ được báo đi theo. Cài file .lic vào là chạy. Của mình bật lên không chạy License.
Cách Xử Lý Khi Không Chạy Được Arnold
Các thứ đảm bảo Arnold sẽ hoạt động trên Houdini với phiên bản của mình đã đưa ra trong bài viết cũng như thông tin Arnold là 5.0.0
- Khi chạy Houdini, console của Houdini sẽ hiện ra và báo có load Arnold ngay tức thì ở thời điểm mở, đó cũng là nơi mọi thứ gì khi render Arnold trong quá trình làm việc cũng liên tục nhảy lên báo.
- Khi thấy console báo như sau, và tiếp tục load các thư viện lib lên, như vậy là ổn, phần cuối cùng của mục load sẽ là phần load bản quyền:
[htoa_op] Begin registration ...
00:00:00 258MB | loading plugins from C:/Users/thor/htoa/htoa-5.0.0_rcd870fd_houdini-17.5.425/htoa-5.0.0_rcd870fd_houdini-17.5.425/arnold/plugins ...
- Trong trường hợp không được, xem lại file Houdini.env, đảm bảo rằng dòng chạy setup load Arnold phải nằm ngay trên đầu của file Houdini.env, tức ngay dưới đoạn báo về cú pháp của file
# Houdini Environment Settings
và ngày sau dòng# Example:
- Nếu có setup render của Redshift trong file này, đây là trường hợp của mình, comment bằng dấu
#
cho các dòng setup Redshift, tức Redshift không thể hoạt động, đối với trường hợp của mình như vậy thì Arnold sẽ hoạt động. - Trong trường hợp mình, file License sẽ không hoạt động, nó báo như sau. Mình sẽ fix cái này sau.
00:00:00 80MB | authorizing with license manager: user ...
00:00:10 84MB WARNING | rendering with watermarks because of failed authorization:
Xem Thử Hoạt Động Thế Nào
Trước đây đã dùng Arnold trên Maya, nên về cơ bản vài thuật ngữ mình vẫn còn nhớ, tuy nhiên thời gian qua cũng lâu, chưa kể đây là Houdini, cũng cần phải trau dồi lại từ đầu. Một vài nhận định chớp nhoáng khi mở ra kiểm tra nhanh thử. Mình cũng tạo tí hiệu ứng để đảm bảo là không chỉ thử render geometry thôi. Cá nhân thấy có vẻ nhanh hơn tí so với Mantra. Mình test nhanh với con voi mamut 1.1 triệu mặt, tổng diện tích hơn 23 mét. Bỏ vào một cái dome light HDRI duy nhất, tạo một cái màn Nurb nữa là cho voi diễn.

Một phát ăn ngay, không setup gì, Arnold dùng size camera, chưa thấy chỗ để override trong setup render, hình này mình nén hết ga, hình gốc file EXR to nặng hơn. Mình tạo hiệu ứng nhẹ dùng particle.
Á không ổn rồi ! Vậy là giống Redshift, particle không có native (nghe nói Renderman là native, với volume cũng vậy)
Mình phải setup pscale, chuyển qua attribute của Arnold là ar_radius thì mới work, chứ nếu dùng particle scale ngay bảng Arnold tab Shape của Geo thì chỉ ra một cái sphere cùng kích thước chứ không random nhiều kích thước khác nhau như trong DOP setup. Tài liệu render particle trong Arnold tham khảo ở đây

Xong mình setup cho một chuỗi line liên kết dây nhợ linh tinh, nhưng hì hục mãi render không được
Việc render của Arnold về cái dây đọc tài liệu document tới lui làm không được, mình delete bớt particle cho nhánh dây, xong chuyển dây thành geometry sống luôn với PolyWire rồi cho Arnold render. Tình hình là Houdini build ra cái dây thôi đợi cũng mấy phút một frame mặc dù đã giảm particle.

Mình zoom vô cho các bạn coi chi tiết noise của cái hình này
Xong mình thấy trông lạ vậy thì chắc làm chưa đúng, vã lại mình làm cái dây chứ không phải cái cọc khung như trong hình, nên mới đổi lại giá trị thấp hơn, thêm mấy phút để build dây, rồi thêm mấy phút để generate ra scene trên Arnold để chuẩn bị vào việc render. Chú ý là thời gian đề pa của Arnold không có tức thì, sẽ mất một khoảng thời gian build scene (Mantra là khoản thời gian Generate Scene… nhưng mình thấy không đáng kể, Arnold làm mình phải để ý luôn). Trong lúc thử tới lui, mình bấm đại render một cái thì không thấy build scene gì mà render luôn, 35 giây có hình như sau. Như vậy nếu có thể cache được file, Arnold render sẽ rất nhanh ?!
Hình này có một vấn đề, các điểm lighting không giống như cái hình trước nữa, như vậy là hình này lên animation là sẽ flickering. Arnold mình để là mở ra render luôn, không tinh chỉnh gì. Sau đây là tấm hình mình chỉnh được @width về tỉ lệ bé hơn. Thời gian build cũng phải hơn một phút, cái này mình không bấm đồng hồ vì cái này thuộc về Houdini, render mất 1 phút 36 giây. Về cái thời gian render của Arnold thì nói chung nó không có báo ra, mình search thì thấy kêu dùng CPU tick gì đó, cũng add vào mà nó ra thông tin RGB, thua luôn, mới cài vô mà đã phài hì hục trâu ngựa quá nên thôi mình cũng tập trung kiểm tra chạy thử thôi.
Mình làm tương tự như vậy thử với Mantra, quăng một đèn IBL vào, để shader principle lên background và mọi thứ còn lại, setup không nhọc nhằn gì, với Mantra mọi thứ đã được xây dựng sẵn, setup rất đơn giản, chỉ cần đổi shader là chạy. Bấm render thì nhìn thời gian chạy và ETA time, mình nghĩ là mình đã lựa được đúng chương trình render phù hợp rồi, nhanh và đẹp ngay. Với 360 USD 1 năm, mình nghĩ là chi phí rất phù hợp, làm vài job là đủ bù lỗ rồi.

Cấu hình máy cũng cũ, mình share để anh em biết render trên máy cùi chứ không phải tốc độ thần sấm của Intel 9 core lock 3Ghz trở lên hay các thần sấm AMD Ryzen hiện nay.
Dual E5 2696v2
128 Gb Ram
GPU 2080ti
512 SSD OS khởi động
4Tb SSD làm việc
2Tb SSD cache ứng dụng
4Tb SSD build cache và Geo
Sau khi kiểm tra kỹ bài viết, mình cảm thấy việc render Mantra bình thường cũng lộng lẫy lắm, nhìn cái hình ở trên không ưng bụng, nên mình cố gắng setup lại đơn giản một network Mantra, cùng qui mô và kích thước, vẫn tuân thủ luật chơi chỉ quăng vào là render. Đây là hình ảnh cho nó đàng hoàng lại.

Còn đây là có particle
6 phút 5 giây, cache xuống có lẽ sẽ nhanh hơnArnold Render cái này 2 ~ 3 phút