Simulación de un mundo en la GPU
4 mil millones de años en 4 minutos
- Este artículo trata sobre la implementación de una simulación procedural de la Tierra escrita con un fragment shader en GLSL
- Simula en unos minutos toda la historia de un planeta similar a la Tierra, actualizándose a 60 cuadros por segundo
Planeta primitivo
- La historia comienza hace 4.5 mil millones de años, con una masa de lava
- La Tierra temprana era un planeta primitivo rojo y caliente debido a los impactos de asteroides
- La altura del terreno se calcula mediante un mapa de relieve generado proceduralmente
- Se generan cráteres de impacto de asteroides de distintos tamaños, y con ellos se determina la elevación del terreno
- Los cráteres de asteroides se generan en una cuadrícula 3D y se usa una función hash para darles irregularidad
- El mapa de alturas generado al final recrea el aspecto de la Tierra primitiva
Tectónica de placas
- Se usa un modelo de tectónica de placas para formar cordilleras, fosas oceánicas y relieve continental
- Las posiciones semilla de las placas se generan aleatoriamente con velocidades iniciales, y las placas crecen con el tiempo
- Cuando ocurren colisiones en los límites de placas, aumenta la elevación del terreno
- Estas colisiones se difunden a los píxeles cercanos mediante un modelo de erosión térmica
Erosión hídrica
- El aspecto accidentado del relieve natural está determinado en gran parte por la formación de cuencas fluviales
- Se usa un modelo capaz de simular ríos incluso en mapas de relieve de baja resolución
- Cada píxel revisa los 8 píxeles vecinos y el agua fluye en la dirección de la pendiente más pronunciada
- La erosión está impulsada por la ley de potencia del flujo
- La interacción entre el flujo de agua y la erosión forma cuencas fluviales naturales
Clima global
- La simulación del sistema climático se basa en un mapa de presión media al nivel del mar (MSLP)
- El mapa MSLP recibe la influencia de la ubicación de la tierra y los océanos, así como de la latitud
- El mapa MSLP se ajusta para que los patrones climáticos cambien con las variaciones estacionales
- A partir de MSLP se generan el viento y la temperatura
- El viento se desplaza de alta presión a baja presión, considerando el efecto Coriolis
- La precipitación se desplaza del océano hacia la tierra a través del campo vectorial del viento
Vida
- El clima influye en la distribución de la vida en el planeta
- Los patrones de precipitación y los cambios de temperatura determinan la velocidad de crecimiento de las plantas
- Herbívoros y depredadores migran según los cambios estacionales
- Se usa un modelo de difusión de Lotka-Volterra para simular estas dinámicas
Humanidad
- Tras el prólogo de la Tierra temprana, la humanidad coloniza la superficie del planeta
- Quema combustibles fósiles y libera carbono a la atmósfera
- A lo largo de varios siglos, la humanidad consume todos los recursos de combustibles fósiles y libera 5 billones de toneladas de carbono a la atmósfera
- Como resultado, se intensifica el efecto invernadero y la temperatura media global de la Tierra aumenta unos 10 grados
- Amplias zonas alrededor del ecuador se vuelven inhabitables para los humanos debido a temperaturas extremas
Resumen de GN⁺
- Este artículo explica en detalle el proceso de implementación de una simulación procedural de la Tierra
- Usa fragment shaders en GLSL para simular relieve, tectónica de placas, erosión hídrica, clima, vida y más
- Simula el impacto de la actividad humana sobre el entorno terrestre para generar conciencia
- Como proyectos con funciones similares, se recomiendan "SimEarth" y "Universe Sandbox"
1 comentarios
Opiniones de Hacker News