Sử dụng Phần shelf tool khi học và sử dụng Houdini sẽ tự động tạo ra một hệ thống node liên kết để tạo ra các hiệu ứng physical simulation dành cho chất lỏng, liquid fluid. Hệ thống xử lý solver dựa trên phương thức tính toán chất lỏng FLIP.
Trong Houdini FLIP fluid, một simulation luôn có phần hạt particle
và các volume field surface
, vel
. Các tạo tác nâng cao biến hình đều do xử lý với các field đã được cung cấp, ngay cả việc làm cho các field trở nên giàu dữ liệu hoặc trở thành các collision object cũng do thông qua các chuỗi liên kết VDB chain
như dialate, smooth, reshape.
Phương thức FLIP là cách tạo ra các mô hình simulation chất lỏng thông qua sử dụng dữ liệu particle, phần tính toán chuyển động dựa trênh cơ học Lagarangian xử lý trên một cái grid – chính cái grid này là volume, Houdini gọi là phương pháp projection tạo pressure
các hạt particles. Phần tính toán simulation này sẽ nằm bên trong một khung thời gian Time Step.
Khoảng cách của hạt sẽ được định dạng theo giá trị particles separation
, khoảng cách này các ngắn, số lượng hạt sẽ nhiều hơn, simulation càng chuẩn, đẹp, thời gian simulation tăng. Đồng thời giá trị Grid Scale
sẽ mang lại tỉ lệ resolution có cho một tác vụ simulation. Grid Scale đóng vai trò là volume field projection các hạt theo mô hình chuyển động, phần voxel này càng nhiều thì tính toán càng chi tiết, giá trị này sẽ bắt đầu ở giá trị 2
, càng tăng resolution tức là hạ giá trị này xuống 1.5 ~ 1.2 ~ .95. Resolution càng cao thì thời gian simulation càng lâu, xử lý nặng, tính toán càng chuẩn xác, tạo hình đẹp.
Một cái simulation trong Houdini sẽ luôn bao gồm:
- Pre-solve – các dữ liệu đầu vào sẽ được xử lý ở đây trước khi đưa vào tính toán
- Solver – xử lý các force, khi nhận được force solver sẽ tạo ra các tính toán
simulation
tạo ra velocity - Post solve – xử lý các dữ liệu đầu cuối sau khi đã simulation, ví dụ như sẽ remove các velocity đã tạo ra
Force và Velocity trong simulation. Sử dụng force thường hơn là dùng velocity bên trong một solver.
Force là giá trị gia tăng nhằm làm cho các velocity sẽ bị ảnh hưởng, velocity là các vector có tốc độ và có hướng – theo toán học là có đại lượng magnitude và có direction. Một cái xe khi di chuyển sẽ có tốc độ và hướng đi, tuy nhiên không có force thì velocity của xe sẽ tiến về 0 dần, tức chậm dần. Cũng tương tự, để có thể làm cho mặt nước chuyển động bên trong FLIP solver, ta thêm vào Force tạo ra từ Ocean Spectra, lúc này FLIP solver sẽ tạo các bề mặt sóng di chuyển là bản chất của các hạt có velocity tốc độ và hướng di chuyển.
Phần Tank Simulation – Kiểu Bồn Chứa Chất Lỏng
Guided Ocean Layer – Lớp điều hướng bởi Ocean (Ocean tool của Houdini, tinh chỉnh Ocean Spectra cho có sóng)
Tạo ra một lớp FLIP particle ngay trên bề mặt surface của biển – ocean. Lớp FLIP particle này sẽ ở phía trên đối tượng collision nhiều hay ít hơn theo hình thể của biển (hiểu như một kiểu deform vị trí các hạt FLIP particle theo deform vị trí của ocean spetra cung cấp vào). Toàn bộ phần simulation chỉ xảy ra với lớp surface bề mặt trên của biển.
Wave Tank – Bồn chứa sóng
Sẽ làm đầy toàn bộ bồn chứa với các hạt FLIP particles. Simulation sẽ xử lý tính toán toàn bộ bồn chứa hạt FLIP particles.
Beach Tank – Bồn chứa kiểu bãi biển
Làm đầy toàn bộ bồn chứa bằng hạt FLIP particles, tuy nhiên không bao gồm phần có địa hình (ví dụ như bãi biển..). Việc simulation sẽ xảy ra đồng thời toàn bộ bồn chứa hạt.
Flat Tank – Bồn chứa phẳng
Làm đầy toàn bộ bồn chứa hạt FLIP particles. Simulation sẽ tính toán toàn bộ bồn chứa.
Ocean Flat Tank – Bồn chứa kiểu biển mặt phẳng
Làm đầy toàn bộ bồn chứa hạt FLIP particles. Simulation sẽ tính toán toàn bộ bồn chứa
Waves – Chức Năng Sóng
Guided Ocean Layer – Lớp điều hướng bởi Ocean (Ocean tool của Houdini, tinh chỉnh Ocean Spectra cho có sóng)
Sẽ ghi nhận tất cả velocity của node Ocean Spectrum để tạo ra các loại sóng được simulation liên tục.
Wave Tank – Bồn chứa sóng
Chỉ có được đợt sóng đầu tiên. Sau vài frame được xử lý, toàn bộ simulation sẽ bắt đầu bị lệch dần khỏi các dữ liệu ocean spectrum đưa vào. Tuy nhiên các velocity ghi nhận ở phần biên boundary sẽ luôn giữ được năng lượng duy trì trên bề mặt surface.
Beach Tank – Bồn chứa kiểu bãi biển
Ghi nhận velocity từ ocean spectrum để tạo ra các sóng điều hướng theo chiều dài của bể chứa (cụ thể là đánh sóng biển vào bờ…)
Flat Tank – Bồn chứa phẳng
Không có bất cứ sóng nào, tuy nhiên sẽ tương tác với các object, cụ thể là các collision
object
Ocean Flat Tank – Bồn chứa kiểu biển mặt phẳng
Không có sóng, sẽ tương tác với các collision
objects. Sử dụng native Houdini ocean spectra với shader của Mantra để tạo ra sóng bề mặt khi render (displacement).
Tracking – Kiểu Di Chuyển Theo Object, Ví dụ Làm Các Con Sóng Theo Tàu
Guided Ocean Layer – Lớp điều hướng bởi Ocean (Ocean tool của Houdini, tinh chỉnh Ocean Spectra cho có sóng)
Hoàn toàn di chuyển theo các đối tượng di chuyển.
Wave Tank – Bồn chứa sóng
Hoàn toàn di chuyển theo các đối tượng di chuyển.
Beach Tank – Bồn chứa kiểu bãi biển
Không di chuyển theo các đối tượng di chuyển.
Flat Tank – Bồn chứa phẳng
Hoàn toàn di chuyển theo các đối tượng di chuyển.
Ocean Flat Tank – Bồn chứa kiểu biển mặt phẳng
Hoàn toàn di chuyển theo các đối tượng di chuyển.
Sử Dụng Trong Các Trường Hợp Nào
Guided Ocean Layer – Lớp điều hướng bởi Ocean (Ocean tool của Houdini, tinh chỉnh Ocean Spectra cho có sóng)
Sử dụng khi các đối tượng ở mặt nước nông, di chuyển trên mặt nước, ví dụ như tàu đi trên mặt biển.
Wave Tank – Bồn chứa sóng
Sử dụng đơn giản theo kiểu diễn tả biển, lúc này không cần phải tạo hình cho biển hay các chuyển động của biển.
Beach Tank – Bồn chứa kiểu bãi biển
Tiện lợi để tạo ra bãi biển hoặc các kiểu mô hình mặt nước nông có địa hình gần bờ.
Flat Tank – Bồn chứa phẳng
Có thể dùng trong mọi trường hợp mặt nước yên tĩnh (như kiểu hồ…) hoặc sử dụng cho các trường hợp mà mặt nước bị khuấy động lớn kiểu cá voi lao khỏi mặt nước, vật gì đó rơi xuống nước, người đi trong nước.
Ocean Flat Tank – Bồn chứa kiểu biển mặt phẳng
Hữu dụng khi dùng để tương tác với các vật thể to lớn và nhanh hơn rất nhiều so với chuyển động của sóng. Phần displacement hình ảnh sóng có thể được để vào khi sử dụng Mantra shader kiểu displacement.