Thiết Lập Houdini.env Và Hiểu File Khai Báo Môi Trường Mạng Network Cho Houdini FX Làm Việc

Đây là cách ở trong một môi trường có mạng chia sẻ (network share) sử dụng file storage để chứa dự án và repository để cập nhật database thực hiện render farm. Đây là cách các thông tin setup sẽ thực hiện trong file Houdini.ENV. Những hướng dẫn này thuộc về phần [Production Pipeline]

Phương thức mới của Houdini 17.5 trở lên là dùng Package thông qua json file, với setup tinh gọn hơn, tuy nhiên hiện tại tui làm chưa thành công, tui hướng dẫn làm cách “old school” cho các bạn là setup file Houdini.env, nó hiệu quả với tui, xong việc, tui không có thời gian làm chuyện mò mẫm IT kỹ thuật nên cái nào work là tui làm.

Cần hiểu, Houdini.env sẽ nhận diện các đường dẫn theo kiểu Linux, tức là dấu “\” trong windows sẽ trở thành “/”, thỉnh thoảng lỡ sót vẫn có thể ok, tuy nhiên nếu gặp lỗi, tốt nhất nên chỉnh đường dẫn thành kiểu Linux, ví dụ:

  • Z:\Houdini\HDA sẽ đổi thành Z:/Houdini/HDA
Cơ bản file HDA là có thể cài đè lên đường dẫn chung với đường dẫn của file mặc định HDA (trong folder home của Houdini là nếu trong Windows sẽ ở  My Document), ví dụ như trường hợp sau đây, biến MYHDA khai báo đường dẫn chứa HDA, sau đó phần mặc định quét HDA của Houdini là HOUDINI_OTLSCAN_PATH sẽ tự vào scan theo biến đã khai báo.
MYHDA = C:/Users/THOR/Houdini18.5/Myhda
HOUDINI_OTLSCAN_PATH = $HOUDINI_PATH;$MYHDA;

Đây là một file sample có khai báo biến và được để chung hết trong các node có sử dụng cùng chung Houdini version.

# GAMES DEVELOPMENT TOOLSET
GAMEDEV = "$APPDATA\SideFX\GameDevToolset\17.5\1.196"

# DIRECT MODELLING 2.1 PLUGIN
DM = "$HOUDINI_USER_PREF_DIR\DM\DM"

# MOPS PLUGIN
MOPS = "$HOUDINI_USER_PREF_DIR\MOPS"

#SHARED DIRECTORY
SHARED = "R:\ASSET_LIBRARY\Houdini"

# SHARED HDAs
SHARED_HDA = "$SHARED\HDA"
# SHARED GALLERY
HOUDINI_GALLERY_PATH = "$SHARED\gallery\"

# SHARED PRESETS
SHARED_PRESETS = "$SHARED\presets\"

HOUDINI_PATH = $HOUDINI_PATH;$MOPS;$DM;$GAMEDEV;$SHARED_HDA;$SHARED_PRESETS;&
HOUDINI_OTLSCAN_PATH = $HOUDINI_PATH;@/otls;

HOUDINI_VIEWER_STATE_VERBOSE = 0
HOUDINI_TEXT_CONSOLE = 1
HOUDINI_ACCESS_METHOD = 2
HOUDINI_WINDOW_CONSOLE = 1
HOUDINI_RAT_USAGE = 8192
HOUDINI_ENABLE_EXR_TEXTURE = 1

Access Method = 2 rất quan trọng cho môi trường network, giúp file Alembic có thể truy vấn qua mạng.

Phần nội dung của file Houdini.env trên được trích từ nguồn, cùng các chi tiết sâu thêm có thể đọc trong link: https://vfxbrain.wordpress.com/2019/11/20/hudini-env-file-on-windows/

Render Engine Trong Houdini

Cách để cài nhiều render 3rd trong cùng một phiên bản Houdini

Cùng setup với file môi trường Houdini environment. Ví dụ có Renderman và Redsfhit cùng cài đặt. Phần khai báo Path và Houdini Path sẽ cần khai 2 dòng làm một. Lưu ý kết thúc dòng sẽ là “;&”, còn kết thúc một khai báo và còn khai báo tiếp sẽ là “;”

Đầu tiên cần xem xét qua 2 render đang có trong một file Houdini.env, với setup này Houdini chỉ nhận một render đầu vào, cái nào liệt kê trước, cái đó được nhận (tức cái nào được dẫn Houdini Path đầu tiên), sau khi xem xong kéo xuống dưới sẽ thấy giải pháp gom lại làm một.

#Đây là khai báo vị trí của Renderman vào một biến tên là RMANTREE và RFHTREE
RMANTREE=C:\Program Files\Pixar\RenderManProServer-23.4
RFHTREE=C:\Program Files\Pixar\RenderManForHoudini-23.4
RMAN_PROCEDURALPATH=$RFHTREE\17.5.460\openvdb;&

#Đây chính là dòng triển khai cho Houdini biết có Renderman.
HOUDINI_PATH=$RFHTREE\17.5.460;&
PATH=$RMANTREE\bin;&

#Tương tự cho Redshift, đây là dòng khai báo render engine ở đâu
REDSHIFT_COREDATAPATH = "c:/ProgramData/Redshift"

PATH = "$REDSHIFT_COREDATAPATH/bin;$PATH"
HOUDINI_PATH = "$REDSHIFT_COREDATAPATH/Plugins/Houdini/17.5.460;&"

#Config thêm của Redshift & Renderman
REDSHIFT_RV_ALWAYSONTOP = 0
REDSHIFT_RV_OPEN_ONLY = 1
PXR_PLUGINPATH_NAME = "$REDSHIFT_COREDATAPATH/Plugins/Solaris/17.5.460"

Bây giờ sẽ triển khai thành một dòng Houdini Path và Path, vẫn giữ lại các biến

#Khai báo Renderman
RMANTREE=C:\Program Files\Pixar\RenderManProServer-23.4
RFHTREE=C:\Program Files\Pixar\RenderManForHoudini-23.4
RMAN_PROCEDURALPATH=$RFHTREE\17.5.460\openvdb;&

#Khai báo Redshift
REDSHIFT_COREDATAPATH = "c:/ProgramData/Redshift"

#Khai báo cả hai 2 cho Houdini nhận diện
PATH = "$REDSHIFT_COREDATAPATH/bin;$PATH;$RMANTREE\bin;$PATH"
HOUDINI_PATH = "$REDSHIFT_COREDATAPATH/Plugins/Houdini/17.5.460;&;$RFHTREE\17.5.460;&"

#Xong thêm các khai báo phụ trợ

REDSHIFT_RV_ALWAYSONTOP = 0
REDSHIFT_RV_OPEN_ONLY = 1
PXR_PLUGINPATH_NAME = "$REDSHIFT_COREDATAPATH/Plugins/Solaris/17.5.460"

Tư liệu trên internet để xem thêm

Video hướng dẫn với H17 và H18, từ H18 có file package setup sẽ dễ hơn.
Link: https://www.sidefx.com/tutorials/houdini-environment-setup/

Tư liệu của Houdini về Houdini Environment: https://www.sidefx.com/docs/houdini/basics/config_env.html

Tư liệu của Toadstorm hướng dẫn cài đặt file Package: https://www.toadstorm.com/blog/?p=722

Và cài đặt theo cách cũ tức config file Houdini.env https://www.toadstorm.com/blog/?p=678

Các Thao Tác Và Biến Môi Trường Cần Biết Khi Làm Việc Với Môi Trường Chia Sẻ File Dự Án

Làm việc với biến $JOB thay vì $HIP sẽ giúp các file trong môi trường mạng truy vấn dễ dàng theo vị trí được ghi nhận trong phần biến của dự án thông qua menu Edit > Aliases/Variables xong vào tab Variables. Sẽ thấy có biến JOB, Hip, HipFile

Ở đây, cũng có thể tạo thêm biến mới như khai báo đến một vị trí network drive, ví dụ như $ShareDrive, sau đó sẽ config tiếp trong môi trường Houdini.env định nghĩa vị trí của $ShareDrive như các phần trên đã xem.

Ngoài ra, dự án ở trong một folder trên mạng, khi làm việc cần truy xuất file qua $JOB

Setup Project folder là $JOB

Kiểm tra thông qua Render -> Pre Flight Scene sẽ thấy các file đã ở môi trường mạng hay chưa, còn thiếu file nào hay không.

Các node file Cache cũng cần được ghi xuống $JOB chứ không phải $HIP, bao gồm filename khi render ra, hay các vị trí lấy file HDRI làm Domelight texture.

Post Author: Vu Pham