Generación procedural de ciudades

Duarte, Andrés

Supervisor(es): Fernández, Eduardo - Aguerre, José Pedro

Resumen:

La generación procedural es una herramienta para generar contenido de forma algorítmica. Partiendo de axiomas iniciales y mediante la aplicación de reglas de producción se generan grandes cantidades de datos automáticamente. Abarca un amplio espectro de aplicaciones, como son los sistemas L, funciones de ruido, funciones fractales o cadenas de Markov. Cada aplicación es diseñada para resolver problemas concretos. La generación procedural se utiliza para generar una variedad de contenido, como modelos tridimensionales, texturas, terrenos, sonido o nombres. En este proyecto se busca generar el modelo tridimensional de una ciudad aplicando una implementación de “CGA Shape Grammar”, una gramática de formas diseñada para generar edificios. La gramática tiene como alfabeto prismas de base rectangular con nombre, que describen el volumen que ocupa una forma. Los volúmenes iniciales de cada edificio forman el axioma y las reglas de producción describen cómo se subdivide el volumen de cada forma en formas más pequeñas. Se implementa un motor de reglas que interpreta y ejecuta reglas de producción en C++. Estas reglas pueden contener elementos aleatorios, por lo que el resultado puede variar de ejecución en ejecución. Tiene como parámetros el conjunto de reglas, los volúmenes iniciales y cómo se dibujarán las formas, todos definidos en archivos XML. Produce como resultado el modelo de una ciudad que puede explorarse interactivamente en OpenGL o visualizarse con otras herramientas mediante un archivo OBJ. Se explora también una extensión de la gramática para incluir una implementación de niveles de detalle, de manera de poder aplicar diferentes reglas según el nivel de detalle deseado.


Detalles Bibliográficos
2018
Generación procedural
Modelado procedural
Gramática de formas
Generación de edificios
Español
Universidad de la República
COLIBRI
http://hdl.handle.net/20.500.12008/20042
Acceso abierto
Licencia Creative Commons Atribución – No Comercial – Sin Derivadas (CC - By-NC-ND)