[JUEGO] Juegos de Slitherine y Matrix Games
Cita
Diario Dev #3 - Renderizado en Distant Worlds 2

Hola a todos. Mi nombre es Elliot Gibbs y soy uno de los desarrolladores de Distant Worlds 2. Este artículo tiene un enfoque ligeramente diferente a los anteriores. Te dará una visión de lo que se cuece entre bastidores respecto a una pequeña parte del juego pero con un papel importante: el entorno natural de la galaxia Distant Worlds.

Si bien este artículo es más técnico, te ayudará a ver lo que hay "bajo el capó". Te dará una idea de cómo hemos resuelto algunos de los problemas a los que nos hemos enfrentado en un juego tan inmenso como Distant Worlds 2.

[Imagen: 59ebe2a7781e6e78593dfcfad9ad851aa678626a.jpg]

[u]Renderizado versus arte hecho a mano[/u]

¿Qué es el renderizado? Básicamente es dibujar varias partes del juego sin utilizar recursos artísticos hechos a mano. En otras palabras, un elemento se representa en la pantalla sin utilizar modelos o imágenes creados por artistas. En su lugar, el elemento se dibuja utilizando solo las instrucciones del software; o sea, se representa en código.

Puede que eso no suene muy útil. ¿Por qué te molestarías en escribir una gran cantidad de código para dibujar algo en lugar de simplemente hacer que un artista haga un modelo 3D o 2D?

Eso depende de lo que estés dibujando y de la cantidad de elementos diferentes que se deban dibujar.

[Imagen: 3ce893769c14a7e1ec797233361a0734b054db20.jpg]

Al modo antiguo: el entorno galáctico en DW1

Como probablemente apreciarás, en Distant Worlds hay un vasto entorno galáctico, lleno de muchos elementos a explorar y descubrir: estrellas, planetas, lunas, agujeros negros, nebulosas y muchos otros.

En Distant Worlds 1 (Universo y anteriores), estos elementos eran en su mayoría imágenes 2D dibujadas a mano: había un conjunto de imágenes de planetas desérticos, otro conjunto de imágenes de planetas oceánicos, un conjunto de imágenes de nebulosas, etc. Eran alrededor de 250 imágenes solamente para planetas. ¡Así que había muchas imágenes dibujadas a mano!

[Imagen: 9f8b4b7152d4034b3ba089741b3ff325ecfa7c42.jpg]

La ventaja del arte estático dibujado a mano es que puede tener detalles muy específicos en las imágenes. Por ejemplo, podrías tener una imagen del planeta Tierra en el juego, con los continentes, islas y océanos que tan bien conocemos.

Sin embargo, existen grandes inconvenientes con el arte estático:

-Las imágenes 2D y los modelos texturizados tienen un límite de resolución que está restringido por la memoria, por lo que cuando se amplía su apariencia puede volverse borrosa o pixelada
-Hay que dibujar cada imagen o textura a mano, lo que limita la cantidad de variaciones que puedes tener de manera realista. Aunque las herramientas pueden ayudar a automatizar la generación de algunas imágenes, aún tienes que almacenarlas y cargarlas en el juego, lo que puede requerir mucha memoria y almacenamiento.

El renderizado  es la alternativa a la creación de una masa ingente de imágenes dibujadas a mano. Significa escribir software que sepa cómo dibujar un elemento en particular. Con ese software, posteriormente, podremos dibujar tantas variaciones de este elemento como sean necesarias, ajustando los parámetros para realizar cambios en su apariencia.

[Imagen: 89f2ed891430035131d49e8dbb4c235fc60bd202.jpg]

Haciéndolo a la manera DW2, nueva y mejor.

En Distant Worlds 2, casi todo el entorno galáctico está renderizado. Eso significa que usamos un mínimo de arte hecho a mano para dibujar las estrellas, planetas, lunas, agujeros negros o nubes nebulosas en el juego.

En su lugar, hay un conjunto de programas de sombreado personalizados (shader) que saben cómo dibujar cada uno de estos elementos:

-un sombreador de estrellas que puede dibujar coronas brillantes de gas y plasma semitransparentes
-varios sombreadores que dibujan planetas con superficies sólidas: algunos con muchas montañas, otros con océanos profundos, otros con lagos de lava resplandecientes
-un sombreador que dibuja planetas con superficies gaseosas con bandas de colores y tormentas arremolinadas
-otro sombreador dibuja agujeros negros
-otros sombreadores dibujan nebulosas

[Imagen: c80a49188ffd5fb3498475e560b310b52f201c02.jpg]

¿Como funcionan?

En el núcleo de estos sombreadores hay un concepto llamado ruido fractal. El ruido fractal se refiere a un conjunto de valores aleatorios especiales que se ajustan para dibujar un entorno natural de manera realista.

El ruido fractal es un ámbito enorme, así que entraré en detalles aquí. Pero, ¿cómo funcionan estos sombreadores? ¿Qué proceso siguen y qué nos permiten hacer?

-en primer lugar, utilizan el ruido fractal para hacer un mapa de altura único para cada planeta, lo que nos permite generar montañas, valles, llanuras, costas y terrenos subacuáticos.
-aplica sombras de la luz del sol en las montañas y colinas para proporcionar un realismo sutil al terreno
-si el planeta está poblado, agrega luces nocturnas de ciudades que siguen la geografía natural del planeta, prefiriendo áreas bajas y costeras (incluidas ciudades submarinas en regiones costeras poco profundas)
-proporciona características emisoras de luz como lagos de lava y océanos
-agrega capas de nubes con sistemas de tormenta animados y sombras en el planeta de abajo
-permite características específicas de latitud: casquetes polares, cinturones de jungla ecuatorial, desiertos...
-permite terrenos específicos de altitud: cimas nevadas, valles boscosos, llanuras cubiertas de hierba, áreas costeras, plataformas continentales submarinas poco profundas, cuencas oceánicas profundas, etc.

[Imagen: f57a610da1415ac37904b772e090e2f8ece1cfae.jpg]

Por lo tanto, los sombreadores brindan una gran mejora al renderizar el entorno natural en Distant Worlds, dándonos una variedad y un nivel de detalle increíble. Las ventajas del renderizado abordan directamente las debilidades del sistema de imágenes estáticas que teníamos en DW1:

-debido a que los programas de sombreado operan en cada píxel de la pantalla, no hay límite de resolución. Puede seguir acercándose a un elemento sin que se vea borroso o sin pérdida de calidad.
-al variar los parámetros de entrada para cada sombreador, puede obtener una variedad casi infinita para un elemento, por lo que cada planeta en DW2 es único y distinto al resto.
-debido a que no se necesitan imágenes o texturas estáticas, hay una reducción drástica en los requisitos de memoria y almacenamiento.

[Imagen: 66f2279ea62ae29e1b9a3d0df1864c5b95d80090.jpg]

Una galaxia viva y animada

El renderizado también habilita otra característica: la animación. El ruido fractal utilizado en los sombreadores puede ser multidimensional, por lo que puede utilizar una de las dimensiones para representar el cambio a lo largo del tiempo. Esto le permite animar sin problemas las cosas que dibuja. Por ejemplo, tenemos lo siguiente en Distant Worlds 2:

-capas de nubes en planetas que se mueven y cambian.
-coronas de estrellas con prominencias que suben y bajan
-planetas gigantes gaseosos con superficies de nubes animadas
-nebulosas que cambian suavemente con el tiempo
-agujeros negros con remolinos de luz y energía

Por lo tanto, el renderizado ayuda a dar vida a la galaxia de Distant Worlds, con movimiento y actividad incluso en el entorno natural. Ofrece una variedad infinita, dando apariencia de profundidad a todos los planetas y estrellas.

[Imagen: e8afc211e776d452a1af9e162b5d420332b2fffb.jpg]

Modding

Quizás estés pensando: ¿cómo afecta esto al modding? ¿Se pueden crear fácilmente nuevos tipos de estrellas y planetas en DW2? ¿O esto requiere habilidades especiales de codificación o sombreado?

La buena noticia es que los modders también tienen acceso a estos mismos sombreadores para crear sus propios planetas y estrellas únicos; no se requieren habilidades especiales. Simplemente agregando algunos valores a un archivo, puedes tener un tipo de planeta completamente nuevo disponible en el juego. Tu planeta tendrá las mismas características que los tipos de planetas incorporados: mapas de altura hiperdetallados con sombras, capas de nubes animadas, luces nocturnas de ciudades pobladas, anillos planetarios, etc.

[Imagen: f800790e1371c78400fdf7858c7040ddb6ada023.jpg]

Resumen

Entonces, ¿cómo mejora el renderizado el entorno galáctico en Distant Worlds?

-proporciona una variedad infinita: no hay dos planetas iguales en la galaxia. Todos tienen sus propias características geográficas únicas.
-elimina las imágenes borrosas o la pixelación. Todo permanece nítido y claro incluso al acercarse mucho con el zoom
-permite la animación de características como coronas de estrellas, nubes planetarias y nebulosas
-utiliza mucha menos memoria, lo que libera recursos para otras necesidades

Espero que hayas disfrutado de esta vistazo al entorno galáctico de Distant Worlds. Volveré próximamente con más información sobre otras funciones de Distant Worlds 2.

[Imagen: 2d949bb462f71e0af3748cde06922779285ecb86.jpg]


Mensajes en este tema
RE: Juegos de Slitherine y Matrix Games - por Hetzer - 26-08-2021 17:13

Salto de foro:


Usuarios navegando en este tema: 2 invitado(s)