AXIOM GPU Fluid Simulation Đã Tới Cho Houdini – Thông Qua Một Plugin

Có vẻ cuộc đua GPU simulation với chất lượng production, cinematic giờ mới bắt đầu. Dẫn đầu với Embergen và hàng loạt những tin tức tuyệt vời như là được Octane hỗ trợ tài chính, tích hợp vào render block chain của Octane, thêm nhiều tính năng như xuất VDB, sắp tới còn đang phát triển vềMesh collision từ file Alembic (.abc).

Nhưng nếu ai đang dùng các phần mềm chuyên trị về Fluid Simulation thì đều thấy Embergen chỉ mới bắt đầu cuộc chơi, thật khó để suy nghĩ rằng với một brief yêu cầu phức tạp về một vụ nổ làm ví dụ thì việc duy nhất Embergen làm được có lẽ là chỉ tạo ra các cột khói.

Hôm nay có tin tốt lành đến cho các anh chị em đam mê “vfx porn”, đó là Axiom Sparse GPU Fluid Solver, một plugin chạy trực tiếp trong Houdini, đang được thực hiện bởi FX TD làm việc tại Industrial Light & Magic, liên kết tới page: https://www.mattpuchala.com/axiom.

Mình bắt đầu cảm thấy thực kinh dị cho công việc FX TD, dường như ai cũng có thể một mình tạo ra được một solver bất cứ lúc nào, cứ sau vài năm lại có một ông tạo hẳn ra một cái solver nhằm đáp ứng nhu cầu cả cái internet. Công việc này dễ ghê, một mình một ngựa là làm được rồi. Chắc mình phải thêm vào cho bài Technical Artist đã viết là sau khi biết các công cụ và phương thức làm việc thì có thể tự tạo ra solver chạy GPU qua lăng lệ như cái video này.

Các Chức Năng Của Axiom

Cần nhớ, đây là một plugin từ đơn vị ngoài. Nếu xịn mình hy vọng Side FX acquire luôn cho tiện. Cần phải cài đặt trước khi sử dụng. 

Hiện theo Axiom, mỗi Gigabyte sẽ cho ra 8.5 triệu Voxel, để mình cho các bạn xem với cỡ này bạn tạo ra được cái gì thông qua bài test của mình với CPU. Như vậy nếu dùng GPU, thì với con card 8Gb VRam, bạn sẽ có thể có được khoảng hơn 60 triệu Voxel, tức hơn 10 cái cột khói ở dưới đó, tức là hoàn toàn một khung cảnh destruction tan nát nổ tung tóe là làm được, chưa kể còn lập trình được hàng vạn hành vi của vụ nổ bằng GPU. Tuyệt vời và ngọt ngào. 

Như vậy với GPU mới của Nvidia, các dòng RTX 30x như 3070 ti lên tới 16Gb Ram, RTX 3090 có 24Gb Ram … hơn cả ngọt ngào, không khéo tiểu đường. Xem cái thông số ở đây từ sự kiện ra mắt RTX GPU Ampere của Nvidia cùng các công nghệ hỗ trợ chơi game

8Gb VRam là có 60tr Voxel, xuất ra VDB nhé, chứ không phải view trên viewport là sụp luôn à.

cột khói cao 10 đơn vị, tỉ lệ voxel là 0.03, nhiêu đây cho 6.5 triệu voxel, thời gian sim là từ CPU, nói chung là không có nóng hổi vừa thổi vừa xơi được, ngồi test quải vì chậm trong Houdini

Axiom cũng khá tuyệt vời, nếu như GPU bị quá tải, plugin sẽ tự động chuyển qua trạng thái CPU và sử dụng Ram của hệ thống có sẵn. Tức là mình đang được nghe về Hybrid solver nhưng không phải đồng thời cùng thực hiện mà là sẽ nối được kết quả của GPU sang CPU khi cần, nên nhớ hiện nay solver chính hãng của Side FX trong Houdini, khi sim bằng GPU ra kết quả khác với sim bằng CPU. 

danh sách thuộc tính đầu vào của GPU Fluid Solver Axiom

Đúng là một sản phẩm được tạo ra từ người làm thực tế, rất thân thiện với người dùng, có một danh sách các thuộc tính volume đầu vào dành cho solver, cứ có thuộc tính là sẽ được đưa vào solver và rất mang tính chất thống kê. 

Solver có sẵn một danh sách các source shape đầu vào, tạo được noise như pyro source với attribute noise cho density, temperature, nhanh hơn thao tác với VDB đầu vào, tuy nhiên về mặt hình dạng, chắc chắn không bằng VDB.

Cùng một cách dùng như H18, các houdini và magician ưa chuộng “vfx porn” sẽ không cần phải lặn ngụp vào các network phía trong như kiểu DOP network, ngay trên một tầng SOP network là có thể tùy chỉnh định hình liền cho pyro đang được tạo ra thông qua các shape panel như turbulence, shredding, dissipation …. Nhìn là sướng, bấm cái GPU chạy luôn.

Phần combustion (nổi lữa lên em) dành cho các disaster enthusiastic person tạo ra các vụ nổ hoành tráng, ngay đó một panel riêng với các kỹ thuật pyrotechnic. 

Công thức các vụ nổ rất đơn giản, explosion sẽ cần source đầu vào là fuel để bùng cháy thông qua density (mật độ) và temperature (nhiệt độ), sau đó phần bùng nổ sẽ nở rộng (buoyancy) và hiện ra khi bị nén (compress thông qua lượng – mass) và đốt nóng.

Phần output tab của Solver sẽ cho người dùng xuất ra các attribute mong muốn, ít attribute sẽ nhanh hơn. Đây là một solver sparse, nên việc hiện thực cũng được clustering và nhìn thông qua các cách diễn họa volumetric tương tự. 

Link hướng dẫn cài đặt tại trang chủ: https://www.mattpuchala.com/axiom-installation

Có các file demo kèm theo để mọi người thử nghiệm, tại đây: https://www.mattpuchala.com/axiom

Cùng thảo luận bằng tiếng Việt về Axiom tại Fb Group https://www.facebook.com/groups/YeuFxTD

Đây là các chức năng mong muốn mà tác giả Axiom tạo ra, với nhu cầu nhanh hơn cho các dự án sử dụng pyrotechnic 

Dưới đây là demo reel của tác giả Matt Puchala – 2020

Update Từ Creator - anh Matt Puchala

Qua facebook, blog đã test thử file sample của plugin, sau đó trao đổi với kỳ tài tạo ra plugin này. Một số câu hỏi được đặt ra và nhận trả lời, mình tóm tắt sơ bộ:

  • NvLink sẽ không hoạt động cho Plugin này, cũng như đang là vấn đề của Embergen và Redshift 3D render, hiện tại Nvidia đã gỡ bỏ cơ chế hỗ trợ NvLink khỏi các dòng card RTX không phải Quadro của mình. Nên các ứng dụng khi thực hiện tác vụ trên GPU qua các card không phải Quadro chỉ share được tốc độ thực thi của GPU chứ không share được bộ nhớ, cho dù dùng SLi NvLink, có vẻ đây là một chiến lược kinh tế của Nvidia để những người dùng chuyên nghiệp, không chơi game, bắt buột phải sử dụng dòng chip Quadro của hãng.
  • Việc thực hiện Axiom GPU fluid dynamic solver này là free, cũng như sẽ không cam kết việc thực hiện sửa lỗi, duy trì đảm bảo về thời gian hay kỹ thuật là bắt buột, thích thì làm, đó là lý do nó free chứ không bán.
  • Sau khi được hỏi, làm được GPU fluid dynamic solver này cho pyrotechnic thì liệu việc thực hiện cho FLIP có được không, câu trả lời rất thú vị của anh đó là: nhiệm vụ đó sẽ rất to lớn, một dự án rất lớn, nhưng thú vị và cũng có thể xảy ra. (chứng tỏ anh cũng đã có ý tưởng từ đầu về việc thực hiện solver này cho FLIP fluid nước nôi).
  • Axiom là cụm từ chỉ về kiểu sự thật giữa tiên đề để bắt đầu hay phản đề, điều này cũng có khả năng Axiom đang chỉ đến sự bắt đầu cho nhiều những sản phẩm trong tương lai được phát triển, như FLIP fluid vừa nói ở trên. Tuy nhiên chính anh trả lời nó chỉ là một cái tên, không có suy nghĩ gì. 
  • Trên Youtube của anh có một video nói về cách thực hiện để việc lấy mẫu sampling khởi tạo của VDB trên C++ được nhanh chóng hơn so với hiện tại Houdini thực hiện, với đề cập đó anh cho biết vài chức năng đã được đưa lên Youtube có trong Solver này. Link Youtube.

Thật là lý thú và rất thích khi được sử dụng một GPU solver thực sự cho fluid dynamic như khói lữa, mặc dù Houdini có OpenCL tuy nhiên việc click vào cái nút đó không có ý nghĩa lắm về tốc độ so với Axiom plugin.

Đó cũng là điều thắc mắc mình hỏi Matt Puchala thêm về việc, có vẻ như một mình anh tạo ra được một GPU solver mà tại sao Side Effects đã từ rất lâu, không tạo ra được cho Houdini. Trong khi cần phải biết, tận từ 10 năm trước thì Industrial Light & Magic đã có phiên bản simulation hoàn toàn bằng GPU dành riêng cho hãng dựa trên giao diện tương tự Houdini gọi là Plume, như video dưới đây

Từ những năm 2006, tại Siggraph 2006 thì công ty Scanline VFX đã cho biết về GPU fluid solver chuyên về nước của hãng (lúc này Real Flow cũng đang rất thịnh hành trên thị trường thương mại đến người dùng cuối và doanh nghiệp). Công nghệ và phần mềm này được tạo ra gọi là Flowline, được rất nhiều artist đồn đoán, cũng như những ai đã sử dụng rồi đều khen lấy khen để, cho đến hiện nay thì đó vẫn là tool chính làm các show về nước của Scanline VFX, chạy bằng GPU. 

Và một công ty ở Anh rất lớn liên tục thắng nhiểu giải về kỹ xảo hình ảnh của hiệp hội điện ảnh, đó là Double Negative hay còn gọi là DNEG, họ có một sản phẩm riêng đã từng được vinh danh về khoa học kỹ thuật, đó là Squirt, có khả năng thực hiện nước nôi, và các hiệu ứng pyro khói lữa, nhưng không dừng ở đó, các solver này tất cả đều là chạy trên simulation farm GPU, thực hiện tác vụ bằng GPU thông qua nhân CUDA của Nvidia. 

Và công cụ tên Squirt này cũng tồn tại từ những 10 năm trước. Trong phim Interstellar đã dùng Squirt Ocean cho các FX thực hiện về nước, còn dưới đây là khói lữa large scale được tạo ra từ Squirt.

Đây là một đoạn show reel từ những năm 2011, DNEG khoe hàng về fluid simulation của họ, được thực hiện từ Squirt. 

Mình tự hỏi, vậy từng ấy năm, liên tục làm việc với các hãng lớn, Side Effects đã không ngừng kiến tạo công cụ của mình trở thành một công cụ hết sức kỹ thuật, chỉ dành cho dân nerd về vfx, nay đã trở thành một công cụ không thể thiếu trong lĩnh vực phát triển kỹ xảo hình ảnh cho điện ảnh, video games, truyền hình, vậy sao tới giờ phần GPU solver (Open CL) lại quá sức non trẻ và có vẻ như cũng chả gì là đặc sắc so với CPU ? 

Các Bài Viết Khác

Post Author: Vu Pham