GRADO EN INGENIERÍA MULTIMEDIA -...

110
GRADO EN INGENIERÍA MULTIMEDIA TRABAJO DE FIN DE GRADO DESARROLLO DE PLUG-IN PARA MODELADOR 3D Y ANÀLISIS DE ALGORITMOS PARA LA GENERACIÓN DE TERRENO PROCEDURAL AUTOR: JORGE GARCÍA SOLA TUTORÍA: JOSÉ ANTONIO BOLUDA GRAU IGNACIO GARCÍA FERNÁNDEZ MAYO, 2017

Transcript of GRADO EN INGENIERÍA MULTIMEDIA -...

Page 1: GRADO EN INGENIERÍA MULTIMEDIA - UVtapec.uv.es/jboluda/projectes/proyectos_antiguos/JORGE_GARCIA_S… · TRABAJO DE FIN DE GRADO DESARROLLO DE PLUG-IN PARA MODELADOR 3D Y ANÀLISIS

GRADO EN INGENIERÍA MULTIMEDIA

TRABAJO DE FIN DE GRADO

DESARROLLO DE PLUG-IN PARA MODELADOR 3D Y

ANÀLISIS DE ALGORITMOS PARA LA GENERACIÓN DE

TERRENO PROCEDURAL

AUTOR:

JORGE GARCÍA SOLA

TUTORÍA:

JOSÉ ANTONIO BOLUDA GRAU

IGNACIO GARCÍA FERNÁNDEZ

MAYO, 2017

Page 2: GRADO EN INGENIERÍA MULTIMEDIA - UVtapec.uv.es/jboluda/projectes/proyectos_antiguos/JORGE_GARCIA_S… · TRABAJO DE FIN DE GRADO DESARROLLO DE PLUG-IN PARA MODELADOR 3D Y ANÀLISIS

2

GRADO EN INGENIERÍA MULTIMEDIA

TRABAJO DE FIN DE GRADO

DESARROLLO DE PLUG-IN PARA MODELADOR 3D Y

ANÀLISIS DE ALGORITMOS PARA LA GENERACIÓN DE

TERRENO PROCEDURAL

AUTOR:

JORGE GARCÍA SOLA

TUTORÍA:

JOSÉ ANTONIO BOLUDA GRAU

IGNACIO GARCÍA FERNÁNDEZ

TRIBUNAL:

PRESIDENTE/PRESIDENTA:

VOCAL 1:

VOCAL 2:

FECHA DE DEFENSA:

CALIFICACIÓN:

Page 3: GRADO EN INGENIERÍA MULTIMEDIA - UVtapec.uv.es/jboluda/projectes/proyectos_antiguos/JORGE_GARCIA_S… · TRABAJO DE FIN DE GRADO DESARROLLO DE PLUG-IN PARA MODELADOR 3D Y ANÀLISIS

3

Resumen

El modelado procedural de terrenos es una de las soluciones que ha presentado la

informática grafica para los diversos problemas que aparecen en el modelado 3D. Busca

aliviar la carga de trabajo de los diseñadores.

Este proyecto consiste en la creación de una herramienta para modelador 3D, en concreto,

Blender. Para generar esta extensión se han evaluado las distintas técnicas existentes para el

modelado de terrenos y se han seleccionado algunas, explicando el porqué de estas

decisiones. En la memoria se han evaluado los resultados obtenidos y se ha estudiado cada

algoritmo implementado, comparándolos entre ellos. La herramienta también incluye un

algoritmo de coloración o texturizado básico.

Al ser esto la memoria de un proyecto de ingeniería se han detallado todas las fases del

proyecto y se han realizado las fases pertinentes. Siendo estas la redacción de las

motivaciones y los objetivos del proyecto, un estado del arte, en el que se expone en que

parte de la informática grafica esta este proyecto, se estudian las distintas herramientas que

sería posible utilizar para este proyecto y se evalúan las distintas técnicas existentes para la

modelación de terrenos 3D, una especificación en la que se detalla la planificación del

proyecto incluyendo un análisis de riesgos, el propio desarrollo del proyecto, las pruebas y

estudios realizados sobre la herramienta finalizada y finalmente las conclusiones y un breve

comentario sobre el trabajo futuro.

Se ha conseguido desarrollar una herramienta con resultados satisfactorios y se han estudiado

los algoritmos implementados desde un punto de vista objetivo, utilizando para analizar las

partes más subjetivas de este trabajo un grupo variado de usuarios.

Page 4: GRADO EN INGENIERÍA MULTIMEDIA - UVtapec.uv.es/jboluda/projectes/proyectos_antiguos/JORGE_GARCIA_S… · TRABAJO DE FIN DE GRADO DESARROLLO DE PLUG-IN PARA MODELADOR 3D Y ANÀLISIS

4

Contenido

1. Introducción ................................................................................................................12

1.1 Desglose de la estructura del documento............................................................................................................ 12

2. Motivación y objetivos..................................................................................................14

2.1 Motivación......................................................................................................................................................... 14

2.2 Objetivos............................................................................................................................................................ 15

3. Estado del Arte.............................................................................................................16

3.1 Gráficos 3D ...................................................................................................................................................... 16

3.2 Modelado 3D.................................................................................................................................................... 17

3.3 Generación de terreno........................................................................................................................................ 19

Proceso de Poisson ........................................................................................................................................... 21

Filtrado de Fourier ............................................................................................................................................ 21

Síntesis de ruido ................................................................................................................................................. 22

Spectral synthesis .................................................................................................................................................... 22

Desplazamiento aleatorio del punto medio ............................................................................................... 22

Diagramas de Voronoi..................................................................................................................................... 22

3.4 Algoritmos de simulación natural de terreno:................................................................................................... 24

Erosión hídrica y alzamiento tectónico ....................................................................................................... 24

Erosión térmica.................................................................................................................................................. 25

Erosión fluvial .................................................................................................................................................... 25

3.5 Algoritmos de coloración o texturizado procedural .......................................................................................... 26

Mapeado de texturas basado en altura......................................................................................................... 26

Mapeado de texturas basado en pendiente................................................................................................. 26

Atlas de texturas................................................................................................................................................. 26

4. Especificación:............................................................................................................ 28

4.1 Análisis de requisitos........................................................................................................................................ 28

No funcionales ................................................................................................................................................... 28

Funcionales ......................................................................................................................................................... 29

4.2 Especificación del sistema.................................................................................................................................. 30

4.3 Planificación y estimación de costes ................................................................................................................... 30

Estimación temporal ........................................................................................................................................ 30

4.4 Análisis de riesgos............................................................................................................................................. 34

Mitigación ............................................................................................................................................................ 35

Contingencia ....................................................................................................................................................... 35

5. Desarrollo del proyecto................................................................................................ 36

Page 5: GRADO EN INGENIERÍA MULTIMEDIA - UVtapec.uv.es/jboluda/projectes/proyectos_antiguos/JORGE_GARCIA_S… · TRABAJO DE FIN DE GRADO DESARROLLO DE PLUG-IN PARA MODELADOR 3D Y ANÀLISIS

5

5.1 Análisis............................................................................................................................................................. 36

5.2 Diseño ................................................................................................................................................................... 40

5.3 Implementación ..................................................................................................................................................... 42

5.3.1 Entorno de trabajo ................................................................................................................................. 42

5.3.2 Implementación de algoritmos............................................................................................................ 42

5.3.3 Implementación de la interfaz y del generador de mallas ............................................................ 47

6. Pruebas ....................................................................................................................... 49

6.1 Pruebas unitarias.................................................................................................................................................. 49

6.1.1 Desplazamiento del punto medio:...................................................................................................... 49

6.1.2 Filtrado de Fourier:................................................................................................................................. 51

6.1.3 Erosión térmica ....................................................................................................................................... 53

6.1.4 Erosión hídrica ........................................................................................................................................ 54

6.1.5 Generación tectónica y fluvial ............................................................................................................. 57

6.1.6 Coloración del terreno ........................................................................................................................... 58

6.2 Pruebas funcionales............................................................................................................................................... 59

6.2.1 Combinaciones de algoritmos ............................................................................................................. 59

6.2.2 Generación de tipos de terreno........................................................................................................... 62

6.3 Pruebas de rendimiento ......................................................................................................................................... 66

Algoritmo de desplazamiento del punto medio........................................................................................ 66

Algoritmo de filtrado de Fourier................................................................................................................... 67

Algoritmo de erosión térmica ........................................................................................................................ 67

Algoritmo de erosión hídrica ......................................................................................................................... 68

Algoritmo de generación fluvial y alzamiento tectónico ........................................................................ 68

6.4 Pruebas de usabilidad ........................................................................................................................................... 71

6.4.1 Encuesta sobre naturalidad .................................................................................................................. 71

6.4.2 Uso de la herramienta ............................................................................................................................ 73

6.5 Evaluación presupuestaria.................................................................................................................................... 75

7. Conclusiones ............................................................................................................... 77

7.1 Conclusiones .......................................................................................................................................................... 77

7.2 Trabajo futuro....................................................................................................................................................... 78

Anexo 1: Manual de Usuario................................................................................................ 79

1. Métodos de generación ....................................................................................................................................... 79

a. Desplazamiento del punto medio (generar terreno 1).................................................................. 79

b. Filtrado de Fourier (generar terreno 2)............................................................................................. 82

c. Generación fluvial .................................................................................................................................. 83

2. Métodos de erosión ............................................................................................................................................ 84

a. Erosión térmica ....................................................................................................................................... 84

b. Erosión Hídrica....................................................................................................................................... 85

c. Algoritmo de Coloración ...................................................................................................................... 89

Anexo 2: Encuesta naturalidad ............................................................................................ 90

Page 6: GRADO EN INGENIERÍA MULTIMEDIA - UVtapec.uv.es/jboluda/projectes/proyectos_antiguos/JORGE_GARCIA_S… · TRABAJO DE FIN DE GRADO DESARROLLO DE PLUG-IN PARA MODELADOR 3D Y ANÀLISIS

6

Parte 1 ......................................................................................................................................................................... 91

Colinas .................................................................................................................................................................. 91

Delta...................................................................................................................................................................... 92

Ladera ................................................................................................................................................................... 93

Montañas ............................................................................................................................................................. 94

Planicie ................................................................................................................................................................. 95

Parte 2 ......................................................................................................................................................................... 96

Parte 3 ....................................................................................................................................................................... 100

Colinas ................................................................................................................................................................ 100

Delta.................................................................................................................................................................... 101

Ladera ................................................................................................................................................................. 102

Montañas ........................................................................................................................................................... 103

Planicie ............................................................................................................................................................... 104

Anexo 3: Encuestas usabilidad ........................................................................................... 105

8. Bibliografía ................................................................................................................ 108

Page 7: GRADO EN INGENIERÍA MULTIMEDIA - UVtapec.uv.es/jboluda/projectes/proyectos_antiguos/JORGE_GARCIA_S… · TRABAJO DE FIN DE GRADO DESARROLLO DE PLUG-IN PARA MODELADOR 3D Y ANÀLISIS

7

Lista de Ecuaciones

Ecuación 1. Algoritmo del cálculo de la altura a partir de puntos de control ........................................... 23

Ecuación 2. Cáculo media beta .............................................................................................................................. 31

Ecuación 3. Varianza ................................................................................................................................................ 32

Ecuación 4. Colchón de seguridad con probabilidad al 95% ........................................................................ 32

Ecuación 5. Centro entre cuatro esquinas .......................................................................................................... 43

Ecuación 6. Centro entre dos esquinas................................................................................................................ 43

Ecuación 7. Covarianza para superficie browniana.......................................................................................... 43

Ecuación 8. Altura del vértice ................................................................................................................................ 45

Ecuación 9. Altura del vecino................................................................................................................................. 45

Ecuación 10. Dominio de velocidades de crecimiento .................................................................................... 46

Lista de Tablas

Tabla 1. Estimación de costes ................................................................................................................................. 34

Tabla 2. Análisis de riesgos con probabilidad e impacto................................................................................. 35

Tabla 3. Planes de mitigación para impacto alto ................................................................................................ 35

Tabla 4. Plan de contingencia para impacto alto ............................................................................................... 35

Tabla 5. Casos de uso de generación de terreno................................................................................................ 37

Tabla 6. Casos de uso de suavizado del terreno................................................................................................. 38

Tabla 7. Casos de uso de texturización del terreno........................................................................................... 38

Tabla 8. Algoritmo de desplazamiento al punto medio ................................................................................... 67

Tabla 9. Algoritmo de filtrado de Fourier ........................................................................................................... 67

Tabla 10. Algoritmo de erosión térmica ............................................................................................................... 68

Tabla 11. Algoritmo de erosión hídrica ................................................................................................................ 68

Tabla 12. Algoritmo de generación fluvial ........................................................................................................... 69

Tabla 14. Comparativa de costes estimados y reales......................................................................................... 76

Lista de Figuras

Figura 1. Planet Explorers (2014) .......................................................................................................................... 20

Figura 2. Starforge (2014) ........................................................................................................................................ 20

Figura 3. The Good Dinosaur (2015)................................................................................................................... 21

Figura 4. Terreno crudo. .......................................................................................................................................... 23

Figura 5. Terreno tras aplicar algoritmo de erosión ......................................................................................... 24

Figura 6. Planificación estimada............................................................................................................................. 31

Figura 7. Diagrama de Gantt .................................................................................................................................. 33

Figura 8. Diagrama de casos de uso...................................................................................................................... 36

Figura 9. Interfaz general ......................................................................................................................................... 40

Figura 10. Interfaz para generación por desplazamiento del punto medio ................................................ 40

Page 8: GRADO EN INGENIERÍA MULTIMEDIA - UVtapec.uv.es/jboluda/projectes/proyectos_antiguos/JORGE_GARCIA_S… · TRABAJO DE FIN DE GRADO DESARROLLO DE PLUG-IN PARA MODELADOR 3D Y ANÀLISIS

8

Figura 11. Interfaz para erosión térmica............................................................................................................... 41

Figura 12. Interfaz para erosión hídrica ............................................................................................................... 41

Figura 13. Interfaz para coloreado......................................................................................................................... 41

Figura 14. Diagrama de clases ................................................................................................................................. 42

Figura 15. Pasos del desplazamiento aleatorio del punto medio ................................................................... 43

Figura 16. Mapa de alturas sin componente aleatoria....................................................................................... 49

Figura 17. Factor de suavizado 0............................................................................................................................ 50

Figura 18. Factor de suavizado 0.5 ........................................................................................................................ 50

Figura 19. Factor de suavizado 1............................................................................................................................ 50

Figura 20. Factor de suavizado 2 ........................................................................................................................... 50

Figura 21. 27 + 1 vértices.......................................................................................................................................... 51

Figura 22. 28 + 1 vértices ......................................................................................................................................... 51

Figura 23. 27 vértices por lado ................................................................................................................................ 52

Figura 24. 28 vértices por lado ................................................................................................................................ 52

Figura 25. Superficie browniana con a: 1, h: 0.8 ................................................................................................ 52

Figura 26. Factor suavizado 0.5.............................................................................................................................. 52

Figura 27. Factor suavizado 0.01 ........................................................................................................................... 52

Figura 28. Factor amplitud 30 ................................................................................................................................ 53

Figura 29. Factor amplitud 20 ................................................................................................................................ 53

Figura 30. Factor amplitud 10 ................................................................................................................................ 53

Figura 31. Factor suavizado 1 ................................................................................................................................. 53

Figura 32. Erosión térmica al 3 .............................................................................................................................. 54

Figura 33. Erosión térmica al 2 .............................................................................................................................. 54

Figura 34. Erosión termica al 1 .............................................................................................................................. 54

Figura 35. Erosión térmica al 0.1 ........................................................................................................................... 54

Figura 36. Segundo set de valores ......................................................................................................................... 55

Figura 37. Primer set de valores ............................................................................................................................. 55

Figura 38. Malla base................................................................................................................................................. 55

Figura 39. Coeficiente capacidad 1........................................................................................................................ 56

Figura 40. Coeficiente capacidad 0.25 .................................................................................................................. 56

Figura 41. Coeficiente capacidad 0 ........................................................................................................................ 56

Figura 42. Lluvia al 0.25 ........................................................................................................................................... 57

Figura 43. Evaporación a 1...................................................................................................................................... 57

Figura 44. Evaporación a 0...................................................................................................................................... 57

Figura 45. Maya tras aplicar algoritmo ................................................................................................................. 58

Figura 46. Maya inicial provista .............................................................................................................................. 58

Figura 47. Amplitud 30............................................................................................................................................. 58

Figura 48. Amplitud 10............................................................................................................................................. 58

Figura 49. Maya inicial .............................................................................................................................................. 58

Figura 50. Erosión hídrica sobre punto medio .................................................................................................. 59

Figura 51. Malla generada con punto medio....................................................................................................... 59

Figura 52. Malla generada con superficie Browniana ....................................................................................... 60

Figura 53. Erosión hídrico-térmica sobre punto medio .................................................................................. 60

Figura 54. Erosión térmica sobre Browniana..................................................................................................... 60

Figura 55. Erosión hídrica sobre Browniana ...................................................................................................... 60

Figura 56. Erosión térmica-hídrica sobre punto medio .................................................................................. 60

Figura 57. Erosión térmica sobre punto medio ................................................................................................. 60

Figura 58. Erosión hídrico – térmica sobre Browniana................................................................................... 61

Figura 59. Erosión térmica – hídrica sobre Browniana ................................................................................... 61

Page 9: GRADO EN INGENIERÍA MULTIMEDIA - UVtapec.uv.es/jboluda/projectes/proyectos_antiguos/JORGE_GARCIA_S… · TRABAJO DE FIN DE GRADO DESARROLLO DE PLUG-IN PARA MODELADOR 3D Y ANÀLISIS

9

Figura 60. Fluvial hídrica.......................................................................................................................................... 61

Figura 61. Fluvial térmica ......................................................................................................................................... 61

Figura 62. Fluvial Hídrico-térmica ........................................................................................................................ 62

Figura 63. Fluvial Térmico-hídrica ........................................................................................................................ 62

Figura 64. Dunas mediante generación fluvial ................................................................................................... 62

Figura 65. Dunas mediante erosión térmica ....................................................................................................... 63

Figura 66. Dunas mediante erosión hídrica ........................................................................................................ 63

Figura 67. Delta mediante generación fluvial ..................................................................................................... 63

Figura 68. Escarpadas mediante e. hídrica .......................................................................................................... 64

Figura 69. Escarpadas mediante e. térmica ......................................................................................................... 64

Figura 70. Montañas escarpadas mediante generación fluvial ....................................................................... 64

Figura 71. Delta mediante erosión hídrica........................................................................................................... 64

Figura 72. Delta mediante erosión térmica ......................................................................................................... 64

Figura 73. Llanura mediante erosión hídrica ...................................................................................................... 65

Figura 74. Llanura mediante erosión termica ..................................................................................................... 65

Figura 75. Llanura mediante generación fluvial ................................................................................................. 65

Figura 76. Barranco mediante generación fluvial .............................................................................................. 66

Figura 77. Barranco mediante e. térmica ............................................................................................................. 66

Figura 78. Barranco mediante e. hídrica .............................................................................................................. 66

Figura 79. Gráfica comparativa con valores duplicados de algoritmos de generación tiempo/vértices

........................................................................................................................................................................................... 69

Figura 80. Gráfica comparativa de algoritmos de generación tiempo/vértices ........................................ 69

Figura 81. Comparativa vértices/tiempo de iteración para algoritmo de erosión. ................................... 70

Figura 82. Comparativa con valores duplicados vértices/tiempo de iteración para algoritmo de

erosión............................................................................................................................................................................. 70

Figura 83. Resultados sobre la encuesta “terrenos crudos” ........................................................................... 72

Figura 84. Resultados de la encuesta con muchos vértices............................................................................. 72

Figura 85. Resultados de la encuesta comparando Fourier/Punto medio ................................................. 73

Figura 86. Diagrama de gantt.................................................................................................................................. 75

Figura 87. Factor de suavizado 1 ........................................................................................................................... 79

Figura 88. Factor de suavizado 0.1 ........................................................................................................................ 79

Figura 89. Orden 3..................................................................................................................................................... 79

Figura 90. Orden 2..................................................................................................................................................... 79

Figura 91. Amplitud 100 en un terreno de orden 7 (16641 vértices) ........................................................... 81

Figura 92. Amplitud 10 en un terreno de orden 7 (16641 vértices) ............................................................. 80

Figura 93. Malla para inicializar las esquinas y su resultado ........................................................................... 81

Figura 94. Amplitud 20 en un terreno de orden 7(16384 vértices) .............................................................. 82

Figura 95. Amplitud 100 en un terreno de orden 7(16384 vértices) ............................................................ 82

Figura 96. Factor de suavizado en 0,1 .................................................................................................................. 82

Figura 97. Factor de suavizado 0,9 ........................................................................................................................ 83

Figura 98. Malla inicial .............................................................................................................................................. 83

Figura 99. Resultado .................................................................................................................................................. 83

Figura 100. Resultado ................................................................................................................................................ 84

Figura 101. Malla inicial............................................................................................................................................. 84

Figura 102. Terreno Crudo ...................................................................................................................................... 84

Figura 103. Erosión con pendiente máxima 2.................................................................................................... 85

Figura 104. Erosión con pendente máxima 1 ..................................................................................................... 85

Figura 105. Terreno con 100 iteraciones de erosión hídrica........................................................................... 86

Figura 106. 20 iteraciones de e. hídrica con coef. de solubilidad: 0.25 ........................................................ 86

Page 10: GRADO EN INGENIERÍA MULTIMEDIA - UVtapec.uv.es/jboluda/projectes/proyectos_antiguos/JORGE_GARCIA_S… · TRABAJO DE FIN DE GRADO DESARROLLO DE PLUG-IN PARA MODELADOR 3D Y ANÀLISIS

10

Figura 107. 20 iteraciones de e. hídrica y coef. de solubilidad: 0.05 ............................................................. 86

Figura 108. Terreno con 20 iteraciones de erosión hídrica con coeficiente de evaporación 1 ............. 87

Figura 109. Terreno con 20 iteraciones de erosión hídrica con coeficiente de evaporación 0 ............. 87

Figura 110.Terreno con 20 iteraciones de erosión hídrica con coeficiente de lluvia 0.1......................... 88

Figura 111. Terreno con 20 iteraciones de erosión hídrica con coeficiente de capacidad 0................... 88

Figura 112. Terreno con 20 iteraciones de erosión hídrica con coeficiente de capacidad 0.5 ............... 88

Figura 113. Terreno con 20 iteraciones de erosión hídrica con coeficiente de lluvia 0.5 ....................... 89

Figura 114. Terreno con pendiente de roca 1 altura de nieve 0 y altura de mar -50 ................................ 90

Figura 115. Terreno con pendiente roca 0 altura de mar -15 y altura de nieve 50.................................... 90

Figura 116. Terreno con pendiente roca 0.5, altura de mar 0 y altura de nieve 50 ................................... 90

Figura 117. Terreno a colorear................................................................................................................................ 90

Figura 118. Colinas 2 ................................................................................................................................................. 91

Figura 119. Colinas 1 ................................................................................................................................................. 91

Figura 120. Delta 2..................................................................................................................................................... 92

Figura 121. Colinas 3 ................................................................................................................................................. 92

Figura 122. Delta 1..................................................................................................................................................... 92

Figura 123. Delta 3..................................................................................................................................................... 93

Figura 124. Ladera 2 .................................................................................................................................................. 93

Figura 125. Ladera 3 .................................................................................................................................................. 94

Figura 126. Montañas 1 ............................................................................................................................................ 94

Figura 127. Montañas 2 ............................................................................................................................................ 94

Figura 128. Ladera 1 .................................................................................................................................................. 94

Figura 129. Montañas 3 ............................................................................................................................................ 95

Figura 130. Planicie 2 ................................................................................................................................................ 95

Figura 131. Planicie 1 ................................................................................................................................................. 95

Figura 132. Planicie 3 ................................................................................................................................................ 96

Figura 133. Escena 1.................................................................................................................................................. 96

Figura 134. Escena 4.................................................................................................................................................. 97

Figura 135. Escena 3.................................................................................................................................................. 97

Figura 136. Escena 2.................................................................................................................................................. 97

Figura 137. Escena 7.................................................................................................................................................. 98

Figura 138. Escena 6.................................................................................................................................................. 98

Figura 139. Escena 5.................................................................................................................................................. 98

Figura 140. Escena 10 ............................................................................................................................................... 99

Figura 141. Escena 9 .................................................................................................................................................. 99

Figura 142. Escena 8.................................................................................................................................................. 99

Figura 143. Colinas 3 ............................................................................................................................................... 100

Figura 144. Colinas 2 ............................................................................................................................................... 100

Figura 145. Colinas 1 ............................................................................................................................................... 100

Figura 146. Delta 3................................................................................................................................................... 101

Figura 147. Delta 2................................................................................................................................................... 101

Figura 148. Delta 1................................................................................................................................................... 101

Figura 149. Ladera 2 ................................................................................................................................................ 102

Figura 150. Ladera 3 ................................................................................................................................................ 102

Figura 151. Ladera 1................................................................................................................................................. 102

Figura 152. Montañas 3 .......................................................................................................................................... 103

Figura 153. Montañas 2 .......................................................................................................................................... 103

Figura 154. Montañas 1 .......................................................................................................................................... 103

Figura 155. Planicie 3 .............................................................................................................................................. 104

Page 11: GRADO EN INGENIERÍA MULTIMEDIA - UVtapec.uv.es/jboluda/projectes/proyectos_antiguos/JORGE_GARCIA_S… · TRABAJO DE FIN DE GRADO DESARROLLO DE PLUG-IN PARA MODELADOR 3D Y ANÀLISIS

11

Figura 156. Planicie 2 .............................................................................................................................................. 104

Figura 157. Planicie 1 .............................................................................................................................................. 104

Page 12: GRADO EN INGENIERÍA MULTIMEDIA - UVtapec.uv.es/jboluda/projectes/proyectos_antiguos/JORGE_GARCIA_S… · TRABAJO DE FIN DE GRADO DESARROLLO DE PLUG-IN PARA MODELADOR 3D Y ANÀLISIS

12

1. Introducción

La informática gráfica tiene numerosas aplicaciones, desde videojuegos hasta simuladores de

operaciones quirúrgicas. Para la mayoría de estos usos es necesario facilitar un entorno, ya

sea para darle realismo o para facilitar su uso interactivo.

En el modelado de entornos 3D, sean cuales sean sus fines, siempre aparecen varios

problemas, siendo el realismo y el trabajo necesario para conseguirlo uno de ellos.

Este problema es particularmente considerable cuando se trata de modelar un paisaje natural,

ya sea para tener un entorno virtual en un videojuego, para acompañar contenido multimedia

de otra naturaleza (como por ejemplo una producción cinematográfica) o senci llamente para

realizar simulaciones físicas de cómo se comportan los paisajes al verse afectados por

distintos fenómenos con el paso de los años. Esto se debe a que para modelar un terreno se

necesita posicionar un elevado número de vértices formando una malla de manera muy

perfeccionista, o se perderá en detalles y realismo; y esto resulta muy tedioso de hacer a

mano, y suele conllevar un número elevado de horas de trabajo.

La solución que se utiliza en este trabajo para resolver dicho problema es la generación de

terreno procedural, es decir, calcular mediante un algoritmo la posición de los vértices

necesaria para que la malla que representan en su conjunto se asemeje a un terreno. La

mayoría de veces esto se hace empleando un mapa de alturas (una malla plana), donde se

calcula valor z de manera pseudo-aleatoria.

Existen distintos algoritmos para la generación de terreno procedural , así que se

implementarán y analizarán varias de las posibles soluciones. Para darle un aspecto natural se

suavizarán las mallas resultantes mediante algoritmos de simulación física de terrenos

naturales

Esta solución se implementará en forma de herramienta para modelador 3D, ya que es el

entorno en que típicamente uno se enfrenta a estos desafíos. En el trabajo se decidirá

también para qué modelador se programará esta herramienta y se explicará porqué.

Ya existen algunas herramientas que realizan tareas similares a lo que se pretende desarrollar,

sin embargo, presentan distintos problemas: interfaces poco amigables o demasiado técnicas,

o carencias en su documentación. Este trabajo pretende obtener una herramienta sin estos

fallos y una documentación completa.

1.1 Desglose de la estructura del documento

Ahora procederé a explicar los puntos que tiene este trabajo.

Page 13: GRADO EN INGENIERÍA MULTIMEDIA - UVtapec.uv.es/jboluda/projectes/proyectos_antiguos/JORGE_GARCIA_S… · TRABAJO DE FIN DE GRADO DESARROLLO DE PLUG-IN PARA MODELADOR 3D Y ANÀLISIS

13

El capítulo 1, que es este, es una breve introducción al proyecto e incluye también una

sucinta explicación de cada uno de los puntos que contiene este trabajo.

En el capítulo 2 se explica cuál es la motivación existente para el desarrollo de este proyecto

y cuáles son los objetivos que se pretendía conseguir con el mismo.

En el capítulo 3 se habla de la situación actual de la informática gráfica, cómo se ha llegado a

ese punto y cómo, a partir de ella, nació el modelado 3D. También se explicarán algunos de

los modeladores 3D que existen actualmente comentando brevemente sus características. S e

hablará de los algoritmos para la generación de terreno procedural existentes, explicando en

qué consisten cada uno de ellos y cuáles se utilizaron en el proyecto. Además, se hablará

también de los algoritmos de simulación física aplicados sobre los terrenos procedurales,

cuáles de ellos utilizamos, cuáles no y las razones tras dicha elección. Por último, se hablará

de qué algoritmos existen para aplicar texturas de manera procedural a estos terrenos;

explicándolos y dando a conocer cuáles se han empleado y el motivo por el que su uso ha

sido preferido.

En el capítulo 4 se empieza realizando un análisis de los requisitos que debe cumplir la

herramienta a desarrollar para satisfacer los objetivos establecidos el capítulo 2. Acto seguido

se detalla la especificación del sistema, que consiste en el conjunto de funcionalidades que

este posee. Además, incluye una planificación temporal en la que distintos expertos estiman

la cantidad de horas necesarias para realizar las distintas tareas de las que se compone el

proyecto. Por último, se añade un análisis de los posibles riesgos que conlleva el desarrollo de

esta herramienta con sus respectivos planes de contingencia y contención.

En el capítulo 5 se analiza la aplicación a desarrollar realizando un diagrama de casos de uso,

teniendo en cuenta todas las posibles maneras de las que se puede utilizar esta herramienta.

También se incluye el modelo de datos que vamos a emplear para el desarrollo de la

aplicación. El capítulo continúa con el diseño de la aplicación, tanto de su entorno de usuario

como de las clases que componen la herramienta. Finalizando este capítulo se encuentra la

implementación de la herramienta.

En el capítulo 6 se encuentra la descripción de las pruebas realizadas con la herramienta,

unitarias funcionales, de rendimiento y de usabilidad. Continuando este capítulo se exponen

los resultados obtenidos de las pruebas y se discute sobre ellos. Para acabar, se presenta una

evaluación presupuestaria de la implementación de la herramienta y se compara con la

planificación de costes.

El capítulo 7 consiste en las conclusiones sacadas del trabajo realizado, principalmente sobre

los datos obtenidos en las pruebas, y se plantea el trabajo futuro, es decir, cómo continuar

desarrollando y mejorando la herramienta.

Anexo: Manual de usuario. Se incluye al final del documento un manual de usuario, que

explica cómo utilizar la herramienta y los parámetros de entrada de los algoritmos.

Page 14: GRADO EN INGENIERÍA MULTIMEDIA - UVtapec.uv.es/jboluda/projectes/proyectos_antiguos/JORGE_GARCIA_S… · TRABAJO DE FIN DE GRADO DESARROLLO DE PLUG-IN PARA MODELADOR 3D Y ANÀLISIS

14

2. Motivación y objetivos

2.1 Motivación

Como ya se ha mencionado en la introducción, existe una necesidad de herramientas de

modelado de terreno o entorno 3D entre los modeladores.

Durante los últimos años las industrias del videojuego, la animación y el cine han estado en

auge, así como también han aumentado el número de simuladores utilizados en estudios

científicos o con fines educativos.

Por tanto, la demanda de este tipo de herramientas también ha ido en aumento y se ha

intentado satisfacer. Sin embargo, la mayoría de plug-ins existentes (de los que se hablará en el

estado del arte) carecen de dos cosas: una interfaz amigable para usuarios poco

experimentados en programación o en los métodos de generación de terreno, y

documentación adecuada.

Una interfaz amigable es necesaria para mejorar la experiencia ofrecida por este tipo de

herramientas por diversos motivos. Ofrecer mayor control de la aplicación es muy cómodo,

ya que al crear una interfaz amigable e intuitiva le ahorraremos trabajo al usuario a la hora de

modificar la malla de vértices.

Además, es necesario que la herramienta sea fácil de utilizar si lo que se pretende es faci l i tar

el trabajo del usuario. Es mucho mejor a nivel de adaptabilidad y productividad que el

usuario no tenga que tenga que ajustarse un sinfín de parámetros cada vez que trata generar

un terreno.

Por último, que la herramienta tenga un aspecto agradable normalmente genera una

respuesta positiva por parte del usuario.

Continuando con la idea de responder a las necesidades que los usuarios puedan tener, es

importante para que los proyectos queden bien documentados; pero es común que en

software libre o en herramientas destinadas a un público experto la documentación sea

escasa o esté redactada de manera poco asequible para usuarios menos experimentados.

En este caso es necesario crear una buena documentación, incluyendo un manual para

facilitar su uso al usuario y para que se pueda continuarse su desarrollo con facilidad.

La investigación sobre algoritmia para este tipo de herramientas es obligatoria para obtener la

calidad demandada por el usuario en los terrenos generados y para facilitar futuro trabajo.

Por tanto, es necesaria la realización de pruebas y estudios comparativos entre los algoritmos

existentes para así averiguar cuáles son los más eficientes y cuáles obtienen mejores

resultados. A partir de estos datos se podrá hacer un balance sobre los algoritmos que

Page 15: GRADO EN INGENIERÍA MULTIMEDIA - UVtapec.uv.es/jboluda/projectes/proyectos_antiguos/JORGE_GARCIA_S… · TRABAJO DE FIN DE GRADO DESARROLLO DE PLUG-IN PARA MODELADOR 3D Y ANÀLISIS

15

deberán ser utilizados e informar al usuario sobre esto para que pueda juzgar que algoritmo

se ajusta más a sus necesidades.

En conclusión, es necesario el desarrollo de una herramienta de generación de terrenos para

modelador 3D que tenga resultados visualmente aceptables, una interfaz fácil amigable y una

documentación completa que incluya un estudio sobre las técnicas utilizadas además de un

manual de usuario que facilite su uso.

2.2 Objetivos

Como podemos deducir a partir del apartado anterior, este trabajo tendrá como objetivo

final crear una extensión para modelador 3D. Dicha extensión ha de ser capaz de generar

superficies de terreno 3D realistas y aceptables para el usuario medio. También se ha de

adjuntar la documentación pertinente que facilite la comprensión de la extensión y contenga

un estudio de las distintas técnicas para cumplir su función.

Para alcanzar este objetivo final se deberán satisfacer los siguientes objetivos adicionales:

Codificar al menos dos algoritmos distintos de generación de mallas o terrenos 3D en el

lenguaje nativo del modelador elegido. En el apartado de estado del arte se discutirá sobre la

investigación en marcha y sobre las técnicas empleadas para esto. A continuación, se

procederá a defender la elección de las técnicas seleccionadas para codificar con la

herramienta.

Los terrenos generados necesitarán un suavizado, lo que nos lleva al siguiente objetivo;

codificar al menos dos algoritmos de suavizado de mallas. Se empleará el lenguaje nativo del

modelador 3D elegido. En el estado del arte también se discutirá sobre las técnicas actuales

empleadas y se elegirá cuales serán incorporadas en el proyecto.

Se deberá asimismo codificar en el lenguaje nativo del modelador 3D al menos un algoritmo

de coloración del terreno. También se discutirán en el estado del arte las distintas técnicas

existentes para ello, y se elegirá una para terminar la herramienta de generación de terrenos.

Se creará una interfaz para la herramienta final. Esta interfaz deberá ser amigable y debe

permitir interacción con las distintas variables de los algoritmos previamente mencionados,

aunque no se obligará a que el usuario especifique dichas variables.

Por último, se deberán realizar las pruebas unitarias, funcionales, de rendimiento y de

usabilidad. Todo este procedimiento deberá ser documentado adecuadamente , y los

resultados obtenidos se analizarán en las conclusiones finales de análisis. Se hará especial

énfasis en estudiar en profundidad los datos obtenidos en las pruebas de rendimiento y

usabilidad.

Page 16: GRADO EN INGENIERÍA MULTIMEDIA - UVtapec.uv.es/jboluda/projectes/proyectos_antiguos/JORGE_GARCIA_S… · TRABAJO DE FIN DE GRADO DESARROLLO DE PLUG-IN PARA MODELADOR 3D Y ANÀLISIS

16

3. Estado del Arte

3.1 Gráficos 3D

Antes de hablar de gráficos 3D conviene situarnos. Este trabajo se comprende dentro del

desarrollo de una rama de la ciencia informática o ciencia computacional, concretamente a la

rama de gráficos computacionales. Esta rama se centra en las bases computacionales y

matemáticas de la generación de imágenes.

Esta rama científica nace con la SEAC cuando Russell Kirsch y su equipo utilizaron un

escáner para esta máquina en 1957. La imagen digital de 176x176 píxeles fue utilizada para

mostrar información por la pantalla de un osciloscopio [1].

Más tarde, en la década de los 60, Laboratorios Bell desarrollo las primeras películas

generadas por ordenador y se escribieron varias publicaciones al respecto [2] [3] [4].

En 1960 el desarrollo de la computación grafica continúo principalmente en la universidad

de Utah, donde se fundó la facultad de ciencia computacional y el ARPA.

Años después, en 1968, se fundaba el SIGGRAPH, y en 1974 tuvo lugar la primera

conferencia de gráficos computacionales que este comité organizaría, convirtiéndose en el

lugar predominante para presentar avances en el campo [5].

Durante la siguiente década es constante avance de tecnologías relacionadas propició

numerosos desarrollos particularmente en el ámbito de la animación y sus aplicaciones

cinematográficas. Conviene destacar el framebuffer [6]que desarrollaron los Laboratorios Bell, y

la aplicación de fractales aplicada a este sector desarrollada por Mandelbrot [7] que después

se explicará con más detalle.

En 1980 es cuando la animación 3D aumentó notablemente su presencia en el software

comercial; esta década vio nacer a AutoDesk entre otras empresas, muchas de las cuales han

sido adquiridas a lo largo de los años por la antes mencionada, formando ahora parte de esta

compañía. [8].

Durante los últimos años se han vivido numerosos avances en este campo, desde películas

hechas enteramente con imágenes generadas por computador hasta los modeladores 3D que

se utilizarán en este trabajo.

Se suele dividir el campo de computación gráfica en tres sub-campos distintos:

• Geometría: Estudia la representación de objetos tridimensionales en un espacio digital discreto. Normalmente se emplean superficies bidimensionales para realizar dichas

representaciones, es decir mallas poligonales. Las mallas se conocen como superficies

Page 17: GRADO EN INGENIERÍA MULTIMEDIA - UVtapec.uv.es/jboluda/projectes/proyectos_antiguos/JORGE_GARCIA_S… · TRABAJO DE FIN DE GRADO DESARROLLO DE PLUG-IN PARA MODELADOR 3D Y ANÀLISIS

17

Lagrangianas, pero actualmente se estudian también las superficies Eulerianas , sensibles a

cambios, especialmente a los fluidos.

• Animación: Estudia las representaciones graficas que se mueven o se deforman en el

tiempo. Se ha trabajado sobre todo usando modelos de datos paramétricos, pero en los

últimos años la simulación física ha ganado mucha popularidad en este campo.

• Renderización: Renderizar es generar imágenes a partir de un modelo. Básicamente es

simular la iluminación encima de un modelo y representar sus texturas.

El sub-campo en el que se sitúa la mayor parte de este proyecto es el de la geometría, ya que

para generar los terrenos se utilizan mallas 2D y se hace especial hincapié en las matemáticas

necesarias para asignar las posiciones de los puntos de estas, consiguiendo así imitar la

topografía real. Sin embargo, para la generación final de imágenes a comparar por usuarios y

algunos ejemplos se renderizan las texturas asignadas mediante un sencillo algoritmo de

coloración, por tanto, el proyecto toca parte del sub-campo de renderización también,

aunque no se estudia con detenimiento esta parte.

Dado que estas posiciones se sitúan en un espacio tridimensional, se estará hablando de

gráficos 3D.

Generar gráficos 3D consta de tres fases básicas:

• Modelado: Consiste en darle forma al objeto posicionando los vértices de la malla. Esto

se puede hacer colocándolos “manualmente” de manera procedural, mediante una

simulación física, o escaneando objetos reales. Este trabajo se centra en esta fase de

creación de gráficos 3D.

• Animación: Los objetos deben estar en una escena antes de poder real izar el

renderizado, esto es necesario para definir el espacio en el que están los objetos, su

tamaño y su distancia con otros posibles objetos de la escena. La animación trata de

describir la posición, tamaño y diversas características a lo largo del tiempo. Para ello se

utilizan fotogramas, clave cinemática inversa o captura de movimiento, muchas veces se

combinan estas opciones. También se utiliza la simulación física para las animaciones,

siendo de hecho cada vez más popular.

• Renderizado: Se trata de convertir un modelo en una imagen realista o con fines artísticos simulando la luz en la escena. Existe una gran cantidad de software que se

encarga de realizar este proceso, normalmente integrado en la tarjeta gráfica del

ordenador. Este proceso incluye además un paso de proyección 3D pues transforma una

escena tridimensional en una imagen bidimensional.

Una vez situados en el campo de los gráficos 3D en el que se centra el trabajo, se procede a

examinar en el siguiente punto el estado del modelado 3D.

3.2 Modelado 3D

Como ya se ha mencionado anteriormente, el modelado 3D es el proceso por el cual se crea

un objeto o modelo tridimensional que puede ser representado en una imagen 2D tras el

proceso de renderizado o utilizando por una impresora 3D para crear un objeto físico.

Page 18: GRADO EN INGENIERÍA MULTIMEDIA - UVtapec.uv.es/jboluda/projectes/proyectos_antiguos/JORGE_GARCIA_S… · TRABAJO DE FIN DE GRADO DESARROLLO DE PLUG-IN PARA MODELADOR 3D Y ANÀLISIS

18

Hablemos de las características de los modelos. Los modelos representan un objeto físico

usando puntos en el espacio conectados mediante líneas, triángulos, superficies, curvas y

otras formas. Siendo un modelo una colección de datos, estos pueden ser creados manual o

proceduralmente, o bien mediante un escaneado; también es posible generarlos combinando

estas opciones. Este trabajo se basa en el método del modelado procedural.

La mayoría de modelos 3D se pueden clasificar en dos tipos, sólidos y mallados. Los sólidos

definen el volumen del objeto que representan, son realistas, pero más difíciles de construir,

los mallados tan solo representan la superficie y son los más utilizados por su simplicidad.

Existe un gran número de modeladores disponibles actualmente en el mercado.

En este apartado se procederá a analizar los más populares y se determinará cual se uti l izará

para el trabajo.

• Blender: Este modelador es multiplataforma, es decir, se puede ejecutar en distintos

sistemas operativos. Dispone de una gran variedad de primitivas geométricas para utilizar

y cuenta con la mayoría de herramientas de animación existentes. Tiene un motor de

físicas propio y ofrece diversas opciones de renderizado tanto propias como externas

libres. Utiliza Python para los scripts con los que controlar las escenas o la multitud de

opciones que ofrece este modelador o generar extensiones. Una de las ventajas de utilizar

este modelador es que es de código libre y es gratuito ya que su licencia es GNU GPL.

Los modificadores de este modelador son apilables, por lo que las transformaciones

sobre las mallas no son destructivas [9].

• Sketch Up: Este software ha pasado por muchas manos, incluidas las de Google, pero

actualmente pertenece a Trimble. Se trata de un software propietario, por lo que su

código fuente no es accesible y no se puede modificar. Cuenta con una versión de uso

gratuita, pero es la versión profesional la que más características ofrece y esta necesita

licencia. Facilita un entorno de programación para crear extensiones y controlar diversos

aspectos del programa que se vale del lenguaje de programación Ruby [10]. Cuenta con

una librería de código abierto en la que los usuarios pueden subir y descargar modelos

llamada “3D Warehouse” [11].

• Solid Works: Esta aplicación es un modelador software tanto 2D como 3D pero se

centra sobre todo en los aspectos más técnicos de las ingenierías, es utilizado para

modelar herramientas sobretodo. Es comúnmente utilizado por ingenieros industriales,

eléctricos… Acepta dlls como plug-ins, y estos pueden estar programados en cualquier

lenguaje que soporte COM para crear archivos .exe y .dll. Es útil para los trabajos de las

ingenieras previamente mencionadas porque permite diseñar partes por separado y

después juntarlas de manera muy sencilla [12].

• AutoCAD: Este modelador de software propietario ofrece diversas funcionalidades,

permite navegar cómodamente alrededor de los modelos, importar y exportar modelos a

PDF (aunque a veces esto provoca errores menores), dispone de una app para móvil y

ofrece muchas facilidades para compartir modelos online. Cuenta además con un

renderizador de 3ds Max y tiene opciones para animaciones cinemáticas. Permite

extensiones programadas en C++ y dispone de un almacén para estas [13].

• Maya: Es un modelador 3D que fue desarrollado por Alias Systems Corporation pero

que actualmente pertenece a AutoDesk. Dispone de una licencia de prueba con la

Page 19: GRADO EN INGENIERÍA MULTIMEDIA - UVtapec.uv.es/jboluda/projectes/proyectos_antiguos/JORGE_GARCIA_S… · TRABAJO DE FIN DE GRADO DESARROLLO DE PLUG-IN PARA MODELADOR 3D Y ANÀLISIS

19

duración de un mes, después de este hay que comprar licencias anuales para la utilización

del programa. Tiene una arquitectura gráfica basada en nodos. También tiene numerosos

componentes muy útiles, para distintas simulaciones, sistemas de partículas o control de

cámara, por ejemplo. Cuenta con un lenguaje de programación embebido parecido a Perl

con el que se pueden implementar plug-ins y controlar distintas funcionalidades del

programa [14].

• 3DS Max: Este software también pertenece a AutoDesk. También tiene un lenguaje de programación embebido, este es llamado MAXScript y también permite crear plug-ins así

como controlar las funcionalidades del programa. Su licencia funciona de manera idéntica

a la de MAYA. Entre las numerosas funcionalidades que ofrece están la asignación de

texturas y edición de estas de manera sencilla, un explorador de escena muy cómodo y

muchas facilidades para crear animaciones [15].

• Inventor: Otro software propiedad de AutoDesk. Su tipo de licencia es propietario.

Utiliza ShapeManager, que es el núcleo de modelado geométrico de esta compañía . Este

modelador está orientado a trabajos de ingeniería, se centra en el mismo tipo de tareas

que el SolidWorks y sus características más destacables son la posibilidad de diseño por

partes y la interoperabilidad de estas. El lenguaje de programación utilizado para crear

extensiones para este modelador es Visual Basic [16].

• Tinkercad: Modelador software basado en la web, es muy sencillo de utilizar y

normalmente es el recomendado para empezar a usar este tipo de programas. Se puede

insertar geometría directamente mediante JavaScript y su uso es gratuito. Fue adquirido

por AutoDesk en 2013 [17].

• ZBrush: Este modelador que utiliza técnicas 3D y 2.5D para el modelado texturizado y

pintado digital.es propiedad de Pixologic. Emplea pixols, como alternativa a los voxels.

Tiene renderizado incorporado y una herramienta de suavizado para todo tipo de mallas.

Usa un lenguaje de programación embebido llamado Zscripts con el que generar

extensiones y controlar distintos aspectos del programa [18].

• Cinema 4D: modelador 3D que pertenece a MAXON Computer GMbH, una empresa alemana. Su licencia de tipo propietario. Tiene herramientas para modelado procedural

animación iluminación texturización y renderizado. Cuenta con un lenguaje de

programación propio llamado COFFEE con el que se pueden crear extensiones para el

programa [19].

De entre los modeladores estudiados se ha tomado la decisión de utilizar Blender por

distintos motivos. El primero sería su licencia, es un programa completamente gratuito y de

código abierto que te permite todo tipo de libertad, por lo que no genera ningún sobrecoste

o riesgo. El segundo motivo es su funcionalidad, ya que Blender proporciona una interfaz

sencilla de utilizar y todos los componentes necesarios para este proyecto. Además, utilizar

Blender facilitará el desarrollo del proyecto gracias a que cuenta con una comunidad muy

activa y cualquier tropiezo que pueda haber durante el proyecto estará contemplado en los

foros de Blender. Por último, hago esta elección porque ya estoy familiarizado con Blender y

el lenguaje que utilizan para generar scripts y extensiones, Python, aprender un nuevo

lenguaje de programación habría provocado un coste temporal adicional.

3.3 Generación de terreno

Page 20: GRADO EN INGENIERÍA MULTIMEDIA - UVtapec.uv.es/jboluda/projectes/proyectos_antiguos/JORGE_GARCIA_S… · TRABAJO DE FIN DE GRADO DESARROLLO DE PLUG-IN PARA MODELADOR 3D Y ANÀLISIS

20

Para el modelado de paisajes realistas se busca tanto eficiencia en la programación como la

mayor similitud posible con la naturaleza, y por tanto no es de extrañar que se hayan

desarrollado distintas técnicas para obtener los resultados deseados, tan cercanos a la realidad

como sea posible.

El modelado de paisajes de manera procedural ha sido utilizado en numerosas aplicaciones,

normalmente combinando las técnicas de este apartado y las del siguiente. Aquí nos

centramos en un uso más moderno ya que el enfoque es generar terrenos aleatorios y

anteriormente se utilizaban técnicas de generación procedural para ahorrar espacio en

memoria. Esto se hacía creando una lista de semillas y generando terrenos no

verdaderamente aleatorios. Parece conveniente mencionar algunas de las aplicaciones de la

generación procedural de terrenos aleatorios.

En los videojuegos actuales, normalmente, parte del escenario incluye terrenos generados

proceduralmente, sobre todo si se trata de una ambientación alienígena, donde no se

utilizaría la topografía terrestre o si faltan recursos humanos para diseñarlos a mano. Es el

caso de este ejemplo, Planet Explorers (Figura 1), un RPG lanzado en 2014. Otro ejemplo

de este estilo seria Starforge (Figura 2), juego lanzado en 2014 también.

Fi gura 1 . P lanet Explorers ( 2014 )

Fi gura 2 . S tarforge ( 2014 )

Page 21: GRADO EN INGENIERÍA MULTIMEDIA - UVtapec.uv.es/jboluda/projectes/proyectos_antiguos/JORGE_GARCIA_S… · TRABAJO DE FIN DE GRADO DESARROLLO DE PLUG-IN PARA MODELADOR 3D Y ANÀLISIS

21

La utilización de este tipo de técnicas no queda relegada a un uso únicamente en los

videojuegos, también se utiliza en el campo del cine. Pixar suele introducir esta técnica para

crear sus decorados, como en el caso de la película El buen dinosaurio (Figura 3.

En este apartado se analizarán las técnicas más utilizadas o estudiadas para el modelado de

paisajes de manera procedural.

El pionero en la generación de terreno procedural fue Mandelbrot que apuntó en su libro

“The fractal geometry of nature” [7] que al representar movimientos Brownianos fractales de dos

variables se obtenían perfiles montañosos muy realistas. Desde entonces se han desarrollado

varias técnicas basadas en este fenómeno, las más importantes serán citadas a continuación.

Proceso de Poisson

Esta fue la técnica utilizada por Mandelbrot [7] originalmente, se puede utilizar para generar

paisajes tanto en planos como esferas.

Consiste aplicar distribuciones gaussianas aleatorias a una esfera o plano distribuido con

intervalos de Poisson [20], de modo que la red resultante obtenida es una superficie

Browniana.

El problema principal de esta técnica es la cantidad de operaciones que tiene que realizar el

procesador, haciendo que el proceso sea demasiado lento. Dadas sus limitaciones no se

utilizará este método en el trabajo.

Filtrado de Fourier

Esta técnica consiste en aplicar una transformada de Fourier [21] a una distribución

Gaussiana, multiplicándola en una frecuencia espacial con un filtro apropiado para después

interpretar la transformada inversa de Fourier del resultado como un mapa de alturas. Stein

publicó un estudio basado en este método con un enfoque puramente matemático [22].

Basándose en este trabajo, Kroese y Botev generaron un algoritmo para realizar superficies

Brownianas de manera eficiente [23].

Fi gura 3 . The Good Dinosaur ( 2015)

Page 22: GRADO EN INGENIERÍA MULTIMEDIA - UVtapec.uv.es/jboluda/projectes/proyectos_antiguos/JORGE_GARCIA_S… · TRABAJO DE FIN DE GRADO DESARROLLO DE PLUG-IN PARA MODELADOR 3D Y ANÀLISIS

22

Se ha decidido estudiar esta técnica y utilizarla para el plug-in, debido a los prometedores

resultados de las publicaciones mencionadas.

Síntesis de ruido

Se entiende por síntesis de ruido a la adición iterativa de señales cuya transformada de

Fourier está limitada a un valor aleatorio cada una teniendo una amplitud aleatoriamente

variable (ruido). Musgrave [24] [25], Saupe [26]y Gardner [27] han realizado publicaciones

basadas en estas técnicas bajo diferentes enfoques.

Esta técnica no se utilizará debido al tiempo limitado del proyecto y a que ya existe un plug-in

en el modelador elegido para trabajar que trabaja diversos enfoques de esta técnica y se

pretende generar una herramienta nueva y distinta.

Spectra l synthesi s

Esta técnica simula ruido rosa sumando varias octavas a modo de capa; estas tienen toda su

energía espectral concentrada en una única frecuencia f. Por cada capa añadida se dobla la

frecuencia del ruido mientras que la amplitud se calcula elevando la persistencia (0.5 para

simular ruido rosa) al octavo número empezando por 0 en la frecuencia más baja.

Las octavas se calculan rellenando con números pseudo-aleatorios un espacio equidistante y

calculando los valores restantes mediante interpolación [28].

Este método fue descartado debido a sus similitudes con la síntesis de ruido y el límite

temporal del proyecto.

Los métodos que se explican a continuación también son de carácter fractal, pero no

cumplen las características estadísticas necesarias como para que las mallas generadas se

clasifiquen como superficies Brownianas, aun así, generan resultados aceptablemente

realistas.

Desplazami ento aleatori o del punto medio

Se trata de un algoritmo muy sencillo para la generación de fractales, que consiste en dividir

por la mitad un segmento y elevar el punto medio generado con una altura aleatoria. Estos

pasos se repetirán hasta el infinito con los sub-segmentos resultantes, para saber más sobre

estas estructuras se puede consultar el libro “Estructuras Fractales y Sus Aplicaciones” [29], muy

clarificador.

Existen varias maneras de aplicar este algoritmo para la generación de terreno procedural.

Fue originalmente introducido con este objetivo por Fournier, Fussell y Carpenter [30]

creando el llamado diamon square algorithm.

Se ha decidido profundizar en esta técnica debido a la sencillez del código a generar y a los

resultados aceptables que genera, se desea estudiar la diferencia en cuanto a eficiencia con el

método previamente seleccionado.

Diagramas de Voronoi

Page 23: GRADO EN INGENIERÍA MULTIMEDIA - UVtapec.uv.es/jboluda/projectes/proyectos_antiguos/JORGE_GARCIA_S… · TRABAJO DE FIN DE GRADO DESARROLLO DE PLUG-IN PARA MODELADOR 3D Y ANÀLISIS

23

Stephen Worley describió como utilizar estos diagramas para la generación de terreno

procedural [31] y Jacob Olsen [28] terminó de desarrollar un algoritmo valido en 2004

utilizando coeficientes adecuados para generar terreno montañoso

El algoritmo consiste en dividir un mapa en regiones y después colocar aleatoriamente

puntos de control en cada región, para cada celda del mapa se calcula un conjunto de valores

dn; donde n = 1, 2, 3… de manera que d1 es la distancia al punto de control más cercano d2

es al siguiente más cercano etc., y después se le da una altura a cada región de forma:

Ecuaci ón 1 . Algoritmo del cá lculo de la a l tura a partir de puntos de control

Con coeficientes seleccionados en función del resultado esperado, Olsen eligió c 1=-1 c 2=1 y

el resto de coeficientes lo dejó a 0 para generar montañas.

Este algoritmo no genera unos resultados comparables a los algoritmos mencionados, pero

su autor hace hincapié en que presentan unas características muy útiles que pueden ayudar a

reducir los comportamientos homogéneos que a veces otros algoritmos pueden generar,

siendo una combinación de este método con otros algo que genera resultados muy buenos y

sobre los que se tiene mayor control, pero se ha considerado que el consumo de recursos es

demasiado grande como para incluirlo en este proyecto.

Como se ha mencionado con anterioridad, muchos de estos algoritmos t ienen

comportamientos homogéneos que les roban naturalidad y además los terrenos generados

parecen “crudos”, demasiado escarpados, tal como se aprecia en la Figura 4. Esto es debido

a que los paisajes naturales se deforman con los años debido a la erosión producida por

diversas fuerzas de la naturaleza. Actualmente se está trabajando en diversos modelos que

simulan este tipo de comportamientos sobre terrenos [32]. Un ejemplo de terreno al que se le

han aplicado algoritmos de erosión puede verse en la Figura 5.

Fi gura 4 . Terreno crudo.

Page 24: GRADO EN INGENIERÍA MULTIMEDIA - UVtapec.uv.es/jboluda/projectes/proyectos_antiguos/JORGE_GARCIA_S… · TRABAJO DE FIN DE GRADO DESARROLLO DE PLUG-IN PARA MODELADOR 3D Y ANÀLISIS

24

Dichas técnicas se analizarán en el siguiente apartado.

3.4 Algoritmos de simulación natural de terreno:

Erosión hídrica y alzamiento tectóni co

Esta técnica [32] recoge como dato de entrada un mapa de velocidades de alzamiento

tectónicos definidas por el usuario como una imagen en escala de grises. El algoritmo tiene

dos pasos principales: simulación de erosión sobre un gráfico plano que contiene

información sobre la elevación y el flujo del agua y la conversión de este grafo en un mapa de

alturas. El primer paso se desglosa así: a partir del dominio de entrada se inicializa el grafico

de flujos como un plano aleatorio definido por la triangularización de puntos uniformemente

distribuidos por este dominio. El valor de altura de todos los puntos se iniciali za a 0.

Después de esto, se itera la ecuación del caudal de flujos hasta obtener una información de

alturas plausible. Esto se hace mediante la repetición de los siguientes pasos hasta que el

resultado converja:

1- Se extrae un conjunto de árboles de flujos orientados de acuerdo con las alturas

actuales de los nodos que definen el grafico mencionado anteriormente.

2- Se modifica el conjunto de árboles de flujos mediante el añadido de arcos o flujos

entre los lagos creados.

3- Se calcula el área de drenaje de cada nodo (cuánta agua pasara por él) calculándose de

rama a raíz.

4- Se resuelve la ecuación del caudal de los flujos y se recalculan las alturas del dominio.

Este proceso iterativo termina cuando la modificación de las alturas está por debajo de un

umbral dado.

Una vez finalizado este proceso se convierte el grafico en un modelo de terreno, creando y

renderizando una malla uniendo los puntos generados.

Fi gura 5 . Terreno tras aplicar a lgori tmo de erosión

Page 25: GRADO EN INGENIERÍA MULTIMEDIA - UVtapec.uv.es/jboluda/projectes/proyectos_antiguos/JORGE_GARCIA_S… · TRABAJO DE FIN DE GRADO DESARROLLO DE PLUG-IN PARA MODELADOR 3D Y ANÀLISIS

25

Para este trabajo de ha decidido usar esta técnica, ligeramente modificada, en vez de una

imagen en escala de grises como datos de entrada se recogerá un mapa generado con alguna

de las técnicas seleccionadas anteriormente, por tanto, en vez de hacer una triangulación de

un dominio, se utilizará una malla cuadrada y los vecindarios clásicos. Esta decisión ha sido

tomada porque existe interés por las técnicas nuevas, esta se desarrolló en 2016, pero los

resultados deben poder compararse con las demás técnicas elegidas y el tiempo para la

realización de este proyecto es limitado.

Este método podría clasificarse como un método basado en hidrología [33], aunque es

innovador el hecho de utilizar levantamientos tectónicos. Hay distintos métodos publicados

basados en esta ciencia. Además de esto hay 2 tipos de métodos más que han sido los más

utilizados estos últimos años de manera regular, erosión térmica y erosión fluvial.

Erosión térmica

Llamamos erosión térmica a cualquier proceso que consiste en que un punto de mayor

altitud pierde masa que acaba depositada en un punto de menor altitud. Es básicamente un

proceso de suavizado sencillo y rápido. Se ha seleccionado el algoritmo detallado por Olsen

[28], sin las modificaciones en los vecindarios, para implementar en este proyecto a causa de

los resultados observados y la sencillez de su programación. El algoritmo sigue estos pasos

por iteración en cada punto del mapa de alturas:

1- Se comprueban las diferencias de alturas entre el punto observado y su vecindario.

2- Si la diferencia de altura con algunos de los vecinos supera el valor umbral , se

distribuye el material de forma equitativa entre los vecinos cuya distancia es mayor

que la distancia umbral, sin que el intercambio de material provoque una diferencia

de altura totalmente contraria a la anterior.

Erosión fluvial

Consiste en simular que aparece agua en forma de lluvia en los vértices del mapa de altura,

que esta agua absorba parte de la altura del vértice, que representa la masa en forma de

sedimento y mover esa masa a vértices vecinos más bajos. En este trabajo se implementará la

versión definida por Benes y Forsbach [34]. El algoritmo que representa la erosión fluvia l se

puede representar en cuatro sencillos pasos:

1. Aparece agua en los vértices.

2. El agua absorbe sedimento.

3. El agua se desplaza.

4. El agua deposita el sedimento en los vértices designados y parte de esta se evapora.

En el apartado de pruebas se hará un análisis más exhaustivo de estos métodos y se

presentarán conclusiones obtenidas a partir de los mismos.

Se ha considerado importante utilizar al menos una versión de cada una de las simulaciones

físicas más importantes en este trabajo con el fin de estudiarlas. Pese a que existe una gran

similitud entre la erosión fluvial y la erosión hídrica se han separado como dos simulaciones

distintas por dos motivos: el algoritmo de erosión hídrica seleccionado funciona en conjun to

Page 26: GRADO EN INGENIERÍA MULTIMEDIA - UVtapec.uv.es/jboluda/projectes/proyectos_antiguos/JORGE_GARCIA_S… · TRABAJO DE FIN DE GRADO DESARROLLO DE PLUG-IN PARA MODELADOR 3D Y ANÀLISIS

26

con el de levantamientos tectónicos y la erosión hídrica hace un hincapié mucho mayor en

las estructuras formadas por el agua, es decir, ríos y lagos.

3.5 Algoritmos de coloración o texturizado procedural

En el campo de investigación sobre terrenos procedurales se ha discutido ampliamente el

tema del renderizado sobre los terrenos generados, pero no es realmente eso lo que se trata

en este apartado del trabajo, ya que el estudio de estas técnicas y su implementación bien

podrían ser otro trabajo en su completitud. Lo que se discute aquí son las técnicas para

generar el mapeado de texturas [35] [36] a aplicar sobre el terreno, esto se pretende hacer de

manera automática mediante script, con lo que se podría llamar mapeado procedural de

texturas. En este apartado se discuten las técnicas más utilizadas. Estás texturas serán

renderizadas con las herramientas ya incrustadas en el modelador.

Mapeado de texturas basado en altura

Es un método simple en el que se selecciona una textura dependiendo del valor de a ltura de

los vértices de esa parte del terreno, por ejemplo, una textura de agua para las partes más

bajas, después arena, hierba, roca y nieve en sentido ascendente. Sin embargo, este método

presenta un grave problema, y es que, si no se modifica el conjunto predefinido de texturas,

la transición entre algunas texturas puede ser abrupta. Para evitar esto, se utiliza una mezcla

de estas texturas [37] en las alturas cercanas al umbral entre dos texturas. Dicha mezcla se

realiza usando una interpolación lineal.

Mapeado de texturas basado en pendiente

El mapeado basado en alturas, funciona bien, pero siendo realistas, la altura no debería ser el

único parámetro a tener en cuenta. Es poco probable que crezca hierba en un risco vertical,

por poner un ejemplo, es por esto que existe el mapeado de texturas basado en pendiente, se

calcula la pendiente de la superficie a texturizar y se aplica una textura u otra dependiendo de

si supera cierto valor umbral. Este método presenta un problema parecido al mapeado

basado en alturas, cuando hay un cambio estando la inclinación justo en el valor umbral, el

cambio puede ser muy brusco, así que en estos casos se mezclan las dos texturas.

Atlas de texturas

Consiste en crear una textura a partir de otras siguiendo criterios similares a los descritos en

los dos apartados anteriores, esto tiene la ventaja de que consume mucha menos memoria a l

aplicar una sola textura al terreno y no un conjunto de texturas.

Es necesario destacar en este apartado la importancia de la iluminación para el renderizado.

No importa como este hecho el mapeado de texturas si la iluminación de la escena no parece

natural.

Se ha decidido utilizar un algoritmo que utilice las características del mapeado de texturas

basado en altura y el mapeado de texturas basado en pendiente para presentar unos

resultados visuales lo más agradables posibles.

Page 27: GRADO EN INGENIERÍA MULTIMEDIA - UVtapec.uv.es/jboluda/projectes/proyectos_antiguos/JORGE_GARCIA_S… · TRABAJO DE FIN DE GRADO DESARROLLO DE PLUG-IN PARA MODELADOR 3D Y ANÀLISIS

27

En resumen, se han decidido implementar dos técnicas de generación procedural de terreno

basadas en fractales y tres técnicas de suavizado, basadas en simulación física. Solo se ha

decidido utilizar un algoritmo de mapeado de texturas, porque las diferencias que se

pretenden estudiar son las de los algoritmos de generación de terreno procedural, por tanto,

se deberían observar todos los resultados visuales con un renderizado similar.

Page 28: GRADO EN INGENIERÍA MULTIMEDIA - UVtapec.uv.es/jboluda/projectes/proyectos_antiguos/JORGE_GARCIA_S… · TRABAJO DE FIN DE GRADO DESARROLLO DE PLUG-IN PARA MODELADOR 3D Y ANÀLISIS

28

4. Especificación:

Una vez hecho el estudio sobre las tecnologías actuales, trabajos, herramientas he

investigaciones similares. Procedo a explicar algo más extensamente el planteamiento del

problema. Lo que se pretende conseguir en este proyecto es una extensión para Blender que

sea innovadora, que tenga una interfaz amigable y generar una documentación completa

sobre el proceso y los resultados obtenidos. Por tanto, debemos definir, que queremos que

haga la extensión, como debemos programar esta y que aspectos de los resultados deben ser

analizados.

Todo trabajo de ingeniería, para un desarrollo adecuado debe hacer un análisis de requisitos,

una especificación del sistema, una planificación temporal y una estimación de costes

económicos y un análisis de los riesgos que implica realizar dicho proyecto. En este punto

del trabajo se explica porque existe esta necesidad y se detalla cada uno de los ítems

mencionados.

4.1 Análisis de requisitos

Es necesario establecer unos requisitos que definan el que y el como del proyecto para poder

evaluar en la fase final del trabajo si se ha logrado lo que se quería.

Normalmente la lista de requisitos se establece en una reunión con el cliente que encarga el

trabajo, en este caso al ser un trabajo académico los requisitos se extraen del apartado de

objetivos y son revisados por un profesor o varios.

Estos requisitos deben cumplirse durante la ejecución del proyecto o se debe justificar

debidamente porque no se han cumplido. Los requisitos también sirven como guía durante el

desarrollo del proyecto. A continuación, se expone una lista de los requisitos de este

proyecto, separados por funcionales y no funcionales, esto es como separar lo que se quiere

hacer de cómo se quiere hacer.

No funcionales

RNF 01 – Documentación y justificación de las decisiones.

Durante el desarrollo del proyecto se deberán documentar y justificar las decisiones tomadas,

a fin de implementar eficientemente la extensión.

RNF 02 – Evaluación de las técnicas de generación.

Existen distintas técnicas de generación procedural de terrenos. Se debe hacer un estudio

sobre estas, analizarlas y decidir cuales utilizar.

RNF 03 – Análisis de resultados.

Page 29: GRADO EN INGENIERÍA MULTIMEDIA - UVtapec.uv.es/jboluda/projectes/proyectos_antiguos/JORGE_GARCIA_S… · TRABAJO DE FIN DE GRADO DESARROLLO DE PLUG-IN PARA MODELADOR 3D Y ANÀLISIS

29

Con la extensión del modelador terminada se debe realizar un análisis de la calidad de los

resultados de cada algoritmo o combinación de algoritmos he incluirlo en la documentación

de la manera pertinente.

RNF 04 – Inspección Externa.

Para complementar el análisis de la calidad de los resultados se deben generar unas encuestas

que se facilitarán a distintos usuarios, se recogerán los datos resultantes, se analizarán y se

expondrán en un documento adecuado.

RNF 05 – Calidad de código.

El código generado debe ser fácil de entender y debe estar debidamente documentado, es

decir, tiene que tener una calidad mínima.

RNF 06 – Videos de demostración.

Se deben generar videos para demostrar la funcionalidad de la herramienta; servirán tanto

para explicar a los usuarios como utilizar la herramienta como para mostrar el trabajo

realizado.

RNF 07 – Análisis de eficiencia.

Al margen del análisis de los resultados o de efectividad se debe hace un análisis de la

eficiencia de cada algoritmo. Este análisis debe documentarse debidamente y relacionarse con

el de calidad para establecer una conclusión final sobre la calidad de los algori tmos.

RNF 08 – Manual de Usuario.

Ha de generarse un manual de usuario junto con la documentación. Este manual debe

explicar todas las funcionalidades de la herramienta de la manera más clara y concisa posible.

Funcionales

RF 01 – Terrenos.

El sistema debe ser capaz de crear mallas de dos dimensiones en el editor del modelador,

estas mallas deben ser terrenos lo más realistas posibles.

RF 02 – Accesibilidad Terrenos.

Se debe poder generar el terreno de la manera más simple e intuitiva posible. Para esto, es

necesaria la programación de una I.U. muy amigable para el usuario.

RF 03 – Comparabilidad de terrenos.

Deben implementarse distintas técnicas de generación de terreno a fin de poder comparar los

resultados de ambas y generar los análisis mencionados anteriormente.

RF 04 – Compatibilidad de suavizado.

Page 30: GRADO EN INGENIERÍA MULTIMEDIA - UVtapec.uv.es/jboluda/projectes/proyectos_antiguos/JORGE_GARCIA_S… · TRABAJO DE FIN DE GRADO DESARROLLO DE PLUG-IN PARA MODELADOR 3D Y ANÀLISIS

30

Se deben poder aplicar las funciones de suavizado sobre cualquiera de los distintos terrenos

que se pueden generar.

RF 05 – Comparabilidad de suavizado.

Deben codificarse al menos dos técnicas de suavizado distintas, lo que tiene como objetivo

poder comparar los resultados de ambas y generar los análisis mencionados anteriormente.

RF 06 – Texturizado.

Se debe poder aplicar una función de texturizado o coloreado sobre cualquiera de los

distintos terrenos que se pueden generar. Esto añadirá detalle visual, que será más atractivo

para el usuario. También se pretende estudiar si tendría efecto sobre el análisis externo.

RF 07 – Accesibilidad a funciones de modificación de terrenos.

La función de suavizado y texturizado o coloreado deben ser sencillas de aplicar. Se deben

tener en cuenta estas funciones y sus parámetros a la hora de generar la I.U.

4.2 Especificación del sistema

Como se mencionó en el apartado anterior, el desarrollo de este proyecto se realizará con el

modelador Blender. Concretamente la versión 2.77 que es la última versión estable del

programa. Al margen de la memoria, el proyecto se realizará en su totalidad en el entorno de

este modelador, pues ofrece todas las herramientas necesarias, entre estas una API de

Python, que es donde se generará el código de la extensión.

El plug-in propiamente dicho, será una pestaña de la barra de herramientas que tiene Blender

en su tipo de editor: puerto de vista 3D, con botones para cada una de las funcionalidades

que se han establecido como necesarias en el apartado anterior.

El botón para cada una de las funcionalidades tendrá un desplegable que se activará cuando

se pulse sobre él. Este desplegable contendrá espacios para introducir los diversos

parámetros de la función deseada, estos espacios ya tendrán introducido un valor por defecto

que se podrá cambiar. Además, tendrá un botón para confirmar parámetros y lanzar la

función. Si la función se debe realizar sobre una malla ya creada, bastara con seleccionar

dicha malla en el puerto de vista antes de darle al botón de confirmación.

4.3 Planificación y estimación de costes

En este apartado se especifican las tareas planificadas que componen este proyecto y se

explica cómo se han estimado sus costes temporales y económicos. Esta planificación

temporal se ha realizado de forma distinta a la planificación presentada en el anteproyecto.

Estimaci ón temporal

Page 31: GRADO EN INGENIERÍA MULTIMEDIA - UVtapec.uv.es/jboluda/projectes/proyectos_antiguos/JORGE_GARCIA_S… · TRABAJO DE FIN DE GRADO DESARROLLO DE PLUG-IN PARA MODELADOR 3D Y ANÀLISIS

31

La estimación temporal presentada en el anteproyecto fue realizada solo con la estimación de

una persona, sin que esta sea experta en el campo del proyecto. La estimación temporal de

este proyecto se ha obtenido pidiendo a cuatro expertos una estimación temporal. Esta

estimación temporal está compuesta de un tiempo pesimista, un tiempo muy probable y un

tiempo optimista para cada una de las tareas en las que se ha dividido el proyecto. La

estimación para cada tarea por parte de los expertos se ha calculado mediante la fórmula:

Ecuaci ón 2 . Cáculo media beta

La media de las cuatro estimaciones para la tarea es la duración estimada en días que se ha

contemplado en la planificación del proyecto.

Ref. Tarea Experto 1 Experto 2 Experto 3 Experto 4 Estimación σ2

1 Documentación

1.1 Estudio de algoritmos existentes 4,17 8,67 6,27 8,67 6,94 0,56

1.2 Estudio de los modeladores existentes 2,33 3,50 2,59 3,50 2,98 0,04

1.3 Selección de algoritmos a utilizar 1,17 1,00 1,00 1,33 1,12 0,00

1.4 Selección de modeladores a utilizar 1,17 1,00 1,00 1,33 1,12 0,00

2 Análisis y especificación

2.1 Definición de requisitos 1,00 3,50 2,80 4,20 2,88 0,28

2.2 Especificación del sistema 3,17 3,50 3,67 3,88 3,55 0,01

2.3 Análisis de riesgos 2,17 1,00 2,13 1,67 1,74 0,04

2.4 Casos de uso 5,00 5,17 5,98 5,17 5,33 0,03

2.5 Diagramas de actividad 5,00 5,50 6,50 5,50 5,63 0,06

2.6 Modelo de datos 5,00 4,50 5,00 6,00 5,13 0,06

3 Diseño

3.1 Diseño interfaz de usuario 1,83 4,50 3,80 4,00 3,53 0,20

3.2 Diagramas de clases 3,17 7,17 6,70 5,00 5,51 0,44

3.3 Diagramas de secuencia 4,00 7,17 8,20 6,60 6,49 0,49

4 Implementacion

4.1 Implementación de algoritmos de generación de terreno 10,50 8,83 9,00 9,33 9,42 0,08

4.2 Implementación de algoritmos de suavizado de terreno 4,50 7,83 6,67 8,30 6,83 0,40

4.3 Implementacion del algoritmo de texturizado de terreno 5,17 4,17 4,17 4,17 4,42 0,03

4.4 Implementación de el I.U. 3,00 5,50 4,00 6,12 4,66 0,27

4.5 Implementación de la extensión y unificación de código. 4,17 8,67 9,30 6,67 7,20 0,73

5 Ejecución de pruebas y análisis de resultados

5.1 Pruebas unitarias 3,00 1,00 2,00 3,33 2,33 0,11

5.2 Pruebas de integración 4,17 1,67 2,55 2,80 2,80 0,17

5.3 Pruebas de rendimiento 2,00 1,00 3,00 2,33 2,08 0,11

5.3.1 Pruebas de eficiencia de los algoritmos de generación 3,33 1,00 3,00 2,00 2,33 0,15

5.3.2 Pruebas de eficiencia de los algoritmos de suavizado 3,33 1,00 3,00 2,00 2,33 0,15

5.3.3 Pruebas de eficiencia de los algoritmos de texturizado. 3,33 1,00 3,00 2,00 2,33 0,15

5.4 Pruebas de usabilidad 3,33 1,00 3,00 2,00 2,33 0,15

6 Elaboración de la memoria 20,83 25,83 31,67 29,80 27,03 3,26

TOTAL 109,83 124,67 140,00 137,69 128,04 8,00

Fi gura 6 . Plani ficación estimada

Con la estimación utilizando la técnica de la media-beta no podemos estar seguros de cuál es

la probabilidad real de que el proyecto acabe en ese tiempo, pero sabemos que el tiempo del

proyecto sigue una distribución normal, así que, habiendo calculado la varianza mediante la

fórmula:

Page 32: GRADO EN INGENIERÍA MULTIMEDIA - UVtapec.uv.es/jboluda/projectes/proyectos_antiguos/JORGE_GARCIA_S… · TRABAJO DE FIN DE GRADO DESARROLLO DE PLUG-IN PARA MODELADOR 3D Y ANÀLISIS

32

Ecuaci ón 3 . Varianza

Podemos añadir un colchón de seguridad para asegurar una probabilidad del 95% utilizando

esta fórmula:

Ecuaci ón 4 . Colchón de seguridad con probabilidad a l 95%

Añadiendo el colchón calculado, nos queda una estimación de 133 días.

Se puede observar el diagrama Gantt que generan las tareas con sus dependencias, aunque

como solo se cuenta con un trabajador al final no hay ninguna tarea paralelizable real, sino

que se puede variar de tarea en caso de que el estudiante se atasque en una.

Page 33: GRADO EN INGENIERÍA MULTIMEDIA - UVtapec.uv.es/jboluda/projectes/proyectos_antiguos/JORGE_GARCIA_S… · TRABAJO DE FIN DE GRADO DESARROLLO DE PLUG-IN PARA MODELADOR 3D Y ANÀLISIS

33

Fi gura 7 . Diagrama de Gantt

Page 34: GRADO EN INGENIERÍA MULTIMEDIA - UVtapec.uv.es/jboluda/projectes/proyectos_antiguos/JORGE_GARCIA_S… · TRABAJO DE FIN DE GRADO DESARROLLO DE PLUG-IN PARA MODELADOR 3D Y ANÀLISIS

34

Estimación de costes:

Una vez estimado el coste temporal del proyecto es posible hacer una estimación del coste

económico basándose en que recursos se van a utilizar, cuánto cuestan y durante qué

tiempo se van a utilizar. Los recursos a utilizar en un proyecto informático son el equipo,

las licencias software, los recursos humanos y los gastos indirectos.

Para este proyecto se ha utilizado solamente un Asus A55A. En el momento de su compra

costó alrededor de 700 euros. La vida útil de este aparato está estimada en 4 años. Se utiliza

durante los 128 días que dura el proyecto, es decir, un 8,7% de su vida útil así que se

amortizan 60’9 euros.

Se planea utilizar software libre en este proyecto así que no se estima ningún coste de

licencias.

Para realizar este proyecto solo es necesario un programador, en este caso el estudiante que

está realizando el proyecto. Se estiman 128 días de trabajo y el sueldo anual de un

programador es de 16970 euros así que el coste estimado en personal es de 5970 euros.

A estos costes se le debe añadir un 20% de su valor destinado a cubrir los gastos indirectos.

El total de la estimación de costes queda así:

Coste del equipo informático 60’9 euros Coste del personal 5970 euros

Gastos indirectos 1220 euros

Estimación final 7250’9 euros Tabl a 1 . Estimación de costes

4.4 Análisis de riesgos:

Un proyecto de ingeniería debe tener un análisis de riesgos que puedan hacer que el

proyecto fracase. En este apartado se evalúan los riesgos identificados teniendo en cuenta

la probabilidad de que ocurran y el impacto que supondrían en el proyecto, el impacto esta

evaluado del 1 al 10.

ID Riesgo Probabilidad Impacto

1 Aparecen tareas no planificadas 10% 5

2 El esfuerzo es mayor que el estimado 20% 5 3 Una tarea genera retrasos en las tareas dependientes 90% 7

4 El aprendizaje sobre nuevas herramientas o lenguajes genera retrasos

70% 9

5 Los requisitos están mal definidos y redefinirlos cambia el coste del proyecto

10% 9

6 El personal trabaja más lento de lo esperado 10% 7

7 No se pueden implementar los métodos elegidos en el modelador escogido.

20% 9

8 Se debe rehacer la interfaz de usuario tras las pruebas de 40% 3

Page 35: GRADO EN INGENIERÍA MULTIMEDIA - UVtapec.uv.es/jboluda/projectes/proyectos_antiguos/JORGE_GARCIA_S… · TRABAJO DE FIN DE GRADO DESARROLLO DE PLUG-IN PARA MODELADOR 3D Y ANÀLISIS

35

usabilidad

9 El aprendizaje sobre métodos de generación de terreno lleva más de lo esperado

50% 2

10 El trabajo en un entorno de software desconocido genera problemas imprevistos

70% 7

Tabl a 2 . Anál isi s de riesgos con probabil idad e impacto

De entre los riesgos evaluados se eligen los más probables he impactantes y se realizan

planes de contingencia y contención para ellos.

Mitigación:

Esta fase consiste en idear planes que minimicen la probabilidad de los riesgos en el

proyecto

ID riesgo Plan de mitigación

3 Durante la recogida de información se identifican los posibles problemas futuros y se experimenta en este campo mientras se busca información sobre otros métodos de generación.

4 Se elige un modelador 3D con el que se esté familiarizado, en este caso Blender.

10 Se elige un modelador 3D con el que se esté familiarizado, en este caso Blender.

Tabl a 3 . P lanes de mi tigación para impacto a lt o

Contingenci a :

Esta fase consiste en generar planes que minimicen el impacto de un riesgo en caso de que

el plan de mitigación no haya funcionado. Dado que la probabilidad de los riesgos 4 y 10 se

ha reducido a 0 con la mitigación solo se genera un plan de contingencia para el riesgo 3.

ID Riesgo Plan de contingencia

3

Se reducirá el tiempo empleado en tareas menos importantes, aumentando el tiempo dedicado a las tareas con retrasos. De esta manera se reducirá la calidad del proyecto de forma mínima y se respetarán los plazos.

Tabl a 4 . Plan de cont ingencia para impacto a l to

Page 36: GRADO EN INGENIERÍA MULTIMEDIA - UVtapec.uv.es/jboluda/projectes/proyectos_antiguos/JORGE_GARCIA_S… · TRABAJO DE FIN DE GRADO DESARROLLO DE PLUG-IN PARA MODELADOR 3D Y ANÀLISIS

36

5. Desarrollo del proyecto.

En este capítulo se expone cómo se desarrolla el proyecto. Se explicará el desarrollo del

análisis, la fase de diseño de la extensión y se detallará cómo se ha realizado la

implementación de la herramienta.

5.1 Análisis

Todo proyecto debe analizar cómo cumplir los requisitos que ha definido antes de ser

diseñado. La ingeniería del software ha desarrollado técnicas que facilitan esta tarea. Un

buen análisis hará que el proyecto avance de manera fluida y evitará sorpresas

desagradables en fases posteriores del desarrollo, como un cambio en el alcance o en el

coste temporal, algo que provocaría repercusiones económicas no valoradas.

La primera parte del análisis de un proyecto ha de ser la creación de un diagrama de casos

de uso. Los casos de uso se extraen de la lista de requisitos funcionales proporcionada en el

punto anterior. Un caso de uso representa un conjunto de secuencias de acciones que el

sistema ha de realizar para presentar un resultado observable de valor para un actor en

particular.

Cada actor pude representar los distintos roles que los usuarios pueden adoptar a la hora de

interactuar con un sistema. En el caso de este proyecto todos los usuarios tienen el mismo

rol, así que solo emplearemos un actor a la hora de representar los casos de uso. Este se

denominará usuario para evitar confusiones.

El diagrama de casos de uso de este sistema, el plug-in de generación de terreno procedura l ,

Fi gura 8 . Diagrama de casos de uso

Page 37: GRADO EN INGENIERÍA MULTIMEDIA - UVtapec.uv.es/jboluda/projectes/proyectos_antiguos/JORGE_GARCIA_S… · TRABAJO DE FIN DE GRADO DESARROLLO DE PLUG-IN PARA MODELADOR 3D Y ANÀLISIS

37

queda como se visualiza en la Figura 7.

Como piden los requisitos, el usuario puede generar terrenos, suavizarlos y texturizarlos.

Cuando se selecciona uno de los botones que pueden realizar una de estas acciones, sea

cual sea el método elegido (hay un botón distinto para cada algoritmo) el interfaz responde

al usuario pidiéndole los datos con nombre representativos, y proporcionando también

unos valores por defecto (o enseñando los últimos valores seleccionados por el usuario

para este método). Cuando el usuario confirma los datos el sistema crea o modifica una

malla en el espacio de modelado 3D de Blender de acuerdo con los parámetros

seleccionados.

Esta es la especificación de los casos de uso principales que se pueden ver en el diagrama:

Caso de uso Generar terreno

Actor Usuario Descripción: El sistema generará una malla simulando un terreno en el

entorno de modelado 3D de Blender

Precondición:

Flujo de eventos 1. El usuario selecciona uno de los botones de generar terreno.

2. El interfaz muestra los datos predefinidos (o previos) modificables para que el usuario los cambie o confirme

3. El usuario introduce datos o deja los predefinidos y confirma.

4. Se genera un mapa de alturas acorde a los datos introducidos mediante el algoritmo seleccionado

5. Se genera una malla de puntos uniformemente distribuidos con las alturas del mapa.

Flujo alternativo 3.1 El usuario introduce datos erróneos. 3.2 El sistema muestra un mensaje de error y se vuelve al

punto 2.

Postcondición

Requisitos relacionados RF-01, RF-02 Tabl a 5 . Casos de uso de generación de t erreno

Caso de uso Suavizar terreno

Actor Usuario Descripción: El sistema modificara una malla del entorno de modelado 3D

de Blender

Precondición: Haber seleccionado la malla a modificar.

Flujo de eventos 1. El usuario selecciona uno de los botones de suavizar terreno.

2. El interfaz muestra los datos predefinidos (o previos) modificables para que el usuario los cambie o confirme

3. El usuario introduce datos o deja los predefinidos y confirma.

4. Se genera un mapa de alturas acorde a los datos introducidos mediante el algoritmo seleccionado

Page 38: GRADO EN INGENIERÍA MULTIMEDIA - UVtapec.uv.es/jboluda/projectes/proyectos_antiguos/JORGE_GARCIA_S… · TRABAJO DE FIN DE GRADO DESARROLLO DE PLUG-IN PARA MODELADOR 3D Y ANÀLISIS

38

5. Se genera una malla de puntos uniformemente distribuidos con las alturas del mapa y se destruye la malla seleccionada previamente.

Flujo alternativo 3.1 El usuario introduce datos erróneos o no ha seleccionado una malla.

3.2 El sistema muestra un mensaje de error y se vuelve al punto 2.

Postcondición

Requisitos relacionados RF-04, RF-07 Tabl a 6 . Casos de uso de suavizado del t erreno

Caso de uso Texturizar terreno

Actor Usuario

Descripción: El sistema asignara diferentes texturas por zonas a del entorno 3D de Blender.

Precondición: Tener seleccionada dicha malla.

Flujo de eventos 1. El usuario selecciona el botón de texturizar 2. El interfaz muestra los datos predefinidos (o previos)

modificables para que el usuario los cambie o confirme 3. El usuario introduce datos o deja los predefinidos y

confirma. 4. Se selecciona que textura corresponde a cada cara de la

malla y se aplica.

Flujo alternativo 3.1 El usuario introduce datos erróneos o no ha seleccionado una malla.

3.2 El sistema muestra un mensaje de error y se vuelve al punto 2.

Postcondición

Requisitos relacionados RF-06, RF-07 Tabl a 7 . Casos de uso de t exturización del t erreno

También es necesario analizar las variables que utilizará el sistema antes de proceder al

diseño, ya que muchas de ellas estarán presentes en la interfaz y será necesario tenerlas en

cuenta tanto a la hora de diseñar la herramienta como realizando su implementación. Se

han tenido en cuenta las variables con las que podrá interactuar el usuario a la hora de

realizar el análisis y el diseño de este proyecto. A continuación, se detallan sus usos:

Para el algoritmo del punto medio el usuario podrá interactuar con tres variables de manera

directa. La potencia para el número de vértices define cuántos vértices por lado tendrá la

malla generada por el punto medio. Concretamente serán vértices por lado.

El parámetro de suavizado del algoritmo se suele dejar entre los valores cero y uno,

teniendo en cuenta que cuanto mayor sea su valor más regular será el terreno, es decir,

habrá una menor diferencia de altura entre los vértices vecinos.

El parámetro para la amplitud en el desplazamiento del punto medio es la suma aleatoria

de altura en cada vértice. Si no se suavizase el resultado cada suma tomaría un rango de

valores .

Page 39: GRADO EN INGENIERÍA MULTIMEDIA - UVtapec.uv.es/jboluda/projectes/proyectos_antiguos/JORGE_GARCIA_S… · TRABAJO DE FIN DE GRADO DESARROLLO DE PLUG-IN PARA MODELADOR 3D Y ANÀLISIS

39

La potencia para el número de vértices de la superficie browniana define cuántos vértices

por lado tendrá la malla. Concretamente serán vértices por lado.

En el algoritmo del desplazamiento del punto medio es el parámetro de suavizado del

algoritmo. Se deberán introducir valores entre cero y uno. Cuanto más alto es su valor, más

regular será el terreno, es decir, habrá una menor diferencia de altura entre los vértices

vecinos. Al multiplicar este dato por dos se obtiene el valor alfa de las formulas descritas

posteriormente.

Para la superficie browniana es el factor por el que se multiplican las alturas producidas

por el algoritmo, y ya que estas suelen tener valores muy bajos se sitúan en el orden de la

amplitud preferida.

en erosión térmica hace referencia a cuál es la diferencia máxima que se desea que exista

entre los vértices vecinos de la malla tratada mediante este algoritmo. Normalmente nos

referimos a esto como pendiente máxima o talus en inglés.

en los algoritmos de erosión. Esta variable representa el número de veces que debe

aplicarse el algoritmo de erosión sobre la malla seleccionada.

en el algoritmo de erosión hídrica es variable del coeficiente de evaporación. Determina

qué cantidad de agua es eliminada durante el cuarto paso del algoritmo de erosión hídrica

los valores que tienen sentido para esta variable están entre el cero y el uno.

es, en el algoritmo de erosión hídrica, el coeficiente de lluvia. Determina cuánta lluvia es

añadida en cada iteración del algoritmo, sus valores también deberían ser bajos para evitar

comportamientos anormales.

en el algoritmo de erosión hídrica es el coeficiente de capacidad. Esta variable es la que

define qué cantidad de material puede retener el agua. En el último paso del algoritmo se

utiliza este coeficiente para saber qué cantidad de material libera el agua después de que un

porcentaje de esta se evapore.

en el algoritmo de erosión hídrica es el coeficiente de sedimentación. Define qué

cantidad de material puede disolverse en el agua. Es la variable que permite el cambio de

material entre vértices. Si esta variable se deja a cero no se apreciará ningún cambio en la

malla, y sus valores también deberían oscilar entre cero y uno.

En el algoritmo de generación fluvial, proporciona al usuario un cierto control

sobre las alturas de la malla resultante, multiplicándose por las alturas de la malla una vez

finalizado el algoritmo. La mayoría de las variables en este caso se ha dejado como

constantes ya que no son en absoluto intuitivas y se ha valorado que dificultarían

notablemente el uso del algoritmo.

Page 40: GRADO EN INGENIERÍA MULTIMEDIA - UVtapec.uv.es/jboluda/projectes/proyectos_antiguos/JORGE_GARCIA_S… · TRABAJO DE FIN DE GRADO DESARROLLO DE PLUG-IN PARA MODELADOR 3D Y ANÀLISIS

40

en el algoritmo de coloración es la altura del mar. Toda cara cuya altura este por debajo

del valor de esta variable pasa a tener sus vértices esta altura y se le asigna una textura de

agua.

en el algoritmo de coloración es la altura a partir de la que aparece nieve; cualquier cara

cuya altura supere este valor pasa a tener asignada una textura de nieve. A las alturas que

superan pero no se les asigna una textura de hierba.

en el algoritmo de coloración. Es la pendiente que determina si una cara se le debe

asignar una textura respecto a su altura o por el contrario se le asignara una textura de

piedra.

5.2 Diseño

Entre los requisitos de este proyecto se encuentras características relacionadas con la

accesibilidad. Para cumplir dichos requisitos se debe realizar el diseño de la interfaz de la

herramienta.

El plug-in consistirá en una barra de herramientas extra en el modo objeto de Blender. Esta

barra de herramientas constará de seis botones, como se puede observar en la Figura 9,

uno para cada una de los algoritmos que hemos decidido implementar. El comportamiento

de los botones será similar en todos ellos, se abrirá un dialogo de opciones con los

parámetros que el usuario debe introducir, con nombres descriptivos y valores por defecto

que harán de referencia para el usuario.

A continuación, se incluye una lista de figuras del diseño visual de cada una de las partes del

interfaz de la herramienta.

Fi gura 10. Interfaz para generación por desplazamiento del punto medio

Fi gura 9 . Interfaz general

Page 41: GRADO EN INGENIERÍA MULTIMEDIA - UVtapec.uv.es/jboluda/projectes/proyectos_antiguos/JORGE_GARCIA_S… · TRABAJO DE FIN DE GRADO DESARROLLO DE PLUG-IN PARA MODELADOR 3D Y ANÀLISIS

41

En todo proyecto de programación es importante que se diseñen las clases de las que se

compone el sistema y se detallen las relaciones entre ellas. Para que este diseño sea sencil lo

y fácil de comprender ha de crearse un diagrama de clases.

Este diagrama (Figura 13) contiene las funciones principales de cada clase, junto con los

parámetros más representativos de estas. Su funcionamiento y cómo se desarrollará su

implementación se detallará en el apartado de implementación.

Fi gura 11. Int erfaz para erosión t érmica

Fi gura 12. Interfaz para erosión hídrica

Fi gura 13. Interfaz para coloreado

Page 42: GRADO EN INGENIERÍA MULTIMEDIA - UVtapec.uv.es/jboluda/projectes/proyectos_antiguos/JORGE_GARCIA_S… · TRABAJO DE FIN DE GRADO DESARROLLO DE PLUG-IN PARA MODELADOR 3D Y ANÀLISIS

42

5.3 Implementación

Una vez se ha analizado como ha de funcionar la herramienta y esta ha sido diseñada, se

procederá a su implementarla. El proceso de implementación consistirá en codificar los

algoritmos elegidos en el estado del arte y la interfaz de manera que se cumpla con los

requisitos expuestos en el apartado 4.

5.3.1 Entorno de trabajo

Como se ha mencionado previamente este proyecto ha sido desarrollado en Blender. La

versión utilizada durante el desarrollo del proyecto ha sido la 2.72. Los entornos del

modelador utilizados han sido:

• Su API de programación:

• Su modo objeto:

• Su modo editor:

• La consola incrustada:

• La consola de sistema:

No ha sido necesario utilizar ningún otro software para cumplir con la implementación.

Se han utilizado dos librerías, Bpy, que es la librería para acceder a los datos de Blender y

Numpy, una librería esencial de computación científica de Python.

5.3.2 Implementación de algoritmos

En este apartado se explican los distintos algoritmos implementados y las constantes

utilizadas por ellos.

5.3.2.1 Desplazamiento aleatorio del punto medio (diamond-square)

Fi gura 14. Diagrama de clases

Page 43: GRADO EN INGENIERÍA MULTIMEDIA - UVtapec.uv.es/jboluda/projectes/proyectos_antiguos/JORGE_GARCIA_S… · TRABAJO DE FIN DE GRADO DESARROLLO DE PLUG-IN PARA MODELADOR 3D Y ANÀLISIS

43

Este algoritmo fue el primero en ser implementado, ya que es el más simple. Consiste en

generar un mapa de alturas aleatorias a partir de los valores iniciales de las esquinas. Los

pasos a seguir son:

1. Se inicializan las esquinas.

2. Se calcula el promedio del centro y se le suma un valor aleatorio.

3. Se calculan los promedios de los puntos entre esquinas.

4. Repetir paso 2 y 3 con los subgrupos de 4 esquinas generados hasta alcanzar las

subdivisiones deseadas.

En la Figura 14 se representan gráficamente los pasos del algoritmo:

Este algoritmo requiere como parámetros de entrada el número de vértices por lado (que

debe ser potencia de 2), la amplitud del valor aleatorio a sumar al promedio y un parámetro

de suavizado. Las fórmulas para calcular las nuevas alturas en la malla son:

Centro de 4 esquinas:

Ecuaci ón 5 . Cent ro entre cuatro esquinas

Donde es la amplitud, es la iteración en la que estamos, es el parámetro de suavizado,

y se corresponde a un valor aleatorio entre -1 y 1.

Con estos mismos parámetros podemos calcular el punto medio de un lado:

Ecuaci ón 6 . Cent ro entre dos esquinas

5.3.2.2 Filtrado de Fourier de Kroese y Botev [23]:

Como ya se ha indicado con anterioridad, las superficies brownianas son constructos

matemáticos cuya apariencia puede parecerse bastante a paisajes naturales. Este a lgoritmo

parte de la base de que una superficie Browniana puede ser definida como un proceso

Gaussiano de media 0 usando esta función de covarianza:

Ecuaci ón 7 . Covarianza para superf icie browniana

Fi gura 15. Pasos del desplazamiento a leatorio del punto medio

Page 44: GRADO EN INGENIERÍA MULTIMEDIA - UVtapec.uv.es/jboluda/projectes/proyectos_antiguos/JORGE_GARCIA_S… · TRABAJO DE FIN DE GRADO DESARROLLO DE PLUG-IN PARA MODELADOR 3D Y ANÀLISIS

44

Los valores de las alturas X(t) se generan mediante el método de Stein [22] tal que:

Estos valores son después tratados así:

donde las constantes que aparecen en las formulas toman estos valores:

• Los valores dependen de , donde , y es el parámetro de suavizado).

• También se ha respetado el valor de recogido del artículo citado ya que

garantiza el correcto funcionamiento de los grupos de valores.

Este algoritmo tiene como salida un mapa de alturas cuyos valores suelen ser bastante

cercanos a 0. Para poder utilizarlo como generador de terreno procedural era preciso

generar un parámetro de amplitud que determinase la altura de las montañas generadas. El

parámetro se aplica sencillamente, multiplicándolo por los valores de las alturas. Esto

puede generar algunos picos algo antinaturales, que se solucionan fácilmente aplicando los

algoritmos de erosión de esta herramienta.

Tanto el parámetro de suavizado como el de amplitud son facilitados por el usuario.

5.3.2.3 Erosión térmica:

Este algoritmo recibe como datos de entrada, la pendiente máxima , el número de

iteraciones a realizar y un mapa de alturas base que debe ser cuadrado. Se ha uti l izado

un vecindario de Moore.

Los pasos a realizar en cada iteración para cada altura o vértice consisten en:

1. Se calcula la diferencia de alturas para cada vecino

2. Se suman todas las diferencias de alturas que superen la pendiente máxima

3. Se selecciona la mayor diferencia de altura

4. Se realiza un intercambio de material entre los vértices cuya distancia a superado la

pendiente máxima mediante las fórmulas:

Page 45: GRADO EN INGENIERÍA MULTIMEDIA - UVtapec.uv.es/jboluda/projectes/proyectos_antiguos/JORGE_GARCIA_S… · TRABAJO DE FIN DE GRADO DESARROLLO DE PLUG-IN PARA MODELADOR 3D Y ANÀLISIS

45

Ecuaci ón 8 . Altura del vértice

Ecuaci ón 9 . Altura del vecino

Donde para evitar comportamientos erróneos al traspasar más material del

necesario, así solo se transporta la mitad.

5.3.2.4 Erosión Hídrica:

Este algoritmo recibe como datos de entrada, El coeficiente de lluvia , El coeficiente de

evaporación , El coeficiente de sedimentación , El coeficiente de capacidad , el

número de iteraciones a realizar y un mapa de alturas base que debe ser cuadrado. Al

igual que en el algoritmo de erosión térmica se ha utilizado un vecindario de Moore. El

algoritmo guarda un mapa del agua y del sedimento para almacenar información

sobre el flujo del agua y el material que hay disuelto en ella.

Este algoritmo iterativo cuenta principalmente con 4 pasos.

1. En el primer paso se añade agua para simular lluvia de empleando la siguiente ecuación,

2. En el segundo paso se disuelve material en el agua, y se representa

3. En el tercer paso se transportan agua y sedimentos de los vértices evaluados a sus

vértices vecinos, teniendo en cuenta únicamente a los vecinos más bajos que el vértice

en cuestión, mediante las formulas:

donde el incremento de es la altura del vértice evaluado menos la media de las alturas

de todos los vértices envueltos en el cálculo, es la diferencia de altura con el vecino

evaluado y es la suma de las distancias del vértice evaluado con todos los vecinos

más bajos que él. El agua en el vértice que esté siendo evaluado es , y por tanto .es

el agua en el vértice vecino.

4. En el cuarto paso se evapora agua y se evalúa si el agua tiene más sedimento disuelto

del que es capaz de llevar y si es así lo deposita. Esto se representa así:

Page 46: GRADO EN INGENIERÍA MULTIMEDIA - UVtapec.uv.es/jboluda/projectes/proyectos_antiguos/JORGE_GARCIA_S… · TRABAJO DE FIN DE GRADO DESARROLLO DE PLUG-IN PARA MODELADOR 3D Y ANÀLISIS

46

donde

5.3.2.5 Generación tectónica y fluvial: Este algoritmo le pide al usuario un mapa de alturas inicial que debe ser cuadrado, y la

amplitud que quiere que tengan las montañas generadas. En el artículo de [38]se explica que

las variables utilizadas en este algoritmo no son nada intuitivas, de ahí que no se deje al

usuario cambiarlas y hayan sido consideradas como constantes en el diseño de la

herramienta. En el apartado de pruebas se profundiza en estas variables.

El algoritmo consta de dos fases principales, generación del flujo de agua y resolución de la

ecuación de erosión y levantamiento. Se utiliza el mapa de alturas inicial para generar un

mapa de velocidades de crecimiento. Este mapa de velocidades de crecimiento está acotado

entre -5e-4 y 5e-4, el valor máximo de crecimiento o decrecimiento del mapa de alturas se

toma como referencia para hacer la transformación de datos, siguiendo esta fórmula:

Ecuaci ón 10. Dominio de velocidades de crecimiento

Una vez recogidos los datos se procede a realizar la primera fase, que consiste en los

siguientes pasos:

1. Se recorren todos los vértices y se establece un enlace con su vecino más bajo. El

vecindario utilizado es el de Moore. Esto genera una estructura en forma de árbol

compuesta por lagos (raíces) y sus afluentes (ramas y hojas, siendo las hojas

aquellos nodos que no tienen ningún afluente).

2. Una vez tenemos el grafo de árboles definido se procede a relacionar estos árboles

intentando crear enlaces entre lagos. Esto se hace recorriendo todos los vértices

otra vez, buscando vecinos que pertenezcan a otros lagos. Estos nodos deben

cumplir: , donde y son los nodos vecinos y y

son los nodos lagos. Si se cumple la condición se añaden dos enlaces, entre nodos

vecinos y lagos haciendo que los lagos fluyan hacia los nodos vecinos.

3. Se crea una lista de lagos definitiva, inicializándola con los lagos de los bordes del

dominio y eliminando los enlaces que salen de estos lagos. Después se van

añadiendo otros lagos que deben fluir hacia los vértices pertenecientes a los lagos

que ya se encuentran en la lista de lagos definitivos y se eliminan el resto de

posibles enlaces que salen de estos lagos a añadir. Terminamos de añadir lagos

cuando no quedan enlaces posibles.

4. Una vez tenemos la estructura final de árboles, se calcula el área de cada nodo,

como este algoritmo esta modificado para trabajar con mallas regulares esto

consiste sencillamente en , donde es el área del afluente. Esto

requiere que las áreas se calculen de hoja a nodo.

5. Una vez tenemos las áreas de cada nodo se procede a definir las nuevas alturas

mediante esta fórmula:

Page 47: GRADO EN INGENIERÍA MULTIMEDIA - UVtapec.uv.es/jboluda/projectes/proyectos_antiguos/JORGE_GARCIA_S… · TRABAJO DE FIN DE GRADO DESARROLLO DE PLUG-IN PARA MODELADOR 3D Y ANÀLISIS

47

O en el caso de los lagos,

6. Se transforma el rango de alturas en el deseado por el usuario mediante la

fórmula:

Cabe destacar que este algoritmo ha sido simplificado para trabajar con mallas regulares,

pudiendo así aplicar a los resultados el algoritmo de erosión térmica y erosión hídrica y para

que sea más fácil para el usuario definir los resultados a obtener.

5.3.2.6 Algoritmo de coloración:

Este algoritmo de coloración recibe como datos de entrada la altura del mar , la

pendiente máxima , la altura de la nieve y la malla a colorear. Consta de dos

sencillos pasos:

a. Se recorren todos los vértices de la malla y todos los que estén debajo del nivel del

mar pasan a tener la altura del mar.

b. Se evalúa cada cara de la malla. Se comprueba si su inclinación es mayor que la

definida por el usuario calculando el ángulo entre la normal de una cara en posición

horizontal y la normal de la cara evaluada, si la supera se le asigna una textura de

piedra. Si no supera la inclinación se evalúa la altura de su centro, si está al nivel del

mar se le asigna una textura de agua, si está por encima de la altura de nieve se le

asigna una textura de nieve y si no es ninguno de estos dos casos se le asigna una

textura de hierba.

5.3.3 Implementación de la interfaz y del generador de mallas

Se ha programado una interfaz sencilla para la utilización de la herramienta. Consiste en un

panel con un botón para cada uno de los algoritmos cada uno de los algoritmos descritos

en el punto anterior. Estos botones se corresponden con una clase operador de Python y

cuando el usuario los pulsa se abre un dialogo con valores por defecto modificables para

que se introduzcan los datos deseados para la generación o erosión del terreno y un botón

de ok para lanzar el algoritmo una vez el usuario a introducido los datos necesarios. En este

evento se recogen los datos y se llama a al algoritmo correspondiente, que genera un mapa

de alturas y llama al generador de mallas, que genera una malla con los mismos vértices que

alturas le llegan asignando estas a la dimensión z de los vértices y generando los ejes y caras

entre ellos. Los algoritmos que reciben una malla como dato de entrada la destruyen y

generan otra.

Con esto finaliza la implementación de la herramienta, la codificación de estos algoritmos

en Blender, permite realizar pruebas de una manera muy sencilla utilizando su consola para

Page 48: GRADO EN INGENIERÍA MULTIMEDIA - UVtapec.uv.es/jboluda/projectes/proyectos_antiguos/JORGE_GARCIA_S… · TRABAJO DE FIN DE GRADO DESARROLLO DE PLUG-IN PARA MODELADOR 3D Y ANÀLISIS

48

comprobar datos numéricos y utilizando su entorno 3D para comprobar los resultados

visuales. Estas pruebas se detallan en el siguiente capítulo.

Page 49: GRADO EN INGENIERÍA MULTIMEDIA - UVtapec.uv.es/jboluda/projectes/proyectos_antiguos/JORGE_GARCIA_S… · TRABAJO DE FIN DE GRADO DESARROLLO DE PLUG-IN PARA MODELADOR 3D Y ANÀLISIS

49

6. Pruebas

Todo producto de ingeniería debe pasar una serie de pruebas antes de afirmar que el

desarrollo del proyecto ha concluido. En este proyecto en particular además se realizan

ciertas pruebas adicionales para estudiar los resultados obtenidos por los di stintos

algoritmos. Pese a todo, las pruebas se siguen pudiendo en capsular en los cuatro tipos

clásicos: Pruebas unitarias, pruebas de integración, pruebas de sistema y pruebas de

usabilidad.

6.1 Pruebas unitarias

Estas pruebas son las que se realizan para comprobar que cada uno de los elementos

funciona correctamente por separado. En el caso de este proyecto se han realizado pruebas

para cada uno de los algoritmos implementados. Se detallan las pruebas realizadas después

de haber solucionado los errores de compilación de cada uno de los algoritmos

implementados.

Estas pruebas se han realizado ejecutando por separado los archivos Python de cada uno

de los algoritmos. Para comprobar resultados de manera visual también se utiliza el código

de generación de mallas.

6.1.1 Desplazami ento del punto medio:

Sobre este algoritmo se han realizado las siguientes comprobaciones:

La generación del mapa sin componente aleatoria es correcta y únicamente las esquinas

quedan en la altura inicial. La primera vez que se ejecutó una prueba para comprobar esto

se descubrió que los bucles que recorrían los vértices estaban mal definidos ya que la última

fila y columna de vértices de la malla no cambiaban de altura.

Fi gura 16. Mapa de a l turas sin componente a leatoria

Page 50: GRADO EN INGENIERÍA MULTIMEDIA - UVtapec.uv.es/jboluda/projectes/proyectos_antiguos/JORGE_GARCIA_S… · TRABAJO DE FIN DE GRADO DESARROLLO DE PLUG-IN PARA MODELADOR 3D Y ANÀLISIS

50

Una vez comprobado que el mapa se genera de manera correcta sin la componente

aleatoria se añade a las pruebas de generación la componente aleatoria y los valores de

suavizado h y se comprueba que se generan superficies similares a terrenos y que el terreno

se suaviza conforme se aumenta el valor de h. No hubo errores que corregir en esta

comprobación. Las siguientes figuras muestran un terreno generado con el factor de

suavizado en los valores 0,0.5,1 y 2.

Fi gura 17. Factor de suavizado 0 Fi gura 18. Factor de suavizado 0 .5

Fi gura 19. Factor de suavizado 1 Fi gura 20. Factor de suavizado 2

Page 51: GRADO EN INGENIERÍA MULTIMEDIA - UVtapec.uv.es/jboluda/projectes/proyectos_antiguos/JORGE_GARCIA_S… · TRABAJO DE FIN DE GRADO DESARROLLO DE PLUG-IN PARA MODELADOR 3D Y ANÀLISIS

51

Se comprueba que se pueden generar mapas para distintos valores de vértice por lado de la

manera permitida, es decir en la forma . Las siguientes figuras muestran terrenos de

vértices y vértices.

Se comprueba que se puede proporcionar una malla con las esquinas inicializadas en un

valor distinto de 0 y el resultado presenta el comportamiento deseado, es decir, que se gana

algo de control respecto al resultado. En las dos figuras siguientes se puede observar cómo

el estado inicial de las esquinas modifica el resultado obtenido.

6.1.2 Filtrado de Fourier:

Las comprobaciones sobre el filtrado de Fourier que se han realizado han sido las que se

muestran a continuación.

Se ha comprobado la correcta generación de una superficie Browniana con amplitud 1 y

con un parámetro arbitrario, en este caso 0.8.

Fi gura 22. Estado inicial con esquina ≠ 0 Fi gura 23. Resul tado modif icando estado inicial

Fi gura 21. 2 7 + 1 vértices Fi gura 22. 2 8 + 1 vértices

Page 52: GRADO EN INGENIERÍA MULTIMEDIA - UVtapec.uv.es/jboluda/projectes/proyectos_antiguos/JORGE_GARCIA_S… · TRABAJO DE FIN DE GRADO DESARROLLO DE PLUG-IN PARA MODELADOR 3D Y ANÀLISIS

52

Se comprueba que se pueden generar mapas con distintas combinaciones de vértices

por lado. En las figuras, vértices por lado y vértices por lado.

Se comprueba que el valor de funciona correctamente dentro del rango 0-1. En las

figuras se pueden observar resultados del algoritmo con el factor de suavizado 0.01, 0.5 y 1.

Fi gura 27. Factor suavizado 0 .01 Fi gura 26. Factor suavizado 0 .5

Fi gura 23. 2 7 vértices por l ado Fi gura 24. 2 8 vértices por l ado

Fi gura 25. Superficie browniana con a : 1 , h: 0 .8

Page 53: GRADO EN INGENIERÍA MULTIMEDIA - UVtapec.uv.es/jboluda/projectes/proyectos_antiguos/JORGE_GARCIA_S… · TRABAJO DE FIN DE GRADO DESARROLLO DE PLUG-IN PARA MODELADOR 3D Y ANÀLISIS

53

Se comprueba que el valor de amplitud afecta correctamente al mapa y no provoca efectos

extraños. Podemos ver en las figuras, como afectan los valores de amplitud 1, 10, 20 y 30 a

los resultados.

6.1.3 Erosión térmica

Se comprueba que suaviza la superficie de las mallas a las que se aplica sin provocar

artefactos extraños. Esta prueba reveló la primera vez que el vecindario Moore no se

recorría correctamente durante la comprobación de alturas con los vecinos y la segunda vez

que había un problema en el cálculo de la masa total a desplazar, ambos errores

provocaban efectos extraños en las mallas.

Se confirma que el algoritmo puede ejecutarse sobre cualquier malla mientras esta sea

cuadrada, es decir, tenga el mismo número de vértices en cada lado. La primera vez que se

comprobó esto se descubrió que el algoritmo eliminaba la última fila y columna de las

mallas a las que se aplicaba por un error en los bucles que recogían el mapa final de alturas.

Fi gura 31. Factor suavizado 1 Fi gura 30. Factor ampli tud 10

Fi gura 29. Factor ampl itud 20 Fi gura 28. Factor ampli tud 30

Page 54: GRADO EN INGENIERÍA MULTIMEDIA - UVtapec.uv.es/jboluda/projectes/proyectos_antiguos/JORGE_GARCIA_S… · TRABAJO DE FIN DE GRADO DESARROLLO DE PLUG-IN PARA MODELADOR 3D Y ANÀLISIS

54

Se comprueba que la variable de pendiente máxima funciona de manera correcta

suavizando más la malla cuanto menor es su valor. En las figuras se puede observar una

malla “cruda” y el efecto que tiene sobre esta el algoritmo de erosión térmica con distintas

pendientes, concretamente con los valores 0.1, 1, 2 y 3.

Por último, se comprueba que la malla se sigue suavizando cuantas más iteraciones se

seleccionan para el algoritmo y que no se generan efectos extraños cuando hay muchas

iteraciones.

6.1.4 Erosión hídrica

Se comprueba que se suavizan las mallas simulando erosión hídrica, fijándose sobre todo

en las partes de la malla que tienen vértices más altos alrededor, que es donde pasaría más

cantidad de agua y se suavizaría más. Se detectaron distintos problemas realizando esta

prueba. Inicialmente había una clara tendencia que el agua se pasase siempre hacia los

vértices de la esquina interior izquierda debido a un error en el índice de los vecinos en la

parte de transporte de materiales del algoritmo. Después de solucionar este error se advirtió

que se generaban picos extraños en las alturas de la malla en vez de suavizarse. Esto era

causado por un error en el cálculo de evaporación del agua, que no llegaba a ocurrir nunca

Fi gura 35. Erosión térmica a l 0 .1 Fi gura 34. Erosión termica a l 1

Fi gura 33. Erosión térmica a l 2 Fi gura 32. Erosión térmica a l 3

Page 55: GRADO EN INGENIERÍA MULTIMEDIA - UVtapec.uv.es/jboluda/projectes/proyectos_antiguos/JORGE_GARCIA_S… · TRABAJO DE FIN DE GRADO DESARROLLO DE PLUG-IN PARA MODELADOR 3D Y ANÀLISIS

55

por lo que se mantenía la “lluvia” sobre algunos vértices generando estos picos, esto

ocurría independientemente de los valores seleccionados en las distintas variables.

Se realizan posteriormente comprobaciones respecto a los coeficientes de solubilidad

evaporación capacidad y lluvia. Para discernir si el efecto de un coeficiente tiene sentido se

ha probado a dejar el coeficiente analizado inicialmente a 0 y en una segunda ejecución con

un valor alto. Durante las pruebas, el resto de los coeficientes se mantienen en un valor

estándar.

En las Figura 37 se puede observar la malla sobre la que se aplicará el algoritmo, y en la

Figura 36 el resultado tras su ejecución para los valores de solubilidad = 0.1, evaporación

= 0.5, capacidad = 0.1 y lluvia por vértice = 0.1. En el resto de pruebas de este apartado se

mantienen estos valores a menos que se especifique lo contrario.

Para comprobar si el coeficiente de solubilidad afecta de manera correcta se han realizado

dos pruebas, una dejando su valor a 0 (siendo irrelevante el resto de valores), porque si este

coeficiente tiene valor nulo no debería generarse ningún cambio en la malla; y otra dándole

un valor de 0.25 mientras que el resto de coeficientes mantienen el valor por defecto de

0.10 y 0.5 para el coeficiente de evaporación. Los resultados de esta prueba fueron los

Fi gura 36. Segundo set de valores

Fi gura 38. Malla base Fi gura 37. Primer set de valores

Page 56: GRADO EN INGENIERÍA MULTIMEDIA - UVtapec.uv.es/jboluda/projectes/proyectos_antiguos/JORGE_GARCIA_S… · TRABAJO DE FIN DE GRADO DESARROLLO DE PLUG-IN PARA MODELADOR 3D Y ANÀLISIS

56

esperados, con un mayor índice de solubilidad se desplazaba más material entre los vértices

con el mismo número de iteraciones. En la Figura 35 el resultado de la prueba de 0.25.

Se ha realizado una prueba similar con el coeficiente de capacidad, pero con este

coeficiente los cambios entre 0 y 0.10 eran difícilmente perceptibles con pocas iteraciones

ya que cuando este coeficiente es 0 se deposita todo el material desplazado, dado que el

agua no retiene nada. Al aumentar el valor lo suficiente se hace perceptible que hay menor

deposición de material, aunque la erosión sea la misma. En las Figuras 38, 39, 40 podemos

observar los resultados obtenidos para 0, 0.25 y 1.

El coeficiente de evaporación está estrechamente ligado con el de capacidad, y cuando su

valor es 1 ocurre exactamente lo mismo que con un coeficiente de capacidad 0, ya que se

evapora la totalidad del agua y se deposita todo el material desplazado en cada iteración, si

se deja 0 no se deposita nada de material, pero sí que se percibe la erosión causada por el

coeficiente de solubilidad, es decir, se pierde todo el material disuelto. En las figuras, los

resultados de evaporación a 0 y evaporación a 1.

Fi gura 39. Coeficiente capacidad 1

Fi gura 41. Coeficiente capacidad 0 Fi gura 40. Coeficiente capacidad 0 .25

Page 57: GRADO EN INGENIERÍA MULTIMEDIA - UVtapec.uv.es/jboluda/projectes/proyectos_antiguos/JORGE_GARCIA_S… · TRABAJO DE FIN DE GRADO DESARROLLO DE PLUG-IN PARA MODELADOR 3D Y ANÀLISIS

57

El coeficiente de lluvia ha resultado ser el más delicado, si su coeficiente se deja a 0 la malla

no sufre cambios (no se añade agua, por tanto, no se desplaza material.) sin embargo, si su

valor es muy alto el algoritmo presenta comportamientos extraños generando picos de

altura que no son deseables, aunque pueden ser corregidos con el algoritmo de erosión

térmica. Se recomienda dejar este coeficiente con un valor por debajo de 0.10. En la figura

el resultado de lluvia a 0.25.

Por último, se comprueba que el algoritmo funciona de la misma manera para distintas

mallas cuadradas, es decir de distintos tamaños.

6.1.5 Generac ión tectóni ca y fluvial

Se comprueba que la generación de mapa es correcta y que el resultado guarda similitudes

con la malla inicial que se proporciona al algoritmo. En las Figuras 44 y 45 podemos ver

una malla inicial hecha a mano y el resultado tras aplicar el algoritmo.

Fi gura 42. Lluvia a l 0 .25

Fi gura 44. Evaporación a 0 Fi gura 43. Evaporación a 1

Page 58: GRADO EN INGENIERÍA MULTIMEDIA - UVtapec.uv.es/jboluda/projectes/proyectos_antiguos/JORGE_GARCIA_S… · TRABAJO DE FIN DE GRADO DESARROLLO DE PLUG-IN PARA MODELADOR 3D Y ANÀLISIS

58

Para asegurar su correcto funcionamiento, se comprueba que el algoritmo funciona con

distintas mallas cuadradas.

Se comprueba también que la variable de amplitud afecta de manera correcta al resultado.

En las figuras podemos observar distintos resultados para una malla inicial a 10 de amplitud

y 30. En este caso la malla inicial presentaba depresiones en vez de crecimientos, por lo que

los resultados decrecen.

6.1.6 Coloración del terreno

Se comprueba que el algoritmo inserta texturas en las mallas generadas por cada uno de los

algoritmos que utiliza la herramienta.

Se comprueba que las variables afectan de manera correcta al resultado, cuanto menor es el

valor umbral de la pendiente más roca hay y la altura del mar y de la nieve aparecen a partir

de la altura correcta.

Fi gura 46. Maya inicial provist a Fi gura 45. Maya t ras aplicar a lgoritmo

Fi gura 49. Maya inicia l Fi gura 48. Ampli tud 10 Fi gura 47. Ampli tud 30

Page 59: GRADO EN INGENIERÍA MULTIMEDIA - UVtapec.uv.es/jboluda/projectes/proyectos_antiguos/JORGE_GARCIA_S… · TRABAJO DE FIN DE GRADO DESARROLLO DE PLUG-IN PARA MODELADOR 3D Y ANÀLISIS

59

6.2 Pruebas funcionales

Las pruebas unitarias sirven para comprobar que cada una de las partes de la herramienta

funcionan bien por separado. Esto no garantiza que la herramienta funciona de la manera

deseada cuando se combinan los distintos algoritmos implementados. En este apartado se

detallan los experimentos realizados con la herramienta completa una vez se han real izado

las pruebas unitarias y corregido los errores detectados.

Para realizar estas pruebas se probarán todas las combinaciones posibles de algoritmos para

generar un terreno y posteriormente se intentará generar tipos de terreno y se intentará

determinar con que combinaciones de algoritmo es más fácil generar el resultado deseado.

6.2.1 Combinaci ones de algoritmos

Se ha comprobado que la malla generada con el desplazamiento no presenta

comportamientos extraños cuando se le aplica la erosión térmica, la hídrica o una

combinación de estas, se observa que el orden en el que se aplican estos algoritmos es

relevante para el resultado, esto será relevante para las pruebas de generación de tipos de

terrenos.

Todas las combinaciones de algoritmos con el método de generación de terreno mediante

filtrado de Fourier han sido exitosas también y se observan comportamientos similares a las

combinaciones con el método anterior. En las figuras, las mallas iniciales y los resultados de

las combinaciones de aplicar los algoritmos de erosión a los de generación.

Fi gura 51. Malla generada con punto medio Fi gura 50. Erosión hídrica sobre punto medio

Page 60: GRADO EN INGENIERÍA MULTIMEDIA - UVtapec.uv.es/jboluda/projectes/proyectos_antiguos/JORGE_GARCIA_S… · TRABAJO DE FIN DE GRADO DESARROLLO DE PLUG-IN PARA MODELADOR 3D Y ANÀLISIS

60

La generación fluvial puede presentar errores cuando trabaja a partir de una malla con

Fi gura 57. Erosión térmica sobre punto medio Fi gura 56. Erosión térmica-hídrica sobre

punto medio

Fi gura 53. Erosión hídrico-térmica sobre

punto medio

Fi gura 52. Malla generada con superficie Browniana

Fi gura 55. Erosión hídri ca sobre Browniana Fi gura 54. Erosión térmica sobre Browniana

Page 61: GRADO EN INGENIERÍA MULTIMEDIA - UVtapec.uv.es/jboluda/projectes/proyectos_antiguos/JORGE_GARCIA_S… · TRABAJO DE FIN DE GRADO DESARROLLO DE PLUG-IN PARA MODELADOR 3D Y ANÀLISIS

61

muchos vértices por debajo de 0, esto es porque el algoritmo está pensado para trabajar a partir de un dominio de crecimientos. Esto, combinado con el hecho de que sus bordes siempre están a 0 hace poco compatible este método con los otros dos métodos de generación, es decir, que es mejor manufacturar una malla con dominios básicos a partir de un mapa de alturas generado por los otros dos métodos. Las figuras anteriores (apartado 6.1.5) ya presentan comportamientos extraños.

El algoritmo de generación fluvial resulta igual de compatible con los algoritmos de erosión

que los dos previos algoritmos de generación, de hecho, el aplicar el algoritmo de erosión

térmica palia de manera considerable los efectos no deseados en los resultados de

generación fluvial cuando este ha utilizado un mapa de alturas generado previamente. En

las figuras los resultados de aplicar erosión térmica, hídrica, térmica e hídrica y hídrica y

térmica, respectivamente.

Fi gura 59. Erosión térmica – hídrica sobre

Brow niana

Fi gura 61. Fluvial t érmica Fi gura 60. Fluvial hídrica

Fi gura 58. Erosión hídrico – t érmica sobre

Brow niana

Page 62: GRADO EN INGENIERÍA MULTIMEDIA - UVtapec.uv.es/jboluda/projectes/proyectos_antiguos/JORGE_GARCIA_S… · TRABAJO DE FIN DE GRADO DESARROLLO DE PLUG-IN PARA MODELADOR 3D Y ANÀLISIS

62

El algoritmo de coloración no presenta problemas con ninguna de las mallas mencionadas

previamente.

En conclusión, los algoritmos de erosión son compatibles con todos los algoritmos de

generación de terrenos, pero la generación fluvial tiene comportamientos extraños al

utilizar mallas generadas con los otros dos algoritmos como dominio inicial.

6.2.2 Generaci ón de tipos de terreno

A continuación, se procederá crear distintos tipos de terreno con las combinaciones de

algoritmos de las que disponemos y se hará una evaluación sobre el control que garantiza

cada una de las opciones sobre el resultado. Las figuras de cada terreno corresponden cada

una a un algoritmo de generación, teniendo aplicados los algoritmos de erosión hídrica y

térmica, en ese orden.

El primer tipo de terreno seleccionado han sido dunas, o en este caso ya que la textura que

debería aplicarse es hierba colinas suaves.

De entre los resultados, el que más se asemeja al resultado deseado es el de generación

fluvial ya que este es el que permite más control, sin embargo, los otros dos algoritmos

Fi gura 63. Fluvial Térmico-hídrica Fi gura 62. Fluvial Hídrico-térmica

Fi gura 64. Dunas mediante generación f luvia l

Page 63: GRADO EN INGENIERÍA MULTIMEDIA - UVtapec.uv.es/jboluda/projectes/proyectos_antiguos/JORGE_GARCIA_S… · TRABAJO DE FIN DE GRADO DESARROLLO DE PLUG-IN PARA MODELADOR 3D Y ANÀLISIS

63

permiten generar paisajes similares de manera relativamente fácil. Para que los terrenos

generados tengan la suavidad deseada, además de poner un factor bastante amplio,

aplicar el algoritmo de erosión con una pendiente muy baja ha sido satisfactorio.

En conclusión, con cualquier algoritmo de los de esta herramienta se pueden generar

terrenos de colinas suaves o dunas, pero es el de generación fluvial el algoritmo que más

control ofrece sobre la apariencia del terreno. Cabe destacar que, para obtener resultados

similares, la amplitud en el algoritmo de filtrado de Fourier ha de ser sustancialmente

menor a la de los otros dos.

El siguiente terreno seleccionado es un delta, y por tanto se ha intentado generar un rio

cuya desembocadura forme un delta. Para una mejor visualización de esto se ha decidido

colorear todas las placas de resultado.

El resultado más similar al deseado ha sido, una vez más el de generación fluvial. Generar

este terreno no ha sido nada sencillo con los otros algoritmos, se han necesitado varios

intentos con los otros algoritmos hasta conseguir un resultado que se asemejase a un delt a

o pudiese asemejarse después de una aplicación del algoritmo de erosión hídrica. Es

necesario decir que se ha necesitado un número inusual de iteraciones en el algoritmo de

erosión hídrica para generar el terreno deseado dado el tipo de terreno seleccionado.

Fi gura 65. Dunas mediante erosión t érmica

Fi gura 67. Delt a mediante generación f luvia l

Fi gura 66. Dunas mediante erosión hídrica

Page 64: GRADO EN INGENIERÍA MULTIMEDIA - UVtapec.uv.es/jboluda/projectes/proyectos_antiguos/JORGE_GARCIA_S… · TRABAJO DE FIN DE GRADO DESARROLLO DE PLUG-IN PARA MODELADOR 3D Y ANÀLISIS

64

El tercer tipo de terreno seleccionado han sido el de montañas escarpadas. En este t ipo de

terreno la generación fluvial ha obtenido los resultados deseados, mientras que los otros

dos algoritmos generan resultados adecuados, aunque sin ser tan específicos. Con estos

últimos se obtiene una sensación más natural una vez sometidos a los algoritmos de

erosión. La pendiente máxima en erosión térmica se ha dejado con un valor alto, que se

busca la generación de un terreno escarpado, con riscos o zonas no transitables; razón por

Fi gura 71. Delta mediante erosión hídrica Fi gura 72. Delt a mediante erosión térmica

Fi gura 70. Montañas escarpada s mediant e generación f luvial

Fi gura 69. Escarpadas mediante e. t érmica Fi gura 68. Escarpadas mediante e. hídrica

Page 65: GRADO EN INGENIERÍA MULTIMEDIA - UVtapec.uv.es/jboluda/projectes/proyectos_antiguos/JORGE_GARCIA_S… · TRABAJO DE FIN DE GRADO DESARROLLO DE PLUG-IN PARA MODELADOR 3D Y ANÀLISIS

65

la que también se han empleado valores de amplitud altos.

El cuarto tipo de terreno es una llanura, es algo similar a las colinas suaves, sin embargo, se

pretende una elevación cuasi nula, lo que es fácil de conseguir ya que se controla la

amplitud en todos los algoritmos. Todos los algoritmos han obtenido resultados similares.

Se observan dos fenómenos respecto a los algoritmos de erosión con este tipo de terrenos.

Primero, para que el algoritmo de erosión térmica sea efectivo debe tener una pendiente

máxima muy baja. Segundo, este tipo de terreno facilita considerablemente la aparición de

artefactos extraños (picos) debidos a la erosión hídrica, por lo que es recomendable dejar el

factor de lluvia por vértice muy bajo.

El último tipo de terreno consiste en un barranco lo ladera empinada. Conseguir esto ha

sido fácil con los algoritmos de generación fluvial y desplazamiento del punto medio,

Fi gura 75. Llanura mediante generación f luvial

Fi gura 73. Llanura mediante erosión hídrica

Fi gura 74. Llanura mediante erosión t ermica

Page 66: GRADO EN INGENIERÍA MULTIMEDIA - UVtapec.uv.es/jboluda/projectes/proyectos_antiguos/JORGE_GARCIA_S… · TRABAJO DE FIN DE GRADO DESARROLLO DE PLUG-IN PARA MODELADOR 3D Y ANÀLISIS

66

gracias a poder inicializar los valores de las esquinas en el último. El otro algoritmo de

generación se ha tenido que ejecutar varias veces hasta alcanzar un resultado aceptable.

6.3 Pruebas de rendimiento

Este trabajo tiene como objetivo estudiar y comparar estos algoritmos, además de los

distintos resultados gráficos se debe estudiar la eficiencia de estos. Para ello se ha medido el

tiempo que necesita cada algoritmo para generar el terreno.

En este apartado se expone el aumento de tiempo que presentan los algoritmos cuando se

incrementa el número de vértices con los que están trabajando, en el caso de los algoritmos

iterativos esta medida es por iteración.

Las medidas que se pueden ver en las siguientes tablas, también se han representado en las

figuras X, Y….

Algoritmo de desplazamiento del punto medio

Fi gura 76. Barranco mediante generación

f luv ia l

Fi gura 77. Barranco mediante e.

t érmica

Fi gura 78. Barranco mediante e . hí drica

Page 67: GRADO EN INGENIERÍA MULTIMEDIA - UVtapec.uv.es/jboluda/projectes/proyectos_antiguos/JORGE_GARCIA_S… · TRABAJO DE FIN DE GRADO DESARROLLO DE PLUG-IN PARA MODELADOR 3D Y ANÀLISIS

67

vértices tiempo (s)

9 <0,001

25 <0,001

81 0,001

289 0,002

1089 0,007

4225 0,03

16641 0,107

66049 0,425

263169 1,726

1050625 6,996 Tabl a 8 . Algoritmo de desplazamiento a l punto medio

Este algoritmo es el más rápido ya que su coste es lineal, solo se calcula una vez la altura de

cada uno de los vértices exceptuando las esquinas, que conservan siempre su valor inicial.

Además, para calcular cada una de las alturas tan solo a de calcularse un numero aleatorio y

hacer una media entre dos o 4 elementos, dependiendo de si se está calculando un centro o

un lado siendo el coste de las operaciones muy bajo.

Algoritmo de filtrado de Fourier

vértices tiempo (s)

4 <0,001

16 0,001

64 0,002

256 0,006

1024 0,024

4096 0,094

16384 0,413

65536 1,54

262144 6,251

1048576 24,983 Tabl a 9 . Algoritmo de f i lt rado de F ourier

Este algoritmo también tiene un coste lineal, sin embargo, el coste operacional es mucho

mayor. La preparación de la matriz o distribución gaussiana ya tiene un coste similar a l del

algoritmo de desplazamiento del punto medio y después se realizan las transformadas sobre

esta matriz. Pese al coste lineal la carga matemática es mucho mayor y el algoritmo recorre

cada valor de la matriz o número de vértices varias veces.

Algoritmo de erosión térmica

vértices tiempo (s)

4 <0,001

16 <0,001

64 0,003

256 0,011

1024 0,016

Page 68: GRADO EN INGENIERÍA MULTIMEDIA - UVtapec.uv.es/jboluda/projectes/proyectos_antiguos/JORGE_GARCIA_S… · TRABAJO DE FIN DE GRADO DESARROLLO DE PLUG-IN PARA MODELADOR 3D Y ANÀLISIS

68

4096 0,142

16384 0,529

65536 2,125

262144 8,132

1048576 31,784 Tabl a 10. Algori tmo de erosión térmica

El algoritmo de erosión térmica también es de coste lineal. La necesidad de evaluar los 8

vecinos de cada uno de los vértices es ya de por si costoso y cuando se cumplen ciertas

condiciones se deben añadir operaciones adicionales, por lo que su coste temporal es

mayor, comparándolo con los algoritmos de generación previos, pero sigue teniendo un

coste bastante bajo.

Algoritmo de erosión hídrica

vértices tiempo

4 <0,001

16 0,001

64 0,006

256 0,025

1024 0,099

4096 0,405

16384 1,644

65536 6,535

262144 26,542

1048576 108,017 Tabl a 11. Algoritmo de erosión hídrica

Una vez más, tenemos un algoritmo con coste lineal, en este, tenemos también la necesidad

de evaluar los vecinos de cada vértice, pero su coste es mucho mayor porque no solo

debemos actualizar una matriz de alturas, sino que debemos efectuar operaciones para

actualizar cuatro matrices, una para el agua, otra para el terreno, una más para la masa

disuelta y, por último, una para la altura total de terreno y agua juntos. Estas matrices son

necesarias a la hora de efectuar evaluaciones para el intercambio de masas con los vecinos y

para una correcta simulación de erosión hídrica con los coeficientes dados. Este ha

resultado ser el algoritmo más costoso a causa de la cantidad de datos a mantener

actualizados.

Algoritmo de generación fluvia l y alzamiento tectóni co

vértices tiempo

4 <0,001

16 0,001

64 0,008

256 0,025

1024 0,066

4096 0,233

16384 0,961

65536 4,194

Page 69: GRADO EN INGENIERÍA MULTIMEDIA - UVtapec.uv.es/jboluda/projectes/proyectos_antiguos/JORGE_GARCIA_S… · TRABAJO DE FIN DE GRADO DESARROLLO DE PLUG-IN PARA MODELADOR 3D Y ANÀLISIS

69

262144 17,159

1048576 73,812 Tabl a 12. Algori tmo de generación f luvia l

Este a lgoritmo tiene coste l ineal también, pero ta l y como sucede con los

a lgoritmos de erosión la necesidad de evaluar los vecinos de cada vértice añade

coste computacional. Otro motivo por el que este a lgoritmo es más costoso es la

necesidad de crear los grafos nodo/rama (lagos) y el árbol de lagos para simular la

erosión fluvial que uti liza este a lgoritmo.

En estas dos graficas se puede apreciar la relación entre numero de vertices y tiempo de

generación de los tres algoritmos de generación implementados. Dado que en la primera

Fi gura 80. Gráfica comparat iva de a lgoritmos de generación t iempo/vértices

Fi gura 79. Gráfica comparat iva con valores duplicados de a lgori tmos de generación t iempo/vértices

Page 70: GRADO EN INGENIERÍA MULTIMEDIA - UVtapec.uv.es/jboluda/projectes/proyectos_antiguos/JORGE_GARCIA_S… · TRABAJO DE FIN DE GRADO DESARROLLO DE PLUG-IN PARA MODELADOR 3D Y ANÀLISIS

70

grafica no se aprecian bien todas las muestras se ha introducido una grafica utilizando la

mitad de muestras para que se pueda observar que el coste de los algoritmos,

efectivamente, tiene comportamiento lineal.

Estas dos figuras corresponden a la relación entre vértices y tiempo de iteración de los

algoritmos de erosión, el motivo de que se haya añadido una segunda figura con la mitad de

muestras es el mismo que existe para la primera pareja de gráficas. Una vez más queda

patente el coste lineal de los algoritmos.

Mirando las tablas y las gráficas comparativas se puede afirmar que el algoritmo de

generación más eficiente es el de desplazamiento del punto medio, seguido de el de filtrado

de Fourier. El algoritmo de generación basado en erosión fluvial y alzamiento tectónico es

mucho menos eficiente, cabe recordar que los datos medidos representan el tiempo por

Fi gura 81. Comparati va vértices/tiempo de i t eración para a lgori tmo de erosión .

Fi gura 82. Comparativa con valores dupl icados vértices/tiempo de i t eración para a lg oritmo de erosión.

Page 71: GRADO EN INGENIERÍA MULTIMEDIA - UVtapec.uv.es/jboluda/projectes/proyectos_antiguos/JORGE_GARCIA_S… · TRABAJO DE FIN DE GRADO DESARROLLO DE PLUG-IN PARA MODELADOR 3D Y ANÀLISIS

71

iteración, por lo que normalmente tardaría entre 10 o 100 veces más de los datos usados en

la gráfica comparativa (según el número de iteraciones).

Aun así, habría que tener en cuenta que dada la naturaleza del último algoritmo es probable

que no se necesite usar el algoritmo de erosión hídrica sobre el terreno generado, por lo

que los tiempos podrían igualarse algo, pero no lo suficiente como para que podamos

afirmar que este algoritmo es más eficiente.

Respecto a los algoritmos de erosión, resulta evidente cual genera una carga menor en la

computadora. El algoritmo de erosión térmica es más rápido y escala de manera más suave

que el de erosión hídrica. Aun así, ambos algoritmos generan distintos efectos en la malla,

por lo que esto solo se debería tener en cuenta cuando el tiempo apremie y solo se pueda

practicar un algoritmo de erosión sobre el terreno.

Sería interesante estudiar la utilización de un vecindario de Von Newman en los algoritmos

de erosión y el de generación fluvial para reducir significativamente los costes

computacionales. Si se aplicase esta mejora, comparativamente los gráficos quedarían de

una manera similar entre los algoritmos de erosión, pero puede que valiese la pena para

diferenciar entre los algoritmos de generación.

En conclusión, los algoritmos más eficientes son el de desplazamiento del punto medio y el

de erosión térmica y una combinación de estos ya puede generar un terreno bastante

agradable, por lo que, si la primera preocupación es la eficiencia, utilizar solo esta

combinación de algoritmos seria la elección adecuada.

6.4 Pruebas de usabilidad

Este apartado corresponde a las pruebas realizadas con usuarios. Se diferencian dos partes

de estas pruebas. La primera trata de analizar la naturalidad de los terrenos, comparados

con otros, y para esto se recurre a un conjunto de usuarios para que dé su opinión ya que

este análisis es completamente subjetivo. La segunda parte es ya algo más típico en las

pruebas de usabilidad, se recurre a un conjunto de usuarios para que prueben la

herramienta y se les pide que rellenen unas cuestiones sobre esta.

6.4.1 Encuesta sobre naturali dad

La encuesta que se ha proporcionado a los usuarios consta de tres partes, cada una de estas

cumple una funcionalidad distinta.

Los resultados obtenidos con 38 usuarios han sido los siguientes:

Page 72: GRADO EN INGENIERÍA MULTIMEDIA - UVtapec.uv.es/jboluda/projectes/proyectos_antiguos/JORGE_GARCIA_S… · TRABAJO DE FIN DE GRADO DESARROLLO DE PLUG-IN PARA MODELADOR 3D Y ANÀLISIS

72

Fi gura 83. Resu lt ados sobre l a encuesta “terrenos crudos”

La primera parte compara en grupos de tres terrenos los distintos algoritmos de

generación, habiéndole aplicado también los algoritmos de erosión, ya que no tiene sentido

preguntar por naturalidad presentando terrenos “crudos”. En esta primera parte los

terrenos tienen pocos vértices (26 por lado), pudiéndose apreciar la geometría de la que

están compuestos a simple vista. Los usuarios tenían que elegir uno de cada grupo.

Fi gura 84. Result ados de la encuesta con muchos vértices

La tercera parte es idéntica a la primera, pero con terrenos con muchos más vértices (2 10

por lado). Esta parte existe para observar si el aumento de vértices afecta en algo a las

elecciones de los usuarios o la mayoría se mantiene con las mismas elecciones que en la

primera parte.

Page 73: GRADO EN INGENIERÍA MULTIMEDIA - UVtapec.uv.es/jboluda/projectes/proyectos_antiguos/JORGE_GARCIA_S… · TRABAJO DE FIN DE GRADO DESARROLLO DE PLUG-IN PARA MODELADOR 3D Y ANÀLISIS

73

Fi gura 85. Result ados de la encuesta comparando Fourier/Punto medio

La segunda parte es un grupo de diez terrenos, creados con los algoritmos de

desplazamiento del punto medio y filtrado de Fourier, el objetivo es analizar estos por

separado porque son métodos más parecidos entre sí que con el de generación basada en

levantamientos tectónicos y erosión fluvial. Los usuarios tenían que elegi r cinco de estos

diez terrenos.

Comparando los resultados de la primera y la tercera parte observamos resultados

esperados. Mientras que en la primera parte la elección de terreno es muy variable a causa

de que se puede observar la geometría y realmente no parecen muy naturales, en la tercera

parte hay una clara tendencia a elegir el algoritmo de generación basado en alzamientos

tectónicos y erosión fluvial en los terrenos más específicos y filtrado de Fourier en los

otros.

Esto era de esperar ya que los terrenos específicos solo se podían lograr bien con el

algoritmo de generación basada en alzamientos tectónicos y el algoritmo de filtrado de

Fourier tiene una mayor dimensión fractal que el algoritmo de desplazamiento del punto

medio. Por otra parte, parece que en el tipo de terreno “colinas” ha sucedido justo lo

contrario a lo esperado, esto podría deberse a la iluminación del terreno.

La segunda parte viene a confirmar que se prefiere el filtrado de Fourier al de

desplazamiento del punto medio, probablemente por los motivos ya expuestos.

En el anexo dos se pueden observar la anotación numérica de los participantes.

6.4.2 Uso de la herrami enta

Para comprobar cuál es la respuesta de los usuarios respecto al uso de la herramienta, se ha

solicitado a un pequeño grupo de estos que la utilicen para generar un terreno de cada tipo,

como los vistos en la encuesta proporcionándoles el manual de usuario. Se ha apuntado

cuanto tiempo ha requerido cada usuario, cuantos terrenos ha logrado hacer y se les ha

Page 74: GRADO EN INGENIERÍA MULTIMEDIA - UVtapec.uv.es/jboluda/projectes/proyectos_antiguos/JORGE_GARCIA_S… · TRABAJO DE FIN DE GRADO DESARROLLO DE PLUG-IN PARA MODELADOR 3D Y ANÀLISIS

74

pedido que comenten cuan fácil les ha resultado el uso de la herramienta, su nivel de

satisfacción con los resultados y que errores han detectado o que cosas cambiarían.

Se han seleccionado seis usuarios, dos usuarios de edad avanzada, que no están

acostumbrados al uso de ordenadores, dos usuarios jóvenes, acostumbrados al uso de

ordenadores y dos usuarios familiarizados con Blender.

Tras analizar los resultados se han llegado a las siguientes conclusiones: La interfaz de la

herramienta ha resultado ser adecuada e intuitiva pero los usuarios apuntan que algunos de

los elementos propios de la interfaz de Blender son de complicado manejo. La mayoría de

usuarios ha sido capaz de generar todos los tipos de terreno y están satisfechos con los

resultados que presenta la herramienta. Se debería mejorar el algoritmo de coloreado

porque es demasiado simple. El manual de usuario era demasiado denso según los usuarios,

por lo que se ha cambiado y hecho más visual.

Los resultados de esta encuesta se pueden consultar en el tercer anexo.

En conclusión, se han logrado los objetivos de este trabajo, pero queda espacio para

mejora, sobretodo en el algoritmo de coloración, ya que no es en lo que más se ha centrado

el trabajo.

Page 75: GRADO EN INGENIERÍA MULTIMEDIA - UVtapec.uv.es/jboluda/projectes/proyectos_antiguos/JORGE_GARCIA_S… · TRABAJO DE FIN DE GRADO DESARROLLO DE PLUG-IN PARA MODELADOR 3D Y ANÀLISIS

6.5 Evaluación presupuestaria

Una vez finalizado el proyecto hace falta hacer una evaluación del cumplimiento de la planificación inicial. Este ha sido el diagrama Gantt final:

Fi gura 86. Diagrama de gantt

Page 76: GRADO EN INGENIERÍA MULTIMEDIA - UVtapec.uv.es/jboluda/projectes/proyectos_antiguos/JORGE_GARCIA_S… · TRABAJO DE FIN DE GRADO DESARROLLO DE PLUG-IN PARA MODELADOR 3D Y ANÀLISIS

Existen cambios significativos temporales en cuanto a las tareas de implementación de

algoritmos de generación y erosión, hay un periodo de pausa en el proyecto que no estaba

planificado y también hay cambios significativos en la duración de las pruebas de

rendimiento, usabilidad y elaboración de la memoria. A continuación, se explica cada uno de

los cambios respecto a la planificación inicial y se hace una re-evaluación presupuestaria.

Las tareas de implementación de algoritmos comienzan antes de acabar las tareas de diseño

porque se ha aprovechado trabajo realizado para la asignatura de métodos avanzados de

animación y tiene una duración mucho más extensa de lo previsto porque tuve que

compaginarlo con diversos trabajos del segundo cuatrimestre de cuarto curso.

La pausa que sucede en junio y julio se debe a que comencé las prácticas de empresa y como

no lograba compaginar el proyecto con el trabajo solicité trabajar a jornada completa y

retomé el proyecto cuando cumplí las horas de prácticas.

Las pruebas de rendimiento duraron más de lo previsto porque un error no detectado

causaba que el algoritmo de generación de terreno basado en alzamientos tectónicos y

generación fluvial tardase demasiado tiempo en ejecutarse y cuando se descubrió el error

hubo que rehacer estas pruebas.

En cuanto a las pruebas de usabilidad, el recabar información mediante encuestas costó

mucho más tiempo del previsto.

Por último, el retraso en la elaboración de la memoria se debió a que por motivos personales

no pude dedicarle tiempo durante prácticamente nada del mes de noviembre.

Con todo, la evaluación presupuestaria cambia, ya que ha habido cambios en las horas del

proyecto.

La duración total del proyecto ha sido de 212 días así que la amortización del equipo queda

en 101’5 euros, el coste del personal queda en 9285’76 euros y los gastos indirectos en 1985

euros. En la tabla de a continuación se pueden observar los cambios en el coste económico:

Costes Estimación Real Equipo informático 60’9 euros 101’5 euros

Personal 5.970 euros 9.285’76 euros

Gastos indirectos 1.220 euros 1.985 euros Total 7.250 euros 11.371 euros Tabl a 13. Comparativa de costes estimados y rea les

En conclusión, el proyecto ha durado bastante más de lo esperado por distintos motivos y

esto se ha visto reflejado en los costes.

Page 77: GRADO EN INGENIERÍA MULTIMEDIA - UVtapec.uv.es/jboluda/projectes/proyectos_antiguos/JORGE_GARCIA_S… · TRABAJO DE FIN DE GRADO DESARROLLO DE PLUG-IN PARA MODELADOR 3D Y ANÀLISIS

77

7. Conclusiones

En este apartado final se exponen las conclusiones sacadas de la realización del proyecto y se

presentan posibles vías de trabajo futuro.

7.1 Conclusiones

Con la realización de este proyecto una conclusión lógica es la de la importancia de las tareas

de recabar información, una vez finalizadas las tareas de documentación es mucho más fáci l

realizar la implementación ya que se cuentan con distintos ejemplos de antemano y la

mayoría de problemas que podemos encontrar ya se encuentran documentados por otras

personas.

Cabe destacar la importancia de realizar todos los tipos de pruebas que se han realizado, este

proyecto no estaría completo sin ellas, ya que el último algoritmo de generación contenía un

error que solo pudo der detectado gracias a las pruebas de rendimiento.

Las tareas de planificación han ayudado mucho al desarrollo del proyecto ya que ata jaron de

antemano distintos problemas que podrían haber alargado aún más la duración de este

proyecto.

En cuanto los objetivos de este proyecto, considero que, gracias a las pruebas de usabil idad,

la documentación presente y los terrenos generados se puede afirmar que se han conseguido

todos los objetivos descritos en el capítulo 2.

En cuanto a la comparación entre distintos algoritmos, la naturalidad de estos ha resultado

ser particularmente de medir, incluso con distintos usuarios y se ha llegado a la conclusión de

que cada uno de los algoritmos cumple mejor unos objetivos que otros, por ejemplo, el

algoritmo de desplazamiento del punto medio ha tenido una buena acogida por parte de los

usuarios cuando se utiliza para generar terrenos similares a planicies mientras que en otros se

escogía el de filtrado de Fourier, esto se debe a que en ciertos tipos de terreno se espera

homogeneidad, que es una de las limitaciones que presenta el algoritmo de desplazamiento

del punto medio.

Los algoritmos más eficientes han resultado ser los más sencillos de implementar, es decir

los de desplazamiento aleatorio del punto medio y erosión térmica. Sin embargo, cabe

destacar que los resultados más favorecedores se han obtenido al aplicar los 2 algoritmos de

erosión, primero hídrica y después térmica.

Por último, cabe destacar que, aun siendo el algoritmo más costoso, se debería utilizar el

algoritmo basado en alzamiento tectónico y erosión fluvial para conseguir terrenos con

formaciones muy específicas ya que es el único algoritmo que proporciona el control

Page 78: GRADO EN INGENIERÍA MULTIMEDIA - UVtapec.uv.es/jboluda/projectes/proyectos_antiguos/JORGE_GARCIA_S… · TRABAJO DE FIN DE GRADO DESARROLLO DE PLUG-IN PARA MODELADOR 3D Y ANÀLISIS

78

necesario para ello. Por otra parte, el algoritmo de filtrado de Fourier y el de generación

fluvial tienen una limitación muy molesta y es que sus bordes siempre han de estar a altura 0 ,

restándole naturalidad al terreno resultante, aunque esto podría ser muy útil si planeáramos

unir distintos terrenos y después utilizar un algoritmo de erosión sobre el terreno resultante.

Respecto a las limitaciones de los algoritmos de erosión, e algoritmo de erosión té rmica

parece darle siempre al terreno resultante aspecto de dunas y el algoritmo de erosión hídrica

no siempre genera cambios patentes, por esto mismo parece necesario utilizar una

combinación de ambos.

En última instancia cada algoritmo es útil si se tienen en cuenta sus limitaciones, al algoritmo

de desplazamiento del punto medio resulta la mejor elección para generar terrenos en los que

se espera homogeneidad, el algoritmo de generación fluvial es crucial si se pretende realizar

terrenos con formaciones específicas y el algoritmo de filtrado de Fourier sería el mejor para

el resto de casos. Los algoritmos de erosión se complementan muy bien entre ellos y a no ser

que se busque un efecto particular en el que sean útiles sus limitaciones (como por ejemplo

generar un desierto, en ese caso sería útil utilizar solo la erosión térmica) deberían utilizarse

siempre juntos.

En conclusión, el proyecto ha llegado a buen término a pesar de los retrasos ocasionados por

causas ajenas al mismo.

7.2 Trabajo futuro

Una de las posibles vías para trabajo futuro seria adaptar esta herramienta a otros

modeladores, evidentemente, pero la herramienta en si tiene muchas posibles mejoras en las

que trabajar, a continuación, se exponen varias de estas posibles mejoras.

La primera y más necesaria es la implementación de un algoritmo de coloreado más complejo

que tenga en cuenta la forma del terreno a la hora de asignar texturas y que tuviese una

mayor cantidad de texturas a la que recurrir.

En el apartado del estado del arte se puede observar que existen muchas más técnicas de

generación de terreno y de erosión, implementar y estudiar varias de ellas sería interesante.

Por último, se podría intentar reducir el coste de los algoritmos que utilizan vecindarios,

comparando resultados entre distintos vecindarios.

Page 79: GRADO EN INGENIERÍA MULTIMEDIA - UVtapec.uv.es/jboluda/projectes/proyectos_antiguos/JORGE_GARCIA_S… · TRABAJO DE FIN DE GRADO DESARROLLO DE PLUG-IN PARA MODELADOR 3D Y ANÀLISIS

79

Anexo 1: Manual de Usuario

La finalidad de esta herramienta es facilitar el modelado de terrenos con un aspecto natural,

proporcionando terrenos generados proceduralmente que pueden ser utilizados

directamente, o bien presenten una base sólida sobre la que modelar. En este manual se

exponen las diversas funcionalidades de la herramienta y se explica cómo utilizarlas.

1. Métodos de generación

a. Desplazami ento del punto medio (generar terreno 1)

Este método de generación pide que se introduzca un factor de suavizado, el orden de los

lados de vértices, una variable amplitud y que se marque o no una casilla en la que pone

“esquinas”. A continuación, se detallan las posibilidades que estas variables permiten simular.

El factor de suavizado determina cuán escarpado será el terreno generado. Su valor debería

oscilar entre el cero y el dos, y cuanto más cercano sea el factor empleado al dos, más suave

será el terreno generado. Por ejemplo, un valor cercano a cero generará un terreno muy

irregular y escarpado, semejante a un gran conjunto de estalagmitas. En cambio, si el valor se

acerca al dos se obtendrá como resultado una llanura prácticamente lisa.

El orden de los lados es un algoritmo que trabaja con mallas cuadradas, dónde cada lado de

Fi gura 88. Factor de suavizado 0 .1

Fi gura 87. Factor de suavizado 1

Fi gura 90. Orden 2

Fi gura 89. Orden 3

Page 80: GRADO EN INGENIERÍA MULTIMEDIA - UVtapec.uv.es/jboluda/projectes/proyectos_antiguos/JORGE_GARCIA_S… · TRABAJO DE FIN DE GRADO DESARROLLO DE PLUG-IN PARA MODELADOR 3D Y ANÀLISIS

80

la malla tiene ; de modo que si se le da a el valor dos cada lado de la malla tendrá

cinco vértices, y el total de vértices en la malla será de 25; si se introduce un tres cada lado

tendrá nueve vértices dando un total de 81 vértices y así sucesivamente.

La amplitud determina cómo de grande puede ser el desplazamiento de los vértices hacia

arriba o hacia abajo, es decir, cuán altas pueden llegar a ser las montañas que se generen con

el terreno. Es recomendado que este valor sea acorde al tamaño del terreno, ya que unas

montañas muy altas en un terreno pequeño no parecerán naturales.

La casilla de las esquinas permite elegir si se quiere inicializar el valor de las esquinas de la

malla o se prefiere dejar el valor por defecto de cero. Si se marca esta opción, el algoritmo

espera que se le proporcione una malla del tamaño indicado en los valores anteriores cuyas

esquinas estén inicializadas a la altura deseada por el usuario. Por ejemplo, se podría generar

una malla de vértices con dos de sus esquinas a cero y las otras dos a 30, y el terreno

generado estaría pronunciadamente en pendiente, como si se tratase de la ladera de una

montaña.

Fi gura 91. Ampl itud 10 en un t erreno de orden 7 ( 16641 vértices)

Page 81: GRADO EN INGENIERÍA MULTIMEDIA - UVtapec.uv.es/jboluda/projectes/proyectos_antiguos/JORGE_GARCIA_S… · TRABAJO DE FIN DE GRADO DESARROLLO DE PLUG-IN PARA MODELADOR 3D Y ANÀLISIS

81

Fi gura 93. Ampli tud 100 en un t erreno de orden 7 ( 16641 vértices)

Fi gura 92. Malla para inicial izar l as esquinas y su resul tado

Page 82: GRADO EN INGENIERÍA MULTIMEDIA - UVtapec.uv.es/jboluda/projectes/proyectos_antiguos/JORGE_GARCIA_S… · TRABAJO DE FIN DE GRADO DESARROLLO DE PLUG-IN PARA MODELADOR 3D Y ANÀLISIS

82

b. Filtrado de Fourier (generar terreno 2)

Este algoritmo es el más sencillo de utilizar, pero el que menos control ofrece sobre los

resultados obtenidos. El comportamiento es similar al del algoritmo anterior, pide que se

introduzca un dato de amplitud, un factor de suavizado y el orden de vértices por lado.

El factor de amplitud tiene efectos similares al del primer algoritmo, pero se ha

comprobado que normalmente este algoritmo genera terrenos de menor altitud así que el

valor de amplitud introducido debe ser mayor en comparación con el del primer algoritmo

para obtener resultados semejantes.

El factor de suavizado en este algoritmo tiene un rango de valores aceptables más estricto y

solo admite valores entre el cero y el uno ambos incluidos. Cuanto mayor sea el factor de

suavizado elegido más suave será el terreno generado, siendo en uno cuando obtenemos una

malla plana.

Fi gura 96. Factor de suavizado en 0 ,1

Fi gura 95. Ampli tud 20 en un t erreno de orden

7 ( 16384 vértices)

Fi gura 94. Ampli tud 100 en un t erreno de orden

7 ( 16384 vértices)

Page 83: GRADO EN INGENIERÍA MULTIMEDIA - UVtapec.uv.es/jboluda/projectes/proyectos_antiguos/JORGE_GARCIA_S… · TRABAJO DE FIN DE GRADO DESARROLLO DE PLUG-IN PARA MODELADOR 3D Y ANÀLISIS

83

Fi gura 97. Factor de suavizado 0 ,9

El orden de vértices, al igual que en el algoritmo anterior, indica las dimensiones en vértices

de la malla cuadrada sobre la que se generará el terreno; sin embargo, la fórmula para el

filtrado de Fourier será en lugar de que se empleaba en el desplazamiento de

punto medio.

c . Generaci ón fluvial

Este algoritmo, a diferencia de los otros dos, siempre parte de una malla inicial. También

solicita un dato de amplitud, pero su comportamiento es distinto.

El único requisito a cumplir con la malla inicial es que esta sea cuadrada. El algoritmo recoge

las distintas alturas de los vértices de la malla proporcionada y los registra como valores de

crecimiento, los grupos de vértices proporcionados más altos se transformarán en montañas.

Dado que las mallas generadas por los otros dos algoritmos cumplen el requisito necesario,

pueden ser empleadas como base para este algoritmo; sin embargo, la mayor ventaja que nos

ofrece esta implementación es el gran control que permite sobre el resultado final. Se

recomienda emplear el modo de edición de Blender para modificar con facilidad la malla

inicial.

A diferencia de en los algoritmos previos, aquí el valor de amplitud establece la altura

máxima; ningún vértice generado superará la altura introducida como valor de amplitud; y es

fácil asumir que el vértice o grupo de estos cuyo valor de altura sea muy alto llegue a tener la

altura marcada por el valor de la amplitud.

Algunos ejemplos de mallas iniciales y sus resultados con una amplitud de 100.

Fi gura 98. Malla inicia l Fi gura 99. Result ado

Page 84: GRADO EN INGENIERÍA MULTIMEDIA - UVtapec.uv.es/jboluda/projectes/proyectos_antiguos/JORGE_GARCIA_S… · TRABAJO DE FIN DE GRADO DESARROLLO DE PLUG-IN PARA MODELADOR 3D Y ANÀLISIS

84

2. Métodos de erosión

Estos algoritmos siempre se aplican sobre una malla ya existente y modifican sus alturas.

a. Erosión térmica

Este algoritmo simula la erosión causada por la exposición de materiales a altas temperaturas.

Sobre la malla se percibe su efecto en que nivela las alturas de los vértices suavizándolas,

pero conservando la estructura del terreno obtenida al aplicar los métodos de generación de

terreno previos.

El algoritmo de erosión térmica requiere dos datos de entrada; el número de iteraciones y la

pendiente máxima.

El número de iteraciones es el número de veces que se quiere que el algoritmo recorra la

malla evaluando las distancias entre vértices y reduciendo las más grandes. Llegado un punto,

ningún vértice superará la altura máxima con su vecino y se dejarán de producir cambios

sobre la malla, de modo que, aunque falten iteraciones por realizar, estas no provocarán

Fi gura 101 . Mal la inicia l Fi gura 100. Resul tado

Fi gura 102. Terreno Crudo

Page 85: GRADO EN INGENIERÍA MULTIMEDIA - UVtapec.uv.es/jboluda/projectes/proyectos_antiguos/JORGE_GARCIA_S… · TRABAJO DE FIN DE GRADO DESARROLLO DE PLUG-IN PARA MODELADOR 3D Y ANÀLISIS

85

ningún cambio en el resultado final y solo aumentarán el tiempo de ejecución. Por tanto, se

recomienda no introducir valores muy altos ya que simplemente se ralentizará la ejecución de

la herramienta de manera proporcional a las iteraciones innecesarias pedidas.

El otro dato a introducir es la pendiente máxima, que se define como la distancia máxima

admitida entre vértices vecinos. Una vez se marque la pendiente que se desea, se nivelaran

todos los vértices que superen la distancia introducida.

b. Erosión Hídrica

Este algoritmo simula la erosión causada por la lluvia sobre el terreno. Pide que se

introduzcan cinco valores; el número de iteraciones a realizar, el coeficiente de solubilidad, el

coeficiente de evaporación, el coeficiente de capacidad y la lluvia por vértice.

Fi gura 103. Erosión con pendient e máxima 2

Fi gura 104. Erosión con pendente máxima 1

Page 86: GRADO EN INGENIERÍA MULTIMEDIA - UVtapec.uv.es/jboluda/projectes/proyectos_antiguos/JORGE_GARCIA_S… · TRABAJO DE FIN DE GRADO DESARROLLO DE PLUG-IN PARA MODELADOR 3D Y ANÀLISIS

86

El número de iteraciones se define como el número de veces que el algoritmo recorrerá la

malla, añadiendo agua en cada vértice y simulando su movimiento sobre la malla al arrastrar

el sedimento; es decir, modificando las alturas y simulando erosión.

El coeficiente de solubilidad representa cómo de soluble es el material de la malla. Si se

desea que el agua pueda llevarse mucho material cuando se simule la erosión, este coeficiente

debería ser alto. Se recomienda dejar este coeficiente entre 0.01 y 0.10 ya que valores más

altos podrían provocar comportamientos no deseados.

Fi gura 105. Terreno con 100 i teraciones de erosión hídrica

Fi gura 107. 20 i t eraciones de e. hídrica y coef . de solubil idad: 0 .05

Fi gura 106. 20 i t eraciones de e. hídrica con coef . de solubi lidad: 0 .25

Page 87: GRADO EN INGENIERÍA MULTIMEDIA - UVtapec.uv.es/jboluda/projectes/proyectos_antiguos/JORGE_GARCIA_S… · TRABAJO DE FIN DE GRADO DESARROLLO DE PLUG-IN PARA MODELADOR 3D Y ANÀLISIS

87

El coeficiente de evaporación es el porcentaje, en tanto por uno, de agua que se evapora a l

final de cada iteración. Sus valores deberán estar entre cero y uno, aunque se recomienda no

superar el 0.75 para evitar picos en los vértices, aunque este efecto se puede corregir

aplicando el algoritmo de erosión térmica.

El coeficiente de capacidad es la cantidad de material que puede retener el agua, cuanto

menor sea este valor más material será depositado en los vértices inferiores después del paso

de evaporación. Si se pretende trasladar el material de vértices superiores a inferiores el va lor

debería ser bajo, mientras que si se pretende reducir la altura de los vértices altos sin

aumentar las de otros este valor debería ser alto. Se recomienda dejar este coeficiente entre

los valores 0.01 y 0.10.

Fi gura 109. Terreno con 20 i t eraciones de eros ión hídrica con coef iciente de evaporación 0

Fi gura 108. Terreno con 20 i t eraciones de erosión hídrica con coef iciente de evaporación 1

Page 88: GRADO EN INGENIERÍA MULTIMEDIA - UVtapec.uv.es/jboluda/projectes/proyectos_antiguos/JORGE_GARCIA_S… · TRABAJO DE FIN DE GRADO DESARROLLO DE PLUG-IN PARA MODELADOR 3D Y ANÀLISIS

88

Fi gura 111 . Terreno con 20 i teraciones de erosión hídrica con coeficient e de capacidad 0

Fi gura 112 . Terreno con 20 i teraciones de erosión hídrica con coef iciente de capacidad 0 .5

Fi gura 110 .Terreno con 20 i teraciones de erosión hídrica con coeficiente de l luvia 0 .1

Page 89: GRADO EN INGENIERÍA MULTIMEDIA - UVtapec.uv.es/jboluda/projectes/proyectos_antiguos/JORGE_GARCIA_S… · TRABAJO DE FIN DE GRADO DESARROLLO DE PLUG-IN PARA MODELADOR 3D Y ANÀLISIS

89

La lluvia por vértice, figura 109, es la cantidad de agua que se le añade a cada vértice en

cada iteración, a mayor cantidad, más visible serán los efectos del algoritmo en menos

iteraciones. No se recomienda superar el valor 0.1 ya que añadiendo cantidades excesivas de

lluvia por vértice se pueden producir comportamientos extraños en la malla.

c . Algoritmo de Coloración

Este algoritmo se encarga de asignar materiales a la malla. Se han creado cuatro materiales

básicos, que serán asignados a cada una de las caras de malla según los parámetros

introducidos como delimitadores. Dichos parámetros serán pendiente de la roca, nivel del

mar y altura de la nieve.

El nivel del mar indica a qué altura está el agua en nuestro terreno; todas las caras cuyo

centro quede por debajo de la altura elegida tendrán asignado el material de agua y sus

vértices serán elevados hasta alcanzar la altura del nivel del mar.

La pendiente roca analiza la inclinación de las caras; si la inclinación de la cara supera el

umbral definido por la pendiente introducida, se le asigna el material de roca. La pendiente se

introduce en forma de tanto por 1, de forma que si se introduce una pendiente con valor 0

todas las caras que no sean totalmente horizontales tendrán asignadas la textura de roca y si

se introduce una pendiente con valor 1 solo las caras que estén completamente verticales

tendrán asignada la textura de roca.

La altura de nieve indica a partir de que altura se coloca nieve en vez de hierba (cumbres

nevadas).

Fi gura 113 . Terreno con 20 i teraciones de erosión hídrica con coef iciente de l luvia 0 .5

Page 90: GRADO EN INGENIERÍA MULTIMEDIA - UVtapec.uv.es/jboluda/projectes/proyectos_antiguos/JORGE_GARCIA_S… · TRABAJO DE FIN DE GRADO DESARROLLO DE PLUG-IN PARA MODELADOR 3D Y ANÀLISIS

90

Fi gura 117 . Terreno a colorear

Fi gura 116 . Terreno con pendiente roca 0 .5, a lt ura de mar 0 y a l tura de nieve 50

Fi gura 115 . Terreno con pendiente roca 0 a l tura de mar -15 y a l tura de nieve 50

Fi gura 114 . Terreno con pendiente de roca 1 a l tura de nieve 0 y a l tura de mar -50

Page 91: GRADO EN INGENIERÍA MULTIMEDIA - UVtapec.uv.es/jboluda/projectes/proyectos_antiguos/JORGE_GARCIA_S… · TRABAJO DE FIN DE GRADO DESARROLLO DE PLUG-IN PARA MODELADOR 3D Y ANÀLISIS

91

Anexo 2: Encuesta naturalidad

Este documento presenta una serie de imágenes que representan terrenos o landscapes. Por

favor, selecciona aquellos que te resulten más naturales o, sencillamente los que te gusten

más. El documento está dividido en tres partes. La primera parte presenta conjuntos de tres

imágenes y debes elegir solo una, estas imágenes son terrenos con pocos vértices, por lo que

se puede apreciar que son constructos geométricos. La segunda parte tiene 10 imágenes de

entre las que quiero que elijas 5. La última parte es idéntica a la primera, pero con terrenos

con un mayor número de puntos.

Parte 1

Colinas

Fi gura 118 . Col inas 2

Fi gura 119 . Col inas 1

Page 92: GRADO EN INGENIERÍA MULTIMEDIA - UVtapec.uv.es/jboluda/projectes/proyectos_antiguos/JORGE_GARCIA_S… · TRABAJO DE FIN DE GRADO DESARROLLO DE PLUG-IN PARA MODELADOR 3D Y ANÀLISIS

92

Delta

Fi gura 121 . Col inas 3

Fi gura 122. Delta 1

Fi gura 120. Delta 2

Page 93: GRADO EN INGENIERÍA MULTIMEDIA - UVtapec.uv.es/jboluda/projectes/proyectos_antiguos/JORGE_GARCIA_S… · TRABAJO DE FIN DE GRADO DESARROLLO DE PLUG-IN PARA MODELADOR 3D Y ANÀLISIS

93

Ladera

Fi gura 123. Delta 3

Fi gura 124. Ladera 2

Page 94: GRADO EN INGENIERÍA MULTIMEDIA - UVtapec.uv.es/jboluda/projectes/proyectos_antiguos/JORGE_GARCIA_S… · TRABAJO DE FIN DE GRADO DESARROLLO DE PLUG-IN PARA MODELADOR 3D Y ANÀLISIS

94

Montañas

Fi gura 128. Ladera 1

Fi gura 125.Ladera 3

Fi gura 126. Montañas 1

Fi gura 127. Montañas 2

Page 95: GRADO EN INGENIERÍA MULTIMEDIA - UVtapec.uv.es/jboluda/projectes/proyectos_antiguos/JORGE_GARCIA_S… · TRABAJO DE FIN DE GRADO DESARROLLO DE PLUG-IN PARA MODELADOR 3D Y ANÀLISIS

95

Planici e

Fi gura 129. Montañas 3

Fi gura 131 . Planicie 1

Fi gura 130. Planicie 2

Page 96: GRADO EN INGENIERÍA MULTIMEDIA - UVtapec.uv.es/jboluda/projectes/proyectos_antiguos/JORGE_GARCIA_S… · TRABAJO DE FIN DE GRADO DESARROLLO DE PLUG-IN PARA MODELADOR 3D Y ANÀLISIS

96

Parte 2

Fi gura 132. Planicie 3

Fi gura 133. Escena 1

Page 97: GRADO EN INGENIERÍA MULTIMEDIA - UVtapec.uv.es/jboluda/projectes/proyectos_antiguos/JORGE_GARCIA_S… · TRABAJO DE FIN DE GRADO DESARROLLO DE PLUG-IN PARA MODELADOR 3D Y ANÀLISIS

97

Fi gura 136. Escena 2

Fi gura 135. Escena 3

Fi gura 134. Escena 4

Page 98: GRADO EN INGENIERÍA MULTIMEDIA - UVtapec.uv.es/jboluda/projectes/proyectos_antiguos/JORGE_GARCIA_S… · TRABAJO DE FIN DE GRADO DESARROLLO DE PLUG-IN PARA MODELADOR 3D Y ANÀLISIS

98

Fi gura 139. Escena 5

Fi gura 138. Escena 6

Fi gura 137. Escena 7

Page 99: GRADO EN INGENIERÍA MULTIMEDIA - UVtapec.uv.es/jboluda/projectes/proyectos_antiguos/JORGE_GARCIA_S… · TRABAJO DE FIN DE GRADO DESARROLLO DE PLUG-IN PARA MODELADOR 3D Y ANÀLISIS

99

Fi gura 142. Escena 8

Fi gura 141 . Escena 9

Fi gura 140. Escena 10

Page 100: GRADO EN INGENIERÍA MULTIMEDIA - UVtapec.uv.es/jboluda/projectes/proyectos_antiguos/JORGE_GARCIA_S… · TRABAJO DE FIN DE GRADO DESARROLLO DE PLUG-IN PARA MODELADOR 3D Y ANÀLISIS

100

Parte 3

Colinas

Fi gura 145. Col inas 1

Fi gura 144. Col inas 2

Fi gura 143. Col inas 3

Page 101: GRADO EN INGENIERÍA MULTIMEDIA - UVtapec.uv.es/jboluda/projectes/proyectos_antiguos/JORGE_GARCIA_S… · TRABAJO DE FIN DE GRADO DESARROLLO DE PLUG-IN PARA MODELADOR 3D Y ANÀLISIS

101

Delta

Fi gura 148. Delta 1

Fi gura 147. Delta 2

Fi gura 146. Delta 3

Page 102: GRADO EN INGENIERÍA MULTIMEDIA - UVtapec.uv.es/jboluda/projectes/proyectos_antiguos/JORGE_GARCIA_S… · TRABAJO DE FIN DE GRADO DESARROLLO DE PLUG-IN PARA MODELADOR 3D Y ANÀLISIS

102

Ladera

Fi gura 151 . Ladera 1

Fi gura 149. Ladera 2

Fi gura 150. Ladera 3

Page 103: GRADO EN INGENIERÍA MULTIMEDIA - UVtapec.uv.es/jboluda/projectes/proyectos_antiguos/JORGE_GARCIA_S… · TRABAJO DE FIN DE GRADO DESARROLLO DE PLUG-IN PARA MODELADOR 3D Y ANÀLISIS

103

Montañas

Fi gura 154. Montañas 1

Fi gura 153. Montañas 2

Fi gura 152. Montañas 3

Page 104: GRADO EN INGENIERÍA MULTIMEDIA - UVtapec.uv.es/jboluda/projectes/proyectos_antiguos/JORGE_GARCIA_S… · TRABAJO DE FIN DE GRADO DESARROLLO DE PLUG-IN PARA MODELADOR 3D Y ANÀLISIS

104

Planici e

Fi gura 157. Planicie 1

Fi gura 156. Planicie 2

Fi gura 155. Planicie 3

Page 105: GRADO EN INGENIERÍA MULTIMEDIA - UVtapec.uv.es/jboluda/projectes/proyectos_antiguos/JORGE_GARCIA_S… · TRABAJO DE FIN DE GRADO DESARROLLO DE PLUG-IN PARA MODELADOR 3D Y ANÀLISIS

105

Anexo 3: Encuestas usabilidad

En este anexo se listan las encuestas de usabilidad rellenadas por cada uno de los usuarios del

grupo seleccionado. La prueba realizada consistía en crear un terreno de cada tipo, como los

vistos en el anexo 2.

Pr imer u su ario

Varón, 58 años, nivel de usuario: básico.

Distintos tipos de terreno que consiguió generar: 1

Comentario sobre la dificultad de uso: No parece demasiado difícil, pero sería necesario

adquirir práctica para utilizar de manera fluida la herramienta.

Comentario sobre la satisfacción con los resultados: Los resultados que he conseguido

me han parecido satisfactorios, es lo que esperaba.

Comentario sobre errores encontrados o mejoras sugeridas: Todo parece funcionar

bien, pero, cuando se están generando los terrenos, el programa no muestra ninguna reacción

y da la sensación de que se ha quedado congelado cuando generas terrenos grandes

Segu n do u su ario

Varón, 23 años, nivel de usuario: intermedio.

Distintos tipos de terreno que consiguió generar: 4

Comentario sobre la dificultad de uso: Al principio no tenía mucha idea de cómo

utilizarlo, pero enseguida se aprende a usarlo, aunque el algoritmo de generación fluvial no es

muy intuitivo.

Comentario sobre la satisfacción con los resultados: No lo sé, me parece que la mejor

manera de conseguir un terreno guay es usar el algoritmo de generación fluvial y practicarle

erosiones y los algoritmos que más he sabido usar son los otros.

Comentario sobre errores encontrados o mejoras sugeridas: No he encontrado

problemas ni se me ocurren mejoras, los problemas que he tenido han ocurrido porque no

estoy familiarizado con Blender.

Ter cer u su ario

Mujer, 23 años, nivel de usuario: experto.

Distintos tipos de terreno que consiguió generar: 5

Page 106: GRADO EN INGENIERÍA MULTIMEDIA - UVtapec.uv.es/jboluda/projectes/proyectos_antiguos/JORGE_GARCIA_S… · TRABAJO DE FIN DE GRADO DESARROLLO DE PLUG-IN PARA MODELADOR 3D Y ANÀLISIS

106

Comentario sobre la dificultad de uso: Muy fácil, menos la parte del editor (que ha sido lo

más divertido) pero que no recordaba cómo utilizar.

Comentario sobre la satisfacción con los resultados: Particularmente con erosión fluvia l

y jugar con el editor; pero poner valores inverosímiles en las erosiones genera terrenos muy

de ensueño así que felicidades.

Comentario sobre errores encontrados o mejoras sugeridas: La cámara de Blender

siempre me ha dado muchos problemas, pero no veo nada mejorable en el plug-in.

Cu ar to u su ario :

Mujer, 28 años, nivel de usuario: intermedio.

Distintos tipos de terreno que consiguió generar: 5

Comentario sobre la dificultad de uso: El manual es muy denso, debería haber imágenes

para que fuese más atractivo. El plug-in tiene muchas limitaciones de diseño y la gente que no

esté acostumbrada a usar programas no le será sencillo usarlo, pero las limitaciones más que

por el plug-in diría que vienen de la interfaz de Blender.

Comentario sobre la satisfacción con los resultados: En general los resultados están

bien, pero si intentas hacer algo tipo volcán el algoritmo de coloración resulta muy limitado.

Comentario sobre errores encontrados o mejoras sugeridas: El coloreado está muy

limitado, trabajar solo con pendientes para ver dónde queda acumulada la nieve no está bien.

Qu in to u su ario :

Mujer, 53 años, nivel de usuario: básico.

Distintos tipos de terreno que consiguió generar: 5

Comentario sobre la dificultad de uso: Tardas algo en acostumbrarte, pero en seguida se

intuye que valores necesitas para hacer distintos tipos de terreno.

Comentario sobre la satisfacción con los resultados: no sé, si, en general si, mejoraría el

algoritmo de coloreado, es muy simple.

Comentario sobre errores encontrados o mejoras sugeridas: realmente los problemas

que he visto está relacionado con blender, la cámara es muy rara.

Sex to u su ario:

Mujer, 22 años, nivel de usuario: básico.

Distintos tipos de terreno que consiguió generar: 5

Comentario sobre la dificultad de uso: Ha resultado difícil, porque desconozco la interfaz

de Blender, las variables eran intuitivas, con prueba y error consigues las cosas.

Page 107: GRADO EN INGENIERÍA MULTIMEDIA - UVtapec.uv.es/jboluda/projectes/proyectos_antiguos/JORGE_GARCIA_S… · TRABAJO DE FIN DE GRADO DESARROLLO DE PLUG-IN PARA MODELADOR 3D Y ANÀLISIS

107

Comentario sobre la satisfacción con los resultados: si, y ha sido divertido generarlos.

Comentario sobre errores encontrados o mejoras sugeridas: Haría mas visual la interfaz,

poner una imagen representativa del efecto que causa la variable sería buena idea.

Page 108: GRADO EN INGENIERÍA MULTIMEDIA - UVtapec.uv.es/jboluda/projectes/proyectos_antiguos/JORGE_GARCIA_S… · TRABAJO DE FIN DE GRADO DESARROLLO DE PLUG-IN PARA MODELADOR 3D Y ANÀLISIS

108

8. Bibliografía

[1] A. V. Astin, «Computer Development (SEAC and DYSEAC) at the National Bureau of

Standads, Washington D.C.,» National Bureau of Standards Circular, vol. 551, 25 January

1955.

[2] A. M. Noll, «Computer-Generated Three-Dimensional Movies,» Computers and

Automation, vol. 14, nº 11, pp. 20-23, November 1965.

[3] A. M. Noll, «A Computer Technique for Displaying Dimensional Hyperobjects,»

Communications of the ACM, vol. 10, nº 8, pp. 469-473, 1967.

[4] A. M. Noll, «Computer Animation and the Fourth Dimension,» AFIPS Conferencie

Proceedings, vol. 33, pp. 1279-1283, 1968.

[5] A. SIGGRAPH, «ACM SIGGRAPH Home,» SIGGRAPH, [En línea]. Available:

http://www.siggraph.org/. [Último acceso: Agosto 2016].

[6] A. R. Smith, «Tint Fill,» de SIGGRAPH 79 Conference Proceedings, Chicago, Illinois , 1979.

[7] B. Mandelbrot, The Fractal Geometry of Nature, San Francisco: W.H. Freeman, 1982.

[8] A. Inc, «About AutoDesk,» 2016. [En línea]. Available:

http://www.autodesk.com/company. [Último acceso: Agosto 2016].

[9] B. Foundation, «Blender,» 2016. [En línea]. Available: https://www.blender.org. [Último

acceso: Julio 2016].

[10] Matsumoto, Yukihiro “Matz”; Ruby-Talk; Ruby Community, «Ruby,» 2016. [En línea].

Available: https://www.ruby-lang.org/es/. [Último acceso: Julio 2016].

[11] T. N. Limited, «Sketch Up,» 2016. [En línea]. Available: https://www.sketchup.com/.

[Último acceso: Julio 2016].

[12] D. S. S. Corporation, «SolidWorks,» Dassault Systemes, 2016. [En línea]. Available:

http://www.solidworks.es/. [Último acceso: Julio 2016].

[13] AutoDesk, «Funciones de AutoCAD para diseño y documentación,» AutoDesk, Inc.,

2016. [En línea]. Available: http://www.autodesk.es/products/autocad/features/all.

[Último acceso: Julio 2016].

[14] I. Autodesk, «MAYA Herramientas para la animación y la creación de personajes,»

Autodesk, Inc., 2016. [En línea]. Available:

Page 109: GRADO EN INGENIERÍA MULTIMEDIA - UVtapec.uv.es/jboluda/projectes/proyectos_antiguos/JORGE_GARCIA_S… · TRABAJO DE FIN DE GRADO DESARROLLO DE PLUG-IN PARA MODELADOR 3D Y ANÀLISIS

109

http://www.autodesk.es/products/maya/features/all. [Último acceso: Julio 2016].

[15] I. Autodesk, «3DS MAX Herramientas de modelado y renderización 3D,» Autodesk,

Inc., 2016. [En línea]. Available: http://www.autodesk.es/products/3ds-

max/features/all. [Último acceso: Julio 2016].

[16] I. Autodesk, «INVENTOR Software de CAD 3D para modelado y simulación,»

Autodesk, Inc., 2016. [En línea]. Available:

http://www.autodesk.es/products/inventor/features/all. [Último acceso: Julio 2016].

[17] I. Autodesk, «INVENTOR Software de CAD 3D para modelado y simulación,»

Autodesk, Inc., 2016. [En línea]. Available:

http://www.autodesk.es/products/inventor/features/all. [Último acceso: 2016].

[18] I. Pixologic, «Pixologic,» Pixologic, Inc., 2016. [En línea]. Available:

http://pixologic.com/zbrush/features/overview/. [Último acceso: Julio 2016].

[19] M. Computer, «MAXON 3D for the real world,» MAXON Computer, 2016. [En línea].

Available: http://www.maxon.net/en/products/cinema-

4d/features/modeling/polygon-modeling/. [Último acceso: Julio 2016].

[20] R. F. Voss, Random Fractal Forgeries in Fundamental Algorithms for Computer

Graphics, R. Earnshaw, Ed., Berlin: Springer-Verlag, 1985.

[21] G. Mastin, P. Watterberg y J. Mareda, «Fourier Synthesis of Ocean Waves,» IEEE

Computer Graphics and Applications, vol. 7, nº 3, pp. 16-23, Marzo 1987.

[22] M. Stein, «Fast and exact simulation of fractional Brownian motion,» Jourlan of

Computational and Graphical Statics, vol. 11, nº 3, pp. 587-599, 2002.

[23] D. Kroese y Z. Botey, «Spatial Process Generation,» de ectures on Stochastic Geometry,

Spatial Statistics and Random Fields, Volume II: Analysis, Modeling and Simulation of Complex

Structures, Berlin, 2015.

[24] F. K. Musgrave, C. E. Kolb y R. S. Mace, «The Synthesis and Rendering of Eroded

Fractal Terrains,» de SIGGRAPH '89 Proceedings of the 16th annual conference on Computer

graphics and interactive techniques, New York, 1989.

[25] K. F. Mustgrave, Methods for Realistic Landscape Imaging, New Haven, Connecticut:

Yale University, 1993.

[26] G. S. P. Miller, «The Definition and Rendering of Terrain Maps,» Computer Graphics, vol.

20, nº 4, pp. 39-48, 1986.

[27] G. Y. Gardner, «SIGGRAPH course notes: Functional Modelling,» de SIGGRAPH '88,

Atlanta, 1988.

Page 110: GRADO EN INGENIERÍA MULTIMEDIA - UVtapec.uv.es/jboluda/projectes/proyectos_antiguos/JORGE_GARCIA_S… · TRABAJO DE FIN DE GRADO DESARROLLO DE PLUG-IN PARA MODELADOR 3D Y ANÀLISIS

110

[28] J. Olsen, Realtime Procedural Terrain Generation. Realtime Synthesis of Eroded Fractal Terrain f or

Use in Computer Games, University of Southern Denmark: Department of Mathematics

And Computer Science (IMADA), 2004.

[29] M. De Guzmán, M. Ángle Martín, M. Morán y M. Reyes, Estructuras fractales y sus

aplicaciones, Barcelona: Labor, 1993.

[30] A. Fournier, D. Fussell y L. Carpenter, «Computer Rendering of Stochastic Models,»

Communications of the ACM, vol. 25, nº 6, pp. 371-384, 1982.

[31] D. S. Ebert, K. Musgrave, D. Peachey, K. Perlin y S. Worley, Texturing and Modeling: A

Procedural Approach (Third Edition), San Francisco, CA: Morgan Kaufmann Publishers

Inc., 2002 (1994).

[32] W. L. Raffe, F. Zambetta y L. Xiaodong, «A Survey of Procedural Terrain Generation.

Techniques using Evolutionary Algorithms,» de WCCI 2012 IEEE World Congress on

Computational Intelligence, Melbourne, Australia, 2012.

[33] J.-D. Génevaux, E. Galin, E. Guérin, A. Peytavie y B. Benes, «Terrain Generation Using

Procedural Models Based on Hydrology,» de SIGGRAPH 2013, Anaheim, California,

2013.

[34] R. Forsbach y B. Benes, «Visual Simulation of Hydraulic Erosion,» Journal of WSCG, vol.

10, nº 1, pp. 79-94, 2002.

[35] K. Nicholson, GPU Based Algorithms for Terrain Texturing, D. R. Mukundan, Ed.,

Christchurch, New Zealand: Department of Computer Science & Software Engineering,

University of Canterbury, 2008.

[36] F. Loasso y H. Hoppe, «Geometry clipmaps: terrain rendering using nested regular

grids,» de SIGGRAPH 2004, New York, USA, 2004.

[37] C. Bloom, «Terrain Texture Compositing by Blending in the Frame-Buffer (aka

"Splatting" Textures),» 2 Novimebre 2000. [En línea]. Available:

http://www.cbloom.com/3d/techdocs/splatting.txt. [Último acceso: Agosto 2016].

[38] G. Cordonnier, J. Braun, M.-P. Cani, B. Benes y E. Galin, «Large Scale Terrain

Generation from Tectonic Uplift and Fluvial Erosion,» de EUROGRAPHICS 2016,

2016.