2009-07-20 31 views
9

Tôi có thể tìm thuật toán tốt ở đâu, hoặc nơi nào là nơi tốt để bắt đầu, để thực hiện khói, lửa hoặc sương mù thời gian thực, không tương tác, trong 2D?Thuật toán khói/lửa/sương mù 2D

Tôi đã xem qua this simple onethis complex 3D one nhưng tôi đã hy vọng có điều gì đó ở giữa. Bất cứ ai biết về bất kỳ thuật toán tốt?

+0

Sẽ chấp nhận câu trả lời cho điều này? – Justicle

+0

Sau đó chọn bình chọn cao nhất. Nó không giống như bạn có thể chọn câu trả lời sai và có Thiên Chúa smite bạn với sét. – Justin

Trả lời

8

Thuật toán "ở giữa" tốt nhất được sử dụng phổ biến là hệ thống hạt.

Về cơ bản, bạn tạo một loạt các hình họa tiết và tạo hiệu ứng động theo các quy tắc đơn giản. Với các thông số và kết cấu phù hợp, bạn tạo ra khói khi nó được thực hiện chỉ trong mọi trò chơi được xuất bản.

của nó một chút của một nghệ thuật đen nhận được điều đó đúng, nhưng có vô số nguồn lực cho việc bắt đầu nếu bạn biết where to look.

+3

Liên kết đầu tiên đã chết. Đã chuyển đến đây có thể ?: http://people.csail.mit.edu/acornejo/Projects/html/smoke.htm – Justin

+2

Liên kết vẫn chết ... – gregoiregentil

+0

Chỉ cần xóa hoàn toàn. – Justicle

1

Hầu hết các hiệu ứng lửa/khói là những hệ thống hạt. Tôi bắt đầu ở đó và sau đó cố gắng làm cho nó thực tế hơn thông qua việc điều chỉnh sự ngẫu nhiên. Chơi với hình dạng của ngọn lửa, cách màu mất dần, các phần hướng của nó di chuyển.

Không có nhiều ở giữa. Hoặc là nó có vẻ là tinh chỉnh một hệ thống hạt, hoặc thực sự delving vào nhiệt độ và luồng không khí. Here's một dự án đào sâu vào nhiệt độ/luồng không khí.

+0

Ví dụ đầu tiên là không có gì giống như một hệ thống hạt - thuật toán dựa trên hình ảnh "lửa" của trường học cũ. – Justicle

+0

Ah, tôi đã không thực sự đọc mã, tôi không nên vội vàng, xin lỗi. – McAden

4

This bài viết của Hugo Elias mô tả một biến thể khá đẹp về hiệu ứng lửa 2D truyền thống. Nó khá đơn giản và trông khá tốt.

+0

+1 Ah đưa tôi trở lại. – Justicle

4

Đồng tác giả của liên kết thứ hai (Jos Stam) có bài báo tập trung nhiều trò chơi hơn Real-Time Fluid Dynamics for Games. Khá dễ đọc và bạn có thể giữ nó ở ví dụ 2d.