Geo typical texture
Hace un tiempo, en una entrevista me preguntarón por si conocía lo que era el geo type texturing. Basicamente es realizar la textura dependiendo del tipo de objeto que se encuentre en el terreno. Por ejemplo, si queremos realizar la textura de una ciudad, tendremos que saber que tipo de objetos hay en el terreno para aplicar la textura (edificios, parques,..)
Pues bien, al igual que me ocurrio con el simulador de tráfico que en su día me comento mi profesor de programación en cuando hice Equipos Informáticos, y desarrolle uno usando lógica difusa, he creado un pequeño proyecto, citytex, donde el algoritmo realiza lo siguiente:
- Genera un esqueleto de una ciudad en función del número de calles horizontales y verticales.
Aleatoriamente, las calles se inclinan en un sentido o en otro para darle un poco de realismo y no sea una cuadricula perfecta.
Y finalmente se insertan un número de edificios.
- Genera un bitmap con con la información de los objetos que se encuentran. En este paso, solo sabemos las carreteras (en azul) y los edificios(en amarillo).
- Despues, se pinta con el raton las zonas donde queremos que exista una acera, o un parque. Esto se podría sustituir con un algoritmo de rellenado de zonas, pero eso sería otro proyecto.
En el transcurso de su implementación, me he dado cuenta de algunas cosas que ya desarrollare en siguientes post, pero como adelanto, se refiere a la liberación de memoria y al pseudo-código.
La dificultad de este proyecto a radicado a la hora de texturizar las carreteras y generar el grafo interno. Se ha pensado de esta forma, ya que así, representándolo con un grafo, se podría con algoritmos de grafos, determinar que zonas podrían ser rellenadas con unos rascacielos y otras con casas más bajas. Los nodos mejor comunicados estarían rodeados de rascacielos y los de a las afueras, con texturas de viviendas.
Aunque mirando la textura que genera, posiblemente no sea muy realista, pero podría servir de base para futuras versiones. Por ejemplo, que el algoritmo tomase la altura de cada punto y la tomase encuenta para crear la textura.
Uno de los problemas de usar fotos aereas como texturas es su resolución, que debe ser muy alta. Cuando en un simulador de vuelo se está cerca del terreno, la textura, si tiene poca resolución se empieza a pixelar y aparece como no real, quejándose así los pilotos. Una solución para esto, es la creación de texturas proceduralmente, como en este ejemplo, aunque claro, queda mucho, mucho por mejorar, pero ha estado bien e interesante aproximarse un poco a la creación de este tipo de texturas.
Para bajar el programa aquí.
algunos links sobre este tema.
http://www.helistart.com/addons.aspx
http://ict.usc.edu/projects/military_terrain_for_games_pipeline/
PROCEDURAL TEXTURING
Most input datasets generally contain only geometry information, while some may contain rudimentary textures. The MTGP pipeline improves upon the dataset, procedurally applying geo-typical textures (dirt or asphalt, brick or stone sand, grass or concrete) to incoming geometry (roads, buildings and terrain).
No hay comentarios:
Publicar un comentario