Thuật toán đám mây thời gian thực


7

Tôi muốn biết làm thế nào thuật toán hoạt động trong trò chơi này: http://www.gametrailers.com/user-movie/cloud-the-game/45068

Đặc biệt là cách trò chơi tạo ra đám mây thời gian thực và có thể hợp nhất với các đám mây khác một cách linh hoạt.

Tôi đã cố gắng google một số thông tin, nhưng không thể tìm thấy thông tin hữu ích. Có lẽ bởi vì tôi đã sử dụng sai từ khóa

Câu trả lời:


13

Kết xuất đám mây là nhiệm vụ khó khăn. Nhưng những đám mây trong video chỉ là một vài hạt "mây". Tôi không nghĩ rằng đó là một cái gì đó tốt đẹp :)

Đối với vấn đề đám mây đẹp không phải là mô phỏng đám mây, mà là kết xuất đám mây, không thể xử lý để trở thành hình ảnh thực tế trong thời gian thực cho cảnh với ánh sáng động. Điều gì xảy ra trong các phương tiện tham gia như đám mây là: nhập mô tả hình ảnh ở đây

Sự phát xạ ánh sáng chỉ tồn tại khi phương tiện tham gia phát ra ánh sáng (như khí nóng hoặc lửa) hoặc khi chúng được chiếu sáng (đây là phần tương tự với kết xuất bình thường), sự hấp thụ có nghĩa là ánh sáng bị hấp thụ và tán xạ là vấn đề tính toán lớn nhất. Ánh sáng bị tán xạ bên trong âm lượng. Sau đó, bạn muốn có bóng tự và bóng tối phát ra mặt đất và cảnh mờ đục. Làm thế nào để làm nó?

Lấy mây ở đâu? Đám mây có thể được mô phỏng bởi tiếng ồn perlin. Nó rất phổ biến và trông đẹp. Tiếng ồn Perlin có thể là 4D, trong đó chiều thứ 4 là thời gian để tạo ra các đám mây động đẹp. Nếu bạn muốn chỉ định hình dạng đám mây: bạn phải thực hiện biến đổi trên các hình dạng mong muốn, lưu nó dưới dạng lưới 3D mật độ và nhân nó với perlin.

Làm thế nào để kết xuất nó

Bằng cách kết xuất các hạt? . Đám mây hạt là có thể. Đó là phương pháp đơn giản nhất. Tuy nhiên, mô phỏng bất kỳ sự lan truyền ánh sáng nào giữa các hạt là khá khó. Một điều rất điển hình là bạn phải sắp xếp các hạt theo hướng xem của camera (hay còn gọi là nửa trục giữa camera-dir và light-dir). Điều này là không thể trong ứng dụng thời gian thực trừ khi nền tảng đích của bạn không hỗ trợ mô hình shader 4 hoặc mô hình shader 5 tốt hơn - và tính toán gpgpu (như cuda, openCl hoặc tính toán trực tiếp) - vì vậy bạn có thể viết các hạt sắp xếp song song và sắp xếp các hạt theo từng khung (điều đó sẽ là thời gian thực). Sắp xếp là cần thiết để trộn alpha và cũng cho ánh xạ bóng thông minh.

Tôi sẽ hướng dẫn bạn một số bài viết:

Bằng phương pháp chiếu tia thể tích . Phương pháp chiếu tia thể tích có nghĩa là bạn có lưới nơi bạn đã thực hiện mô phỏng chất lỏng (điển hình là Navier-Strokes, nhưng hình dạng đám mây được voxelized cũng ok). Và bắn tia cho mọi pixel thông qua âm lượng và tích hợp bức xạ trên tia. Điều này là cực kỳ OK cho các ứng dụng thời gian thực . Phát sóng trên wiki. Bạn không cần phải có máy tính gpgpu. Chiếu tia thể tích có thể được thực hiện trên pixel shader, vì nó không cần bất kỳ sự đồng bộ hóa nào giữa các luồng (tia). Có lưới trong kết cấu 3D là hoàn hảo trên phần cứng đồ họa, bởi vì bạn có thể hưởng lợi từ phép nội suy ba tuyến tính gốc của đơn vị kết cấu. Tự tạo bóng có thể được thực hiện bằng cách bắn tia từ mọi mẫu tới ánh sáng và đếm mật độ của khối lượng bóng sáng. Điều này là chậm. Bạn có thể sử dụng một số ánh xạ bóng với các hiệu ứng chuyển tiếp (như bản đồ bóng sâu). Sự tán xạ ánh sáng cũng không thể thực hiện được trong thời gian thực (với gpgpu là vậy).

Chiếu tia thể tích là nhanh và dễ thực hiện hơn so với phân loại hạt và hoạt động nhanh ngay cả trên CTNH cũ.

Một cái gì đó để nghiên cứu:


Cảm ơn về thông tin chi tiết. Đối với mục đích của chúng tôi, đám mây sẽ cần biến thành hình dạng mà chúng tôi đã chỉ định. Vì vậy, tôi nghĩ rằng chúng ta có thể sử dụng lưới 3d Perlin Noise bằng cách sử dụng các hạt. Ánh sáng, thậm chí bằng phương pháp chiếu tia thể tích, có thể bị cấm, bởi vì nền tảng di động là nền tảng được trang bị của chúng tôi.
Leo

Còn các loại mây trong Lumion thì sao? Chúng không thể bay qua được, nhưng trông tuyệt đẹp. vimeo.com/12173355
George R

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.