1 điểm bởi GN⁺ 2024-07-30 | 1 bình luận | Chia sẻ qua WhatsApp

Mô phỏng thế giới trên GPU

4 tỷ năm chỉ trong 4 phút

  • Bài viết này nói về việc triển khai một mô phỏng Trái Đất thủ tục được viết bằng fragment shader GLSL
  • Mô phỏng toàn bộ lịch sử của một hành tinh tương tự Trái Đất chỉ trong vài phút, cập nhật ở tốc độ 60 khung hình/giây

Hành tinh nguyên thủy

  • Câu chuyện bắt đầu từ 4,5 tỷ năm trước, khi hành tinh là một khối dung nham
  • Trái Đất thời kỳ đầu là một hành tinh nguyên thủy đỏ rực và nóng bỏng do các va chạm tiểu hành tinh
  • Tính toán độ cao địa hình thông qua bản đồ địa hình được tạo theo phương pháp thủ tục
  • Tạo các hố va chạm tiểu hành tinh với nhiều kích thước khác nhau, từ đó xác định độ cao địa hình
  • Các hố va chạm được tạo trong lưới 3D và dùng hàm băm để tạo sự bất quy tắc
  • Bản đồ độ cao được tạo ra cuối cùng tái hiện diện mạo của Trái Đất thuở ban đầu

Kiến tạo mảng

  • Sử dụng mô hình kiến tạo mảng để hình thành núi, rãnh sâu và địa hình lục địa
  • Tạo ngẫu nhiên vị trí seed của các mảng với vận tốc ban đầu, rồi các mảng phát triển theo thời gian
  • Khi va chạm xảy ra ở ranh giới mảng, độ cao địa hình tăng lên
  • Va chạm này lan sang các pixel xung quanh thông qua mô hình xói mòn nhiệt

Xói mòn thủy lực

  • Vẻ gồ ghề của địa hình tự nhiên chủ yếu được quyết định bởi sự hình thành các lưu vực sông
  • Sử dụng một mô hình có thể mô phỏng sông ngay cả trên bản đồ địa hình độ phân giải thấp
  • Mỗi pixel kiểm tra 8 pixel xung quanh để nước chảy theo hướng dốc lớn nhất
  • Xói mòn được thúc đẩy bởi định luật stream power
  • Tương tác giữa dòng nước và xói mòn tạo nên các lưu vực sông tự nhiên

Khí hậu toàn cầu

  • Mô phỏng hệ thống khí hậu dựa trên bản đồ áp suất mực nước biển trung bình (MSLP)
  • Bản đồ MSLP chịu ảnh hưởng bởi vị trí đất liền, đại dương và vĩ độ
  • Điều chỉnh bản đồ MSLP để các kiểu khí hậu thay đổi theo mùa
  • Tạo gió và nhiệt độ dựa trên MSLP
  • Gió di chuyển từ vùng áp cao sang vùng áp thấp, có xét đến hiệu ứng Coriolis
  • Lượng mưa di chuyển từ đại dương vào đất liền thông qua trường vector gió

Sự sống

  • Khí hậu ảnh hưởng đến phân bố sự sống trên hành tinh
  • Mô hình mưa và biến đổi nhiệt độ quyết định tốc độ sinh trưởng của thực vật
  • Động vật ăn cỏ và động vật săn mồi di chuyển theo biến đổi theo mùa
  • Sử dụng mô hình khuếch tán Lotka-Volterra để mô phỏng những thay đổi động này

Loài người

  • Khi phần mở đầu của Trái Đất sơ khai kết thúc, loài người bắt đầu thuộc địa hóa bề mặt hành tinh
  • Đốt nhiên liệu hóa thạch và thải carbon vào khí quyển
  • Trong vài trăm năm, loài người tiêu thụ toàn bộ tài nguyên nhiên liệu hóa thạch và thải 5 nghìn tỷ tấn carbon vào khí quyển
  • Điều này làm hiệu ứng nhà kính mạnh lên và nhiệt độ trung bình của Trái Đất tăng khoảng 10 độ
  • Những vùng rộng lớn quanh xích đạo trở nên không thể sinh sống do nhiệt độ cực đoan

Tổng hợp của GN⁺

  • Bài viết này giải thích chi tiết quá trình triển khai mô phỏng Trái Đất thủ tục
  • Sử dụng fragment shader GLSL để mô phỏng địa hình, kiến tạo mảng, xói mòn thủy lực, khí hậu, sự sống và hơn thế nữa
  • Mô phỏng tác động của hoạt động con người lên môi trường Trái Đất để gióng lên hồi chuông cảnh tỉnh
  • Các dự án có chức năng tương tự được khuyến nghị gồm có "SimEarth" và "Universe Sandbox"

1 bình luận

 
GN⁺ 2024-07-30
Ý kiến trên Hacker News
  • Truyện ngắn "I don't know, Timmy, being God is a big responsibility" có đề cập đến chủ đề mô phỏng thế giới
  • Giả định rằng nếu một nền văn minh có ánh sáng về đêm thì sẽ đốt hết nhiên liệu hóa thạch và bị sa mạc hóa chỉ dựa trên quỹ đạo văn minh của chúng ta
    • Cũng có những khả năng khác như chiến tranh hạt nhân, phát triển nhiệt hạch sạch, đại dịch, xâm lược từ hành tinh ngoài Trái Đất
    • Việc nhiệt độ tăng bị đồng nhất với khô hạn, và chưa tính đến tác động của CO2 bổ sung lên thực vật
  • Năm 1996/1997 đã phát triển một trò chơi CD-ROM mô phỏng chuyển động kiến tạo mảng, nhiệt độ, độ cao và lượng mưa
    • Thật đáng kinh ngạc khi nhìn lại sự phát triển của phần cứng và phần mềm tính toán trong 28 năm qua
  • Cuốn sách hard SF "Permutation City" có liên quan rất sâu đến chủ đề này
    • Khi đọc tiêu đề bài viết này đã có cảm giác như đang mơ
  • Ở đại học, trong lớp phân tích chính sách năng lượng, đã dùng mô hình EPPA do MIT phát triển để chạy các mô phỏng như giảm chi phí lưu trữ năng lượng xuống còn 1/10
    • Rất thú vị, nhưng không tìm được công việc tương tự ở nơi làm việc
  • Có nhắc rằng một số chi tiết đã bị lược bỏ trong mô phỏng
  • Thắc mắc vì sao chỉ dùng fragment shader
    • Nếu dùng thêm vertex shader cho height map thì có thể phóng to xuống tận bề mặt
  • Ví dụ Shadertoy trên trang chỉ chạy ở 0.6 FPS, nhưng trên website Shadertoy thì chạy tốt ở 60 FPS
  • Đôi khi tự hỏi cảm giác sống trong một vũ trụ mô phỏng sẽ như thế nào
  • Nhạc đi kèm toàn bộ video nghe rất quen, nhưng không biết nguồn gốc từ đâu
    • Cũng có thể là nhạc do AI tạo ra