Để kết xuất khí, tôi nghĩ cách tiếp cận thông thường là chỉ đơn giản là kết xuất mỗi hạt dưới dạng một đĩa nhỏ. Khí không thực sự kết lại vào các bề mặt như chất lỏng, vì vậy điều này sẽ tạo ra kết quả chấp nhận được. Bạn có thể có thể áp dụng một vệt mờ trên lớp khí sau đó để làm mềm nó và che giấu sự thật rằng nó được làm từ các yếu tố rời rạc.
Mặt khác, chất lỏng có xu hướng kết hợp lại với nhau để tạo thành các giọt và bề mặt nhẵn, vì vậy bạn cần lấy một bề mặt từ các hạt bằng cách nào đó. Một cách để làm điều này là sử dụng Metaballs , cũng hiển thị hành vi này và có thể được điều chỉnh để phù hợp với các chất lỏng và mật độ hạt khác nhau. Bằng cách giải thích mỗi hạt là một metaball, bạn sẽ có một phương trình ngầm biểu thị bề mặt chất lỏng của bạn. Để hiển thị bề mặt ẩn này, sau đó bạn có thể sử dụng thuật toán như Marching Tetrahedra để chuyển đổi nó thành hình tam giác hoặc sử dụng Ray Marching để trực tiếp kết xuất nó. (Diễu hành Ray có thể dễ dàng thực hiện trong thời gian thực trong một shader mảnh trong những ngày này.) Bạn cũng có thể sử dụng phương pháp này cho khí nếu bạn muốn có một cái nhìn nhẹ nhàng hơn.