• No se han encontrado resultados

Simulación física de materiales a partir del método Material Point Method.

N/A
N/A
Protected

Academic year: 2023

Share "Simulación física de materiales a partir del método Material Point Method."

Copied!
90
0
0

Texto completo

(1)

Esc uela Polit éc nica Superi or de J aén

Alumno

José Cruz Martínez

Tutores

Juan Roberto Jiménez Pérez

(Departamento de Informática)

Juan Manuel Jurado Rodríguez

(Departamento de Informática)

Septiembre, 2021 T RABAJO F IN DE G RADO

S IMULACIÓN FÍSICA DE MATERIALES A PARTIR DEL

MÉTODO M ATERIAL P OINT

M ETHOD

(2)
(3)

Don Juan Roberto Jiménez Pérez y Don Juan Manuel Jurado Rodríguez, tutores del Trabajo Fin de Grado titulado: ‘Simulación física de materiales a partir del método Material Point Method’, que presenta Don José Cruz Martínez, otorgan el visto bueno para su entrega y defensa en la Escuela Politécnica Superior de Jaén.

Jaén, Septiembre de 2021

El alumno: Los tutores:

José Cruz Martínez Juan Roberto Jiménez Pérez Juan Manuel Jurado Rodríguez CRUZ

MARTINEZ JOSE - 26503741J

Firmado digitalmente por CRUZ MARTINEZ JOSE - 26503741J Fecha:

2021.09.10 18:10:11 +02'00'

(4)
(5)

Agradecimientos

Quisiera transmitir mi más sincero agradecimiento a todos aquellos que me han ayudado a lo largo de esta etapa tan importante de mi vida, porque caminar solo, podría hacerme ir más rápido, pero haber tenido la suerte de caminar acompañado me ha hecho llegar más lejos.

En primer lugar, doy gracias a mis tutores, Juan Roberto Jiménez y Juan Manuel Jurado, por su ayuda en la planificación, información y organización en este Trabajo de Fin de Grado que no ha sido poca. Gracias por su seguimiento constante. Gracias por todo lo que me han enseñado e incentivado durante este proceso.

De todo corazón, doy gracias a mi madre y a mi padre, quienes me han brindado todo su apoyo incondicional, confianza, y sobre todo paciencia durante este camino.

Gracias por todo el esfuerzo que os ha supuesto este camino. Gracias a mi hermano por ayudarme en la revisión del TFG. Gracias a mi novia, por haber estado a lo largo de toda mi carrera apoyándome en todo momento, siempre animándome a seguir adelante, por su paciencia y su ayuda.

Gracias a todos, sin vosotros no hubiera sido posible. ¡No puedo decir otra palabra más que “gracias”!

(6)
(7)

FICHA DEL TRABAJO FIN DE TÍTULO Titulación Grado en Ingeniería Informática

Modalidad Trabajo Teórico/Experimental

Especialidad (solo TFG) Tecnologías de la Información

Mención (solo TFG) Sistemas Gráficos

Idioma Español

Tipo Específico

TFT en equipo No

Autor/a José Cruz Martínez

Fecha de asignación 23/11/2020

Descripción corta La simulación de fluidos y sólidos deformables ha sido ampliamente estudiada en Informática Gráfica. Existen diferentes soluciones que posibilitan una simulación cada vez más realista en entornos del mundo real. Para ello, los

objetos se modelan geométricamente utilizando una malla de partículas. Esto permite la deformación de medios continuos asociando un conjunto de atributos a cada partícula que determinan su comportamiento y el de sus vecinas. En este trabajo se propone una herramienta interdisciplinar con la que generar simulaciones de fenómenos naturales como avalanchas o inundaciones. Gracias a este tipo de

simulaciones físicamente realistas se consigue una manera efectiva de predecir y evaluar con un alto nivel de detalle el impacto producido por distintos tipos de desastres naturales.

Abstract The simulation of fluids and distorted solids has been widely studied in Computer Graphics. There are different solutions which allow an increasingly realistic simulation in real world environments. Therefore, objects are geometrically modeled using a particle mesh. This allows a distortion in continuous media associating a set of attributes to each particle which determines its behavior and which is next to it. In this work, an interdisciplinary tool is proposed to generate simulations of natural phenomena such as avalanches or floods. Thanks to this type of physically realistic simulations, an effective way of predicting and evaluating with a high level of detail the impact produced is achieved by different types of natural disasters.

(8)

NORMAS APLICADAS EN ESTE DOCUMENTO LOCALES

TFT-UJA:2017

Normativa de Trabajos Fin de Grado, Fin de Máster y otros Trabajos Fin de Título de la Universidad de Jaén

(Normativa marco UJA aprobada en Consejo de Gobierno)

TFT-EPSJ:2017

Normativa sobre Trabajos Fin de Grado y Fin de Máster en la Escuela Politécnica Superior de Jaén

(Normativa EPSJ aprobada en Junta de Escuela)

TFT-EPSJ Criterios de evaluación y normas de estilo para TFG y TFM de la Escuela Politécnica Superior de Jaén

NACIONALES E INTERNACIONALES

ISO 2145:1978 Documentación - Numeración de divisiones y subdivisiones en documentos escritos

UNE 50132:1994 Traducción de la ISO 2145

APA 6ª edición Estilo de referencias y citas de APA (American Psychological Association)

NORMAS UTILIZADAS COMO BASE O REFERENCIA NACIONALES

UNE 157001:2014 Criterios generales para la elaboración formal de los documentos que constituyen un proyecto técnico

UNE 157801:2007 Criterios generales para la elaboración de proyectos de sistemas de información

Estas normas se han utilizado como base o referencia para la inclusión de algunos contenidos y definiciones sobre elaboración de proyectos, entendiendo como proyecto la documentación consensuada entre una empresa y un cliente, que da lugar al perfeccionamiento de un contrato para la elaboración de una obra o la prestación de un servicio. Por consiguiente, no debe esperarse la aplicación de estas normas en cuanto a la completitud de los contenidos ni a la organización de los mismos.

(9)

Contenido

1 Especificación del trabajo ...15

1.1 Introducción ... 15

1.2 Objetivos del trabajo ... 16

1.3 Antecedentes y estado del arte ... 16

1.4 Alcance... 22

1.5 Descripción de la solución propuesta ... 23

1.6 Metodología de desarrollo de software ... 23

1.7 Planificación temporal ... 26

1.8 Presupuesto ... 29

1.8.1 Coste hardware ... 30

1.8.2 Coste software ... 32

1.8.3 Coste de personal y servicios ... 33

1.8.4 Coste total y amortización ... 34

2 Diseño ...37

2.1 Tecnologías utilizadas... 37

2.2 Especificaciones del sistema ... 39

2.2.1 Requisitos funcionales ... 41

2.2.2 Requisitos no funcionales ... 41

2.3 Análisis y diseño del sistema ... 42

2.3.1 Diagrama de casos de uso ... 42

2.3.2 Historias de usuario ... 43

2.3.3 Diseño de la interfaz ... 45

3 Desarrollo ...49

3.1 Primera Iteración: Desarrollo de simulaciones previas y mezcla de materiales ... 49

3.1.1 Preliminares ... 49

3.1.2 Desarrollo ... 49

3.1.3 Pruebas y resultados ... 53

3.2 Segunda Iteración: Implementación de un script ... 56

3.2.1 Preliminares ... 56

3.2.2 Desarrollo ... 56

3.2.3 Pruebas y resultados ... 57

3.3 Tercera Iteración ... 58

3.3.1 Preliminares ... 58

3.3.2 Desarrollo ... 58

3.3.3 Pruebas y resultados ... 60

3.4 Cuarta Iteración ... 60

3.4.1 Preliminares ... 60

3.4.2 Desarrollo ... 61

3.4.3 Pruebas y resultados ... 61

3.5 Quinta Iteración ... 63

3.5.1 Preliminares ... 63

3.5.2 Desarrollo ... 63

3.5.3 Pruebas y resultados ... 65

3.6 Sexta Iteración ... 67

(10)

3.6.1 Preliminares ... 67

3.6.2 Desarrollo ... 67

4 Resultados ...69

4.1 Simulación de una avalancha ... 69

4.2 Simulación de una inundación ... 69

5 Modelo de negocio ...71

5.1 Objetivos ... 71

5.2 Análisis del entorno ... 71

5.2.1 Análisis DAFO ... 71

5.3 Plan de mercadotecnia ... 73

6 Conclusiones y trabajos futuros ...75

7 Apéndices ...77

7.1 Guía original del Trabajo Fin de Título ... 77

7.2 Instalación y configuración del sistema ... 77

7.3 Manuales de usuario ... 80

7.3.1 Otros controles ... 84

7.3.2 Guía de ejemplo rápida ... 84

8 Definiciones y abreviaturas ...87

8.1 Definiciones ... 87

8.2 Abreviaturas ... 87

9 Bibliografía ...89

(11)

Índice de ilustraciones

Ilustración 1 Funcionamiento del algoritmo MPM: (A) Representación de puntos materiales donde las flechas son los vectores de puntos materiales proyectados a los nodos de la malla.

(B) Se resuelven las ecuaciones de movimiento en los nodos. (C) Interpolación. (D) Actualización del estado de los puntos del material. [9] Fuente: CB-Geo. ...18 Ilustración 2. (A) Render de la película San Andreas generado con Vray, (B) Render de la película Everest generado con Arnold, (C) Render generado con iRay de Nvidia. Fuente:

Chaos, Arnold Renderer, NVIDIA. ...20 Ilustración 3. Ejemplo de render con hebras generado con Bifrost. Fuente: Autodesk Maya.

...21 Ilustración 4. Fases de la metodología incremental en cada iteración. Fuente: Un enfoque práctico. ...25 Ilustración 5. Iteraciones del proyecto compuestas de una serie de tareas junto a tiempo dedicado a cada una de las tareas e iteraciones. ...28 Ilustración 6. Diagrama de Gantt del proyecto. Fuente: Realizada por el autor a partir de GanttProject. ...29 Ilustración 7. Diagrama de especificación del sistema junto al software utilizado en cada paso.

Fuente: Realizada por el autor. ...39 Ilustración 8. Componentes del sistema utilizado. Fuente: Realizada por el autor. ...40 Ilustración 9. Diagrama de un sistema futuro en red. Fuente: Realizada por el autor. ...40 Ilustración 10. Diagrama general de caso de uso del sistema. Fuente: Realizada por el autor.

...43 Ilustración 11. Puntos clave de una historia de usuario. Fuente: Realizada por el autor. ...43 Ilustración 12. Wireframe principal de la interfaz. Fuente: Realizada por el autor. ...45 Ilustración 13. Storyboard: (A) selección de nieve, (B) selección de fluido. Fuente: Realizada por el autor. ...46 Ilustración 14. Mockup de la interfaz diseñada. Fuente: Realizada por el autor. ...47 Ilustración 15. Nodos principales: (A) Ajustes del nodo principal del algoritmo MPM. (B) Nodo principal del algoritmo MPM. (C) Nodo obstaculizador del flujo de la simulación. Fuente:

Realizada por el autor. ...50 Ilustración 16. Grafo de programación 1: simulación física de la caída de una bola nieve en Bifrost. Fuente: Realizada por el autor. ...51 Ilustración 17. Grafo de programación 2: mejora del grafo de programación 1, simulación física de la caída de una bola nieve compacta en Bifrost. Fuente: Realizada por el autor. ...52 Ilustración 18. Grafo de programación 3: simulación de la mezcla de dos materiales con diferente densidad en Bifrost. Fuente: Realizada por el autor. ...53 Ilustración 19. Simulación 1: Caída de una bola de nieve. Fuente: Realizada por el autor. ..54 Ilustración 20. Simulación 2: Caída de una bola de nieve mejorada. Fuente: Realizada por el autor. ...54 Ilustración 21. Simulación 3: mezcla de materiales con distinta densidad. Naranja mayor densidad que azul. Fuente: Realizada por el autor. ...55 Ilustración 22. Grafo de programación 4 en Bifrost. Fuente: Realizada por el autor. ...56 Ilustración 23. Grafo de programación 4 mejorado. Fuente: Realizada por el autor. ...57

(12)

Ilustración 24. Visualización de una simulación en tiempo real en Autodesk Maya. Fuente:

Realizada por el autor. ...58 Ilustración 25. Grafo de programación 5. Fuente: Realizada por el autor. ...59 Ilustración 26. Grafo de programación 6. Fuente: Realizada por el autor. ...60 Ilustración 27. Interfaz gráfica del plugin programado en Autodesk Maya. Fuente: Realizada por el autor. ...61 Ilustración 28. Grafo de programación 7a: implementación de niebla en la simulación. Fuente:

Realizada por el autor. ...62 Ilustración 29. Grafo de programación 7b. Fuente: Realizada por el autor. ...62 Ilustración 30. Grafo de programación 7c. Fuente: Realizada por el autor. ...63 Ilustración 31. Diferentes vistas de la interfaz. (A) Vista principal de la interfaz. (B) Selección del tipo de simulación “Snow”. (C) Selección del tipo de simulación “Strong rain”. (D) Selección del tipo de simulación “Storm”. Nótese que cada selección del tipo de simulación tendrá sus propios parámetros modificables. Fuente: Realizada por el autor. ...66 Ilustración 32. (A) Nodo para la creación de memoria caché en Bifrost. (B) Parámetros modificables del nodo. Fuente: Realizada por el autor. ...67 Ilustración 33. Simulación de una avalancha de nieve. Fuente: Realizada por el autor. ...69 Ilustración 34. Simulación de una inundación en una zona costera. Fuente: Realizada por el autor. ...70 Ilustración 35. Integración del plugin Bifrost en Maya. Fuente: Realizada por el autor...78 Ilustración 36. Parámetros de configuración para el uso de la API de Maya. ...79 Ilustración 37. Integración del plugin creado en este proyecto ubicado en: (A) ubicación de la API de Maya, (B) ruta de instalación de Maya. Fuente: Realizada por el autor. ...79 Ilustración 38. Comando a ejecutar para iniciar el plugin creado. Fuente: Realizada por el autor. ...80 Ilustración 39. Diálogo donde se muestra la apertura de un grafo ya creado o la opción de crear uno nuevo. Fuente: Realizada por el autor. ...82 Ilustración 40. Time Slider presente en la interfaz Maya. Se destacan algunas de las opciones mayormente utilizadas. Fuente: Realizada por el autor. ...82 Ilustración 41. Interfaz Render View de Arnold. Se muestra un ejemplo de renderización en tiempo real. Fuente: Realizada por el autor. ...83 Ilustración 42. Botones a detallar en la interfaz Render View de Maya. Fuente: Realizada por el autor. ...84 Ilustración 43. Ejemplo de una simulación de tipo “Snow”. Se muestra el terreno tomado como ejemplo llamado “TERRENO”. Fuente: Realizada por el autor. ...85 Ilustración 44. Editor de grafos de Bifrost, se muestra el grafo generado en la simulación de prueba. ...85 Ilustración 45. Simulación de prueba en la interfaz de Maya. Se indica el botón de inicio de la simulación. Fuente: Realizada por el autor. ...86

(13)

Índice de tablas

Tabla 1. Panificación iterativa del proyecto, en cada iteración se muestra el trabajo realizado.

...26

Tabla 2. Coste económico del hardware de la máquina de desarrollo. ...31

Tabla 3. Coste económico del hardware aconsejado para realizar el desarrollo del proyecto. ...32

Tabla 4. Coste económico del software necesario para la ejecución de este proyecto. ...33

Tabla 5. Coste económico del personal presente en desarrollo de este proyecto...34

Tabla 6. Coste estimado total para el desarrollo del proyecto...34

Tabla 7. Tabla de amortización de bienes. ...35

Tabla 8. Historia de usuario, el rol es un usuario ajeno al desarrollo. ...44

Tabla 9. Historia de usuario, el rol es un desarrollador o experto en diseño gráfico. ...44

Tabla 10. Análisis DAFO. ...72

Tabla 11. Combinaciones de teclado y ratón para el movimiento libre de la cámara. ...82

Tabla 12. Controles básicos de edición en Maya...84

(14)
(15)

1 E SPECIFICACIÓN DEL TRABAJO

En este capítulo se presenta la especificación del trabajo, con una estructura y contenidos inspirados en los criterios y recomendaciones que establece la norma UNE 157801:2007 - “Criterios Generales para la elaboración de proyectos de Sistemas de Información”.

A lo largo del documento se utilizarán términos y acrónimos cuya descripción aparecen en el apartado de Definiciones y abreviaturas.

1.1 Introducción

La simulación de medios continuos ha sido objeto de investigación durante décadas, tanto en el ámbito de la informática gráfica como de la física [1]. La física, a través de la mecánica de sólidos deformables, permite el cálculo de las velocidades relativas y el cambio de forma de las partículas que componen un cuerpo. De igual forma, un fluido no deja de ser un tipo de medio continúo formado por partículas. A diferencia de un sólido deformable, un fluido no posee fuerzas restitutivas, es decir, no se produce la recuperación al estado inicial del medio.

En este trabajo se propone un prototipo para el acercamiento de la simulación de fenómenos naturales a expertos de otras disciplinas, clave en su investigación y análisis. Para ello, se ha desarrollado una interfaz intuitiva con la que configurar la animación que se basa en el método denominado Material Point Method (MPM). El prototipo desarrollado se trata de un plugin para el software Autodesk Maya que se apoya en Bifrost para el desarrollo de la simulación. Este plugin posibilita la generación automática de fenómenos naturales tanto en escenarios urbanos como naturales. En concreto, en este estudio se presentan dos tipos: una avalancha de nieve y una inundación provocada por un tsunami en una zona costera.

La justificación de este proyecto radica en la importancia creciente de la simulación de fenómenos naturales para la toma de decisiones y la prevención del impacto que podría ser producido por uno de estos.

(16)

1.2 Objetivos del trabajo

El objetivo principal de este trabajo consiste en el desarrollo de un plugin integrado en el software Autodesk Maya1 para la simulación de fenómenos meteorológicos fotorrealistas. Además, se pretende crear una interfaz que facilite la tarea de configuración de la simulación de tal forma que cualquier experto sin conocimiento en informática gráfica pueda generar simulaciones como lluvia, nieve, avalancha o tormenta en un escenario real.

Una vez presentado el objetivo general se mencionan los siguientes objetivos específicos del proyecto:

- Estudio de herramientas similares existentes en el mercado para la simulación realista de fenómenos naturales.

- Estudio de algoritmos para la simulación fotorrealista en medios continuos.

- Diseño y desarrollo de un plugin compatible con la API Autodesk Maya para las simulaciones basadas en el algoritmo MPM.

- Testeo del prototipo y realización de simulaciones variando el contexto.

1.3 Antecedentes y estado del arte

En este apartado se presentan los trabajos con mayor impacto en el ámbito de la Informática Gráfica para la simulación fotorrealista de fluidos y sólidos deformables.

Inundaciones, terremotos y otros fenómenos naturales extremos presentan un alto impacto en nuestra sociedad tanto a nivel humano como económico. Esto ha llevado a la creación de simulaciones para la ayuda en la toma de decisiones relacionadas con actividades para la prevención de desastres naturales, como por ejemplo, alertas con antelación a residentes ante una situación de emergencia. Otra aplicación es la ayuda a la planificación de respuestas contra desastres.

Estas simulaciones realistas son necesarias para la prevención de estos, saber cuándo se producirá un desastre natural es muy limitado, un ejemplo claro en medios

(17)

continuos es el mar, donde si el terreno es alterado por un movimiento, este produciría un desequilibrio de las partículas pudiendo originar un tsunami [2]. De esta forma generando una buena simulación fotorrealista se puede prevenir el impacto de los tsunamis sobre las costas. Otro ejemplo de simulaciones para intentar predecir o contrarrestar el impacto producido en el medio ambiente por incendios forestales, es un método novedoso con el objetivo de capturar de manera realista el proceso de combustión de árboles individuales y la propagación resultante de incendios a escala de bosques [3].

Debido a problemas encontrados en simulaciones visuales de la naturaleza, el estudio de procesos como por ejemplo la erosión hidráulica [4], [5] o el movimiento de los árboles movidos por el viento [6] actualmente se encuentran en continua mejora.

Con esta solución se provee de una herramienta para que expertos de otras disciplinas sin previo conocimiento, puedan generar simulaciones físicamente plausibles en un entorno real.

Poniendo el foco en el desarrollo de algoritmos para la simulación de fluidos y sólidos deformables existen diferentes soluciones que posibilitan una animación cada vez más realista. Para ello, los objetos se modelan geométricamente utilizando una malla de partículas. Esto permite la deformación de medios continuos asociando un conjunto de atributos a cada partícula que determinan su comportamiento y el de sus vecinas. Como consecuencia, se alcanza un alto nivel de realismo permitiendo desarrollar simulaciones fotorrealistas en escenarios complejos del mundo real.

Material Point Method (MPM) es una técnica numérica usada para simular el comportamiento de sólidos, líquidos, gases y cualquier otro material continuo. Este método fue propuesto originalmente como una extensión de un método similar conocido como FLIP (una extensión adicional de un método llamado PIC, particle-in- cell) dedicado a la dinámica de sólidos [7], [8]. Método basado en partículas donde representa el material como una colección de puntos de material, las deformaciones producidas son determinadas por las leyes de movimiento de Newton. PIC fue propuesto a principios de 1990, entre las distintas variaciones encontramos el MPM,

(18)

sin embargo, no es uno de las mejores, por ejemplo, The total Lagrangian Material Point Method mejora el gasto computacional tan elevado que posee MPM. Además, TLMPM no está sujeto a inestabilidades de cruce de celdas o fallas numéricas, y presenta una mejor cuadratura [9].

Ilustración 1 Funcionamiento del algoritmo MPM: (A) Representación de puntos materiales donde las flechas son los vectores de puntos materiales proyectados a los nodos de la malla.

(B) Se resuelven las ecuaciones de movimiento en los nodos. (C) Interpolación. (D) Actualización del estado de los puntos del material. [9] Fuente: CB-Geo.

Una vez presentados los métodos más relevantes para la creación de simulaciones realistas, se profundiza en el estudio de los motores de renderizado más punteros del sector.

Los motores de renderizado a día de hoy se encuentran en continua mejora. A la hora de elegir uno de ellos depende del ámbito para el que se trabaja, siendo Vray uno de los más elegidos, nos permite lograr renders fotorrealistas con una calidad

(19)

que ofrece realismo fotográfico y precisión física, además, permite un renderizado en red para agilizar el tiempo de renderización de las imágenes. Otros motores que permiten utilizar un renderizado en red son Maxwell Render o Revit. Por otro lado, Unity Engine proporciona un renderizado en tiempo real en 3D convirtiendo modelos wireframe 3D en Imágenes 2D con efectos 3D fotorrealistas, este tipo de renderizado en tiempo real, sin embargo, está más dedicado al mundo de los videojuegos [10].

Los motores de renderizado integrados en Maya es entre otros Maya Software, siendo el más utilizado debido al bajo consumo computacional en la generación de objetos. Otro motor integrado es Maya Hardware dedicado al procesamiento de grandes cantidades de información. Por último, Maya Vector permite la conversión de representaciones 3D en imágenes 2D para crear representaciones estilizadas o formatos vectoriales 2D.

Además, Maya permite la adición de otros motores de renderizados externos al propio software. Arnold, un motor de renderizado adaptado en Maya, ha sido la mejor opción encontrada para soportar el renderizado de partículas además de la integración perfecta obtenida de las formas geométricas, cámaras y luces. Este motor, además de ser sencillo e intuitivo, trata de ser un motor de renderizado avanzado en 3D de alta calidad basado en el trazado de rayos Monte Carlo. En comparación con otros motores de renderizado como los indicados integrados en Maya, Arnold nos permite obtener resultados óptimos de una manera eficiente. Para la producción de las simulaciones realizadas para este trabajo, Arnold permite una renderización por CPU, esto es debido a la renderización de volúmenes Bifrost, Arnold aún no se encuentra preparado para un renderizado de volúmenes por GPU, sin embargo, se ha elegido este motor de renderizado debido a los resultados fotorrealistas obtenidos y la posibilidad de la previsualización del resultado final del trabajo que se está realizando en un tiempo mínimo. Grandes proyectos realizados con Arnold en el mundo de la animación 3D fotorrealista han sido, Capitán América, Gravity, X-Men: primera generación o Everest entre otras.

(20)

Ilustración 2. (A) Render de la película San Andreas generado con Vray, (B) Render de la película Everest generado con Arnold, (C) Render generado con iRay de Nvidia. Fuente: Chaos, Arnold

(21)

Este trabajo, basado en el método MPM explicado en la Ilustración 1, tuvo en cuenta como primera opción la implementación en lenguaje C++ y OpenGL2, sin embargo, se han encontrado soluciones software de animación 3D con la implementación del método MPM, algunos de estos son Houdini o Autodesk Maya, siendo este último la mejor opción encontrada debido a la facilidad y a la calidad de las representaciones que permite generar, además es considerado uno de los más potentes a nivel de renderizado y animación 3D [8], [11]. Maya se apoya en Bifrost para el desarrollo de simulaciones físicas haciendo uso del método MPM.

Bifrost nos permite conseguir simulaciones tales como humo, fuego, explosiones, uso del método MPM y otros efectos como la creación de hebras como el pelo o la piel.

Ilustración 3. Ejemplo de render con hebras generado con Bifrost. Fuente: Autodesk Maya.

La motivación de este trabajo es la simplificación en la tarea de simulación por expertos de otros ámbitos de conocimiento ofreciéndoles la oportunidad de reproducir simulaciones realistas en entornos naturales sin previo conocimiento sobre Informática Gráfica, en términos generales. Como resultado de este proyecto, se propone un prototipo para el acercamiento de la simulación de fenómenos naturales a expertos de otras disciplinas, clave en su investigación y análisis. Para ello, se ha

2 https://www.opengl.org/

(22)

desarrollado una interfaz intuitiva con la que configurar la animación que se basa en el método mencionado con anterioridad Material Point Method (MPM). El prototipo desarrollado se trata de un plugin para el software Autodesk Maya que se apoya en Bifrost para el desarrollo de la simulación. Este plugin posibilita la generación automática de fenómenos naturales tanto en escenarios urbanos como naturales. En concreto, en este estudio se presentan dos tipos: una avalancha de nieve y una inundación provocada por un tsunami en una zona costera.

1.4 Alcance

Una vez definidos los objetivos se definirán todos los entregables y resultados esperados. Los entregables y resultados de este trabajo deben ser necesariamente los siguientes:

Código fuente del plugin desarrollado, donde se destacará el algoritmo utilizado en este trabajo. Para ayudar al investigador o usuario se desarrollará una interfaz intuitiva, de esta forma, el código fuente no sólo incluirá las soluciones al problema planteado sino también una aplicación de interfaz completa para la correcta interacción del usuario con el software. La visualización de los resultados obtenidos se hará a través del software principal ya que será un plugin. Los resultados esperados deberán ser:

Se permitirá trabajar con distintos tipos de simulaciones predefinidas.

Debe dar a elegir un entorno creado previamente, sobre este se realizará la simulación.

Posible modificación de los parámetros de los distintos tipos de simulación.

Ficheros adicionales al código fuente del plugin, estos serán necesarios para determinar los distintos tipos materiales utilizados.

Memoria del trabajo desarrollado, será este mismo documento donde se incluirán los correspondientes manuales de uso y de instalación del plugin, documentación de los resultados propuestos y justificación de los mismos.

(23)

Vídeo del funcionamiento del plugin, se mostrará de manera detallada todo el funcionamiento del software desarrollado, además del manual de uso reflejado en este mismo documento.

1.5 Descripción de la solución propuesta

Esta descripción breve de la propuesta realizada permite conocer cuáles son los detalles más significativos de la solución final. Para conocer detalladamente como se ha resuelto esta propuesta es necesario desplazarse al apartado de Desarrollo.

La solución propuesta se puede describir como una aplicación gráfica que permite la simulación automática de fenómenos naturales en cualquier tipo de escenario previamente generado. Esta solución se caracteriza, a grandes rasgos por los siguientes puntos:

• Parametrización de las propiedades que conforman un material, como la densidad, viscosidad o velocidad inicial de las partículas.

• Selección entre tres diferentes tipos de simulaciones, nieve, tormenta o lluvia.

• Generación automática de los grafos Bifrost adaptados a cualquier entorno creado con anterioridad.

1.6 Metodología de desarrollo de software

Este proyecto trata de una investigación dentro del departamento de informática, donde se encuentra la parte interesada y un equipo de desarrollo. Entre la parte interesada y el equipo de desarrollo se permitirán realizar reuniones con frecuencia para observar la evolución, resolución de problemas que van surgiendo, aportación de nuevas sugerencias o profundizar aspectos que se están llevando a cabo en la investigación.

En este trabajo se ha optado por una metodología incremental, tendremos las tareas divididas en iteraciones, en cada iteración se trabajará para conseguir un objetivo específico. Para llevar a cabo esta metodología se llevarán a cabo las siguientes fases: (ver Ilustración 4)

(24)

1. Definición de los objetivos del proyecto.

2. Definición de las tareas e iteraciones, una vez tenemos los objetivos que se quieren conseguir se realizará una lista con las tareas y estas agruparlas en las distintas iteraciones que tendrá el proyecto. Esta agrupación debe realizarse siguiendo un criterio previo de manera que se vayan resolviendo objetivos en un orden concreto.

3. Organización de los incrementos, una vez tenemos las iteraciones, se definirá la evolución en cada una de ellas. Debe de producirse un incremento, es decir, cada iteración superará a la anterior.

4. Desarrollo del incremento, donde se realizarán las tareas asignadas a la iteración, con cada incremento se agregará una nueva funcionalidad, se incluirán nuevos requisitos o se mejorará la versión previamente implementada del proyecto.

5. Validación de incrementos, cuando se ha terminado una iteración los encargados de gestionar el proyecto deben de dar una validación a los incrementos llevados a cabo. En el caso de que no sean los esperados, será necesario volver atrás y buscar las causas para su solución.

6. Integración de incrementos, cuando se han validado de forma correcta es entonces cuando se produce una evolución en el proyecto.

7. Entrega del producto, una vez se han validado cada una de las iteraciones, se comprueba que se han resuelto los objetivos iniciales y el producto estará listo para la entrega final.

(25)

Ilustración 4. Fases de la metodología incremental en cada iteración. Fuente: Un enfoque práctico.

Las principales ventajas de esta metodología incremental son las siguientes:

• Se reduce el tiempo de desarrollo inicial con respecto a otras metodologías.

• Reducción de tiempos, el cliente podrá ir obteniendo partes operativas del software sin esperar a la finalización del proyecto. Además de obtener cierta facilidad en la administración de las tareas en cada iteración para el equipo que desarrolla.

• Resulta más sencillo acomodar cambios al acotar el tamaño de los incrementos.

• Facilidad en la adaptación de posibles necesidades.

• Mayor productividad.

• Facilidad en la gestión de riesgos. [12]

Ya que el presente proyecto es un TFT, no existen restricciones de tipo económico, sino de tipo temporal (un número aproximado de horas). Por consiguiente, los cálculos de tamaño del proyecto están supeditados el tiempo disponible. En cuanto al esfuerzo, se dispone de tan un solo efectivo (la persona autora del trabajo).

(26)

1.7 Planificación temporal

La planificación temporal está adaptada a la metodología incremental empleada en este trabajo, tratada en iteraciones. Esta planificación mostrará el avance del trabajo a lo largo de una dimensión temporal.

A modo de introducción, en la Tabla 1 se presenta el trabajo realizado en cada una de las iteraciones.

Iteración y fecha de comienzo Descripción

Iteración 1 (30 de noviembre) Comienzo del proyecto. Estudio del algoritmo MPM, elección del entorno y tipo de programación (Autodesk Maya).

Integración en el entorno. Creación de tres simulaciones.

Iteración 2 (11 de febrero) Comienzo del desarrollo de un script para Maya. Uso de la API del propio entorno.

Iteración 3 (18 de febrero) Avance del script, se introduce otro tipo de material continuo. El script lee de un fichero el tipo de simulación.

Iteración 4 (25 de febrero) Inicio del desarrollo de la interfaz gráfica para la implementación del plugin.

Mejora del uso del plugin para usuarios no expertos.

Iteración 5 (8 de marzo) Introducción de parámetros modificables en la interfaz gráfica del plugin para cada tipo de simulación.

Iteración 6 (11 de marzo) Implementación de simulaciones con un mayor grado de complejidad y generación de la caché de cada simulación.

Tabla 1. Panificación iterativa del proyecto, en cada iteración se muestra el trabajo realizado.

(27)

Además, se presenta de otra forma esta información, a través de un diagrama de Gantt, este diagrama muestra dicha información de una manera gráfica cuyo objetivo será exponer el tiempo de dedicación previsto para diferentes tareas o actividades a lo largo de un tiempo total determinado. Para la correcta interpretación del diagrama se necesita detallar:

• Cada iteración contiene a su vez una serie de tareas descritas.

• En este proyecto se han reflejado tres diferentes tipos de tareas:

Estudio: son tareas de aprendizaje para la posterior implementación, permiten conocer la mejor forma de resolver un problema.

Color:

Implementación: tras una investigación previa vista en las tareas de estudio, se realizarán las implementaciones que resultarán en soluciones finales.

Color:

Documentación del proyecto:

Color:

Este diagrama junto a las iteraciones y las tareas asociadas a cada una de ellas queda representado en la Ilustración 5 y en la Ilustración 6.

(28)

Ilustración 5. Iteraciones del proyecto compuestas de una serie de tareas junto a tiempo dedicado a cada una de las tareas e iteraciones.

(29)

Ilustración 6. Diagrama de Gantt del proyecto. Fuente: Realizada por el autor a partir de GanttProject.

1.8 Presupuesto

El objetivo del presupuesto tiene como misión determinar y justificar el coste económico de la elaboración del trabajo. Para ello, se listarán los medios necesarios y un conjunto de materiales junto a su coste económico. Cada uno de los costes reflejados serán obtenidos de proveedores oficiales, por tanto, el presupuesto puede verse alterado, especialmente de manera favorable, si la obtención de todo lo necesario se realiza a través de fuentes alternativas.

Categorías en la que se puede clasificar este proyecto para satisfacer las necesidades:

(30)

Hardware: incluye los componentes del ordenador que ha permitido el desarrollo del proyecto.

Software: situándonos en el peor de los escenarios, se consideran las versiones ampliadas y de pago de las licencias software implicadas en el desarrollo de este trabajo, aun existiendo versiones gratuitas para la comunidad de estudiantes, estas versiones podrían no estar operativas para una empresa o grupo externo.

Personal y servicios: se incluye el coste asociado a la contratación de personal

1.8.1 Coste hardware

La máquina utilizada, tanto para el cálculo de la simulación como para el posterior renderizado, presenta las especificaciones expuestas en la Tabla 2 (extraídas de su correspondiente factura de una tienda de la franquicia PcComponentes):

Componente Descripción Coste estimado (€) Lenovo Kit Intel Xeon

Silver 4210R 2.4 GHz para ThinkSystem SR550/SR590/SR650

Procesador 800,34 (x2) = 1600,68

Placa Base ASUS WS C621E SAGE (Socket P - Intel C621 - SSI EEB)

Placa base 694,76

Toshiba N300 NAS 3.5"

8TB SATA 3

Disco duro 242,99

Kingston FURY Beast DDR4 2666 MHz 160GB 5x32GB CL16

Memoria RAM 831,05

Cooler Master N200 N1 USB 3.0

Carcasa de la torre 51,15

Cooler Master Hyper 212 Black Edition

Ventiladores 34,98

Gigabyte GeForce RTX 2080 Ti Gaming OC 11GB GDDR6

Tarjeta gráfica 1.259

(31)

Intel Consumer SSD 660p 2TB NVMe M.2 PCI

Express 3.0

Disco duro SSD 262,86

Nox Urano VX 650W 80 Bronze 120MM PWM

Fuente de alimentación 47,50

Dell E2420H 24" LED IPS FullHD

Monitor 139

Dell Teclado AZERTY negro USB M377H L30U KB1421 0M377H 0N249F PC Keyboard Slim

Teclado 24.99

Kensington K72356EU - Ratón óptico, 399810

Ratón 10,79

Total 5.199,75

Tabla 2. Coste económico del hardware de la máquina de desarrollo.

El coste estimado expuesto corresponde con el precio actual de dichos componentes. Se trata de un coste obtenido de una empresa, en el caso de ejecutar este proyecto se debería adquirir una máquina que presente componentes recientes y mejorados. De esta manera, este presupuesto puede servir como una estimación del coste hardware final para resolver las tareas de desarrollo. En este proyecto no se han utilizado otros componentes hardware además del equipo especificado. Cabe destacar que se trata de un equipo servidor y que para realizar este proyecto no es necesaria la potencia suministrada por esta máquina. Esta máquina ha sido utilizada debido a tener su disponibilidad en las instalaciones donde se realiza este proyecto.

Para la realización de este trabajo es aconsejable un ordenador más económico, aunque con la potencia necesaria (ver Tabla 3).

Componente Descripción Coste estimado

Intel Core I9 11900K 35 Ghz

Procesador 558,9

Placa Base ASUS WS C621E SAGE (Socket P - Intel C621 - SSI EEB)

Placa base 694,76

(32)

Kingston FURY Beast DDR4 2666 MHz 32GB CL16

Memoria RAM 166,21

Samsung 870 QVO SSD 1TB SATA3

Disco duro SSD 98,96

Cooler Master N200 N1 USB 3.0

Carcasa de la torre 51,15

Cooler Master Hyper 212 Black Edition

Ventiladores 34,98

Nox Urano VX 650W 80 Bronze 120MM PWM

Fuente de alimentación 47,50

Dell E2420H 24" LED IPS FullHD

Monitor 139

Dell Teclado AZERTY negro USB M377H L30U KB1421 0M377H 0N249F PC Keyboard Slim

Teclado 24.99

Kensington K72356EU - Ratón óptico, 399810

Ratón 10,79

MSI GeForce GTX 1660 Ti Armor OC 6GB GDDR6

Tarjeta gráfica 520,48

Total 2.444,74

Tabla 3. Coste económico del hardware aconsejado para realizar el desarrollo del proyecto.

Por lo tanto, de cara al cálculo del coste estimado se utilizará el coste de la máquina aconsejada y no el de la máquina utilizada.

1.8.2 Coste software

En esta sección se incluye todo software no gratuito necesario en las tareas de este trabajo. Como se ha indicado anteriormente, algunos de los siguientes productos citados en la Tabla 4 no han supuesto un gasto durante la realización de este proyecto, sin embargo, en una empresa podría suponer un gasto. Además, se presenta este

(33)

licencias anuales en algunos casos debido a ser la opción más económica. Además, estos softwares, una vez se ha realizado el proyecto son necesarios de mantener sus licencias para continuar desarrollando nuevas producciones, en este caso, simulaciones.

Software Descripción Coste estimado (€)

Autodesk Maya Software de animación, modelado, simulación y renderización por ordenador en 3D

Debido a que el coste mensual es de 279€ (x6) y la licencia anual es de 2.245€, se ha optado por la licencia anual = 2.245 Adobe After Effects 2020 Prototipado de secuencias

de imágenes

90,74 / mes(x2) = 181.48

Licencia de Windows 10 Home

Sistema operativo del ordenador de desarrollo

145

Office 365 Personal Prototipado de interfaces gráficas, documentación

69 / mes (x6) = 414

Total 2.985,48

Tabla 4. Coste económico del software necesario para la ejecución de este proyecto.

1.8.3 Coste de personal y servicios

En esta sección se expone el coste de la contratación de personal, este proyecto trata de un Trabajo de Fin de Grado realizado por un único autor, el coste estimado ha sido obtenido del XVII Convenio colectivo estatal de empresas de consultoría y estudios de mercado y de la opinión pública (Ministerio de Empleo y Seguridad Social, 2018). A continuación, se presentan los distintos roles que tomará el autor en el desarrollo del proyecto.

Personal Descripción Coste estimado (€)

Analista Análisis y gestión del

proyecto

11.752,86 / 6 meses

Programador senior Desarrollo del proyecto de programación

8.265,88 / 6 meses

Diseñador gráfico 9.300 / 6 meses

(34)

Total 29.318,74

Tabla 5. Coste económico del personal presente en desarrollo de este proyecto.

1.8.4 Coste total y amortización

Una vez se ha realizado el desglose del coste estimado en cada una de las categorías, se expone la suma de cada uno de los costes estimados y así resultar un coste final, este coste queda reflejado en la Tabla 6.

Categoría Coste estimado (€)

Coste hardware 2.444,74

Coste software 2.985,48

Coste de personal y servicios 29.318,74

Total 34.748,96

Tabla 6. Coste estimado total para el desarrollo del proyecto.

El coste expuesto para la realización de este trabajo ha sido desde un punto de partida de cero, la cifra total del coste estimado de este proyecto ha sido 34.748,96€.

Dicho coste final es orientativo dependiendo de los medios que se dispongan al inicio del trabajo y las necesidades de cada grupo que lo desarrolle.

Una vez se ha realizado el coste estimado de cada una de las partes en las que se divide el proyecto, se puede calcular la amortización a los bienes materiales, tanto el hardware como el software de este proyecto. La mayoría del software que se contrata tiene una vida útil con licencias anuales o mensuales, salvo la licencia del sistema operativo que será una licencia permanente.

Para estos bienes expuestos se considera una amortización lineal, se define una base amortizable a partir del coste inicial y el valor residual, además del tiempo de vida de cada bien. Para aquellos bienes que no tendrán una vida útil se utiliza el coeficiente de amortización.

(35)

De acuerdo a los coeficientes de amortización lineal que considera la Agencia Tributaria3 (Agencia Tributaria 2020), la vida útil del software que será permanente será de 6 años y la del hardware de 10 años. El valor residual del software es del 33%

de su valor inicial y el del hardware es del 20%.

La amortización lineal propuesta se debe calcular como sigue:

𝐵𝑎𝑠𝑒 𝐴𝑀𝑇 = 𝑃𝑟𝑒𝑐𝑖𝑜 𝑎𝑑𝑞𝑢𝑖𝑠𝑖𝑐𝑖ó𝑛 − 𝑉𝑎𝑙𝑜𝑟 𝑟𝑒𝑠𝑖𝑑𝑢𝑎𝑙 𝐴𝑀𝑇 𝑎𝑛𝑢𝑎𝑙 = 𝐵𝑎𝑠𝑒 𝐴𝑀𝑇

𝑁ú𝑚𝑒𝑟𝑜 𝑑𝑒 𝑎ñ𝑜𝑠 = 𝐵𝑎𝑠𝑒 𝐴𝑀𝑇 × 𝐶𝑜𝑒𝑓. 𝑑𝑒 𝐴𝑀𝑇

Se aplican las fórmulas anteriores para obtener los resultados de la siguiente tabla (Tabla 7), donde se ve la amortización tanto del software como del hardware.

Tipo de elemento

Valor inicial (€)

Valor residual (€)

Vida útil Amortización anual (€) Software

permanente

145 47,85 6 años 16,19

Hardware 2.444,74 488,95 10 años 195,58

Total amortizado 211,77

Tabla 7. Tabla de amortización de bienes.

Puesto que el desarrollo de este proyecto tiene una duración de 6 meses, se considera que el valor amortizado es de 211,77€ / 12 * 6 = 105,89€.

3 Tabla de coeficientes de amortización lineal a partir del 1 de enero de 2020 (última actualización).

Fuente: Agencia Tributaria.

(36)
(37)

2 D ISEÑO

En este capítulo se presentan las tecnologías que serán utilizadas, así como un análisis previo al desarrollo de este trabajo. Además, se presentan las especificaciones esperadas en el sistema.

2.1 Tecnologías utilizadas

En este apartado se describen las tecnologías que se han empleado en el desarrollo del proyecto.

Software: el principal software utilizado e indispensable para el desarrollo ha sido Autodesk Maya, es un software 3D de animación por ordenador con herramientas avanzadas de modelado para profesionales de la animación, este software junto con Bifrost se ha convertido en el software fundamental para el desarrollo de este trabajo, con Bifrost se han conseguido crear simulaciones físicamente precisas. Sobre Maya se ha construido el plugin expuesto en este trabajo.

Software de soporte al desarrollo: herramientas para la obtención de las animaciones.

Adobe After Effects: aplicación destinada para la creación o aplicación en una composición, así como realización de animaciones profesionales y efectos especiales. Nos permite obtener una mayor calidad en la realización de gráficos profesionales en movimiento de manera más intuitiva que en Maya.

Lenguajes de programación: debido a que la implantación de este trabajo se ha realizado bajo el entorno Autodesk Maya y este ha aportado cierta facilidad para el desarrollo a través de Maya Embedded Language (MEL)4, se trata de un lenguaje de programación propio del entorno Maya, permite la automatización y ampliación de nuevas características[12], este, junto con Python nos ha dotado una buena experiencia para conseguir el principal

4 https://help.autodesk.com/view/MAYAUL/2018/ENU/?guid=GUID-579A6D9F-CB41-4CD9-B9D7- 3DB1FD33735D

(38)

objetivo de este proyecto, la conexión del software con el plugin Bifrost y así, generar el nuevo plugin expuesto en este trabajo.

Librerías: Maya incluye librerías tales como, OpenAL, Qt, Python, Intel TBB, entre otras, además permite instalar otras nuevas, para este trabajo se han utilizado las librerías de Qt y Python, que como se ha indicado, vienen incluidas e instaladas en la instalación del software Maya.

Application Programming Interface o API, serán aquellas interfaces de programación de aplicaciones:

The Maya Python API 1.0, permite la creación de scripts o plugins para la utilización de clases contenedoras y conjuntos de funciones para modificar el modelo de Maya.

Framework para la creación de aplicaciones gráficas: La interfaz creada para transmitir al usuario un fácil manejo y experiencia de la aplicación ha sido de gran importancia de cara a usuarios no expertos en el sector de la informática gráfica.

Se ha optado por el framework Qt5 de Maya, utilizando comandos MEL y Python se pueden crear elementos de UI como botones o campos de entrada, la experiencia obtenida de este framework ha sido transparente brindando una gran flexibilidad en el diseño de la interfaz de usuario.

Además, viene preparado para crear interfaces de usuario personalizadas para Maya utilizando Qt Designer6, en este caso ha sido suficiente con los comandos proporcionados por Maya para generar la interfaz de usuario.

Entornos de desarrollo: facilita el desarrollo software haciendo uso de un lenguaje de programación. En este caso el entorno de desarrollo integrado o IDE utilizado ha sido Wing7, se trata de un Python IDE que ha permitido el desarrollo, pruebas y depurado del código Python para Autodesk Maya[13].

(39)

2.2 Especificaciones del sistema

En primer lugar, el sistema que se busca será en su forma más simplificada, existiendo así un trabajo futuro que podrá mejorar el objetivo concreto que busca este proyecto.

A continuación, con ayuda de la Ilustración 7 se especificará paso a paso el sistema:

• El primer paso será cargar o modelar un entorno en el software principal, este entorno será la entrada del sistema y sobre el que se realizará la simulación.

• El sistema ahora permitirá elegir el tipo de material a simular y su configuración, para ello la información del entorno se llevará a Bifrost, este plugin se encargará del cálculo de MPM.

• Una vez este todo cargado en Bifrost se procede al renderizado en Arnold para Maya.

• Finalmente, se utiliza un software externo para transformar el conjunto de imágenes renderizadas a una secuencia de imágenes, será la simulación final.

Ilustración 7. Diagrama de especificación del sistema junto al software utilizado en cada paso.

Fuente: Realizada por el autor.

(40)

Además, se debe destacar que para el desarrollo del sistema que conectará el sistema principal con Bifrost a través de un plugin se ha conseguido a través de Maya Python API8. Este plugin creará simulaciones de forma automática en Bifrost, obteniendo el entorno o modelo de Maya.

Ilustración 8. Componentes del sistema utilizado. Fuente: Realizada por el autor.

De cara al futuro, uno de los trabajos a llevar a cabo será la creación de simulaciones en red donde en este caso, el cliente realizará la petición a través de la red a un clúster donde se realizarán una serie de operaciones para conseguir la simulación solicitada. Este clúster no dejará de ser una granja de ordenadores interconectados para la realización de simulaciones de una manera distribuida, no obstante, la especificación detallada en la Ilustración 8 estará incluida en este sistema.

Una vez conseguida la simulación, será enviada al cliente (ver Ilustración 9).

Ilustración 9. Diagrama de un sistema futuro en red. Fuente: Realizada por el autor.

Para definir las especificaciones del sistema se distinguen una serie de requisitos, siendo cada uno de estos un conjunto de propiedades o restricciones definidas con precisión. Se distinguen dos tipos de requisitos:

(41)

Requisitos funcionales: describirán la funcionalidad del sistema, lo que hace o se espera que haga.

Requisitos no funcionales: describen los aspectos del sistema relacionados con el grado de cumplimiento de los requisitos funcionales.

2.2.1 Requisitos funcionales

Se presenta un listado con los requisitos funcionales deseados en el sistema:

• La aplicación deberá incluir una interfaz donde el usuario pueda gestionar los parámetros de cada uno de los materiales, dependiendo del material seleccionado.

• La interfaz diseñada debe permitir la elección entre los distintos tipos de materiales continuos implementados por el diseñador (fluido, nieve).

• El sistema permitirá mostrar en tiempo real la sucesión de cada uno de los frames que se irán generando.

• El sistema debe permitir exportar el cálculo de las todas las propiedades de las partículas en cada frame.

• El sistema debería permitir modificar las simulaciones una vez se han preparado.

2.2.2 Requisitos no funcionales

A continuación, se describen los requisitos no funcionales del sistema:

• El sistema y su interfaz debe de ser intuitiva y fácil de interpretar para el usuario, de forma que no sea necesario un estudio previo para la utilización de la aplicación.

• Se garantizará al usuario que el aprendizaje será lo más rápido posible, el usuario podrá dominar el sistema con brevedad.

• Se debe garantizar que el sistema estará disponible en varios sistemas operativos, necesariamente las últimas versiones de Windows, Linux, MacOS.

(42)

2.3 Análisis y diseño del sistema

Una vez presentadas las especificaciones del sistema, Craig Larman expone en su libro la realización de un análisis de requisitos que permitirá especificar las características operacionales del software, indicar la interfaz y establecer las restricciones que debe cumplir el software [14].

2.3.1 Diagrama de casos de uso

Con este tipo de diagrama UML de comportamiento permitirá visualizar los roles de este sistema y conocer como interactuar adecuadamente con el sistema.

En el diagrama general de caso de uso que podemos observar en la Ilustración 10 se muestran las funcionalidades que tendrá el usuario dentro del sistema, un usuario inexperto en sistemas gráficos pero experto en ciencias del medio ambiente podrá realizar una animación introduciendo los parámetros físicos del material continuo (nieve o agua) que colisionará con el modelo creado por un experto, ya sea modelándolo a mano o mediante la utilización de drones en áreas extensas.

(43)

Ilustración 10. Diagrama general de caso de uso del sistema. Fuente: Realizada por el autor.

2.3.2 Historias de usuario

Una historia de usuario intentará transmitir una explicación general e informal del sistema desde la perspectiva del usuario final o cliente. Cada una de ellas contendrá tres puntos clave: COMO, QUIERO y PARA (Ilustración 11). Estas historias de usuario quedarán representadas mediante tablas, cada tabla estará identificada por un rol distinto.

Ilustración 11. Puntos clave de una historia de usuario. Fuente: Realizada por el autor.

(44)

Historia de usuario como usuario/experto medioambiental.

Quiero Para

Seleccionar el tipo de simulación que se quiera realizar.

Obtener una simulación según la selección.

Disponer de una interfaz gráfica de usuario. Modificar fácilmente todos aquellos

parámetros del material de una simulación.

Modificar y ajustar la escena que se quiere simular.

Obtener una escena o entorno ajustada al tipo de simulación.

Exportar una simulación. Poder recuperar en el sistema una simulación ya calculada.

Desplazarme por la escena. Observar la malla de partículas resultante del cálculo de cada frame en la simulación.

Tabla 8. Historia de usuario, el rol es un usuario ajeno al desarrollo.

Historia de usuario como desarrollado/experto diseñador gráfico.

Quiero Para

Visualizar el grafo de programación que origina la simulación.

Modificar parámetros internos de la simulación.

Tener acceso a la interfaz del software principal.

Editar, eliminar partes del modelo de la simulación.

Accesibilidad a los ajustes de renderizado. Elegir el tamaño de las imágenes de la simulación, según la calidad deseada.

Tabla 9. Historia de usuario, el rol es un desarrollador o experto en diseño gráfico.

Las historias de usuario de la Tabla 8 y la Tabla 9 definen claramente unos requisitos específicos que se esperan en la solución final, es por ello por lo que se presentan en una fase previa al desarrollo. Estas son útiles para metodologías ágiles, son descripciones breves y simples de una característica contada desde la

(45)

2.3.3 Diseño de la interfaz

Esta interfaz es la parte del sistema donde el cliente podrá interactuar de manera cognitiva, es la unión entre el usuario y el software desarrollado, por lo tanto, ha de ser usable e intuitiva. A continuación, se muestra un storyboard, esta trata de un conjunto de imágenes que irán mostrando la historia de cada parte de la interfaz para así sirva como guía de cómo será la interfaz diseñada.

Ilustración 12. Wireframe principal de la interfaz. Fuente: Realizada por el autor.

La interfaz diseñada y vista en la Ilustración 12 será la única vista de la interfaz, el usuario interactuará únicamente sobre esta vista, de tal forma que una vez se ha seleccionado el tipo de simulación, las propiedades asociadas a ese tipo serán modificables y las demás propiedades no lo serán.

(46)

Ilustración 13. Storyboard: (A) selección de nieve, (B) selección de fluido. Fuente: Realizada por el autor.

Como se observa en la Ilustración 13, la selección de nieve permitirá el acceso a la modificación de los parámetros asociados, de igual forma para la selección de fluido (tanto para el tipo de simulación “Strong rain” como “Storm” utilizan los parámetros del fluido, es decir, comparten los mismos parámetros).

(47)

Ilustración 14. Mockup de la interfaz diseñada. Fuente: Realizada por el autor.

Una vez representado el wireframe, se construye el mockup visto en la Ilustración 14 donde se especifica, la estructura, el contenido, las funcionalidades básicas y las decisiones gráficas de la solución de diseño.

Se ha elegido este diseño de la interfaz con el fin de ser lo más intuitiva y simple posible para que el usuario simplemente tenga que elegir un tipo de simulación. En el caso de que el usuario sea un experto en medioambiente podrá introducir los parámetros deseados para su simulación, en cualquier otro caso, estos parámetros vendrán predeterminados según las propiedades en condiciones normales de los tipos de simulación incluidos en el sistema.

(48)
(49)

3 D ESARROLLO

El desarrollo de este proyecto se encuentra dividido en iteraciones, detalladas en el apartado de Planificación temporal, puesto que la metodología empleada es ágil.

En cada iteración se irán solucionando problemas específicos, al final de cada una se identificarán nuevas necesidades que, por tanto, se resolverán en iteraciones posteriores.

En los siguientes subapartados se presentarán un conjunto de resultados, a modo de posibles soluciones que en siguientes iteraciones se solucionarán. Por tanto, el apartado Resultados queda supeditado al desarrollo de pruebas adicionales que muestren las capacidades de la solución final.

3.1 Primera Iteración: Desarrollo de simulaciones previas y mezcla de materiales

3.1.1 Preliminares

Previo a esta iteración se llevó a cabo un estudio del estado del arte, así como de soluciones similares para la simulación físicamente realista de materiales deformables. En concreto, se encontraron algunas alternativas basadas en OpenGL, no obstante, presentan importantes limitaciones en términos de realismo. Por esta razón, y con el fin de desarrollar un prototipo ajustado a los requisitos previamente descritos, se procede al uso de la herramienta Maya 3D junto al paquete de simulación Bifrost, donde ya viene implementada una solución de MPM.

3.1.2 Desarrollo

Bifrost proporciona un entorno de programación visual basado en nodos.

Primeramente, para que se entienda lo que se realiza en cada uno de los grafos expuestos en este trabajo, los nodos se han clasificado de la siguiente manera:

Nodos principales (Ilustración 15): estos nodos estarán presentes en todos y cada uno de los grafos creados, estos serán los que permitirán una simulación física a través del algoritmo MPM. En la Ilustración 15 se pueden distinguir tres nodos, el primero de ellos es (A) “mpm_solver_settings”, trata

Referencias

Documento similar

The part I assessment is coordinated involving all MSCs and led by the RMS who prepares a draft assessment report, sends the request for information (RFI) with considerations,

La propuesta que esta Tesis hace al respecto consiste en un nuevo método de desarrollo de software para redes de sensores, basado en el Desarrollo de

Figura 6.15: Caso de estudio 2: análisis de frente a cargas de viento con 15 m/s, con oleaje irregular obtenido del espectro JONSWAP, con una altura significativa de 5 m y periodo

[r]

Debido a que este proyecto pertenece al polo de Bioinformática y es un estándar o paradigma del polo el desarrollo de software libre utilizando el sistema operativo Linux, además

Este trabajo ha tratado de demostrar la importancia que tienen las pruebas de unidad, carga, volumen, regresión y estrés de manera automatizada en las

Debido a que Rational Rose es una herramienta CASE de software propietario y según lo planteado anteriormente, se decidió utilizar el Visual Paradigm, ya que es una

Este servicio es útil para los grupos y empresas desarrolladoras de software, ya que facilita la comunicación entre los clientes y la empresa e incrementa la calidad de los