En estos días me he detenido para pensar en el diseño del formato de los mapas. Necesito (por ahora) un formato que permita especificar alturas como un heightmap, pero al mismo tiempo seguir siendo orientado a tiles. Como usaré XML debía optimizar dentro de lo posible evitar incluir la definición de tiles o ubicaciones vacíos, por lo que opté por una representación sparse (dispersa). O sea, el mapa incluye sólo las definiciones de los puntos que difieren del layout base.
El mapa xml sería más o menos así:
< x="100" y="110">Testing map< /map>
< -- Base texture -->
< id="1">marsh.jpg< /baset>
< id="2">rocky.jpg
<>
< x="10" y="12" h="4">
< x="10" y="12" texture="2">
< /tiles>
Y generaría una matriz final, que no sería sparse, así:
(1,0),(1,0),(1,0),(1,0),(1,0),(1,0),(1,0),(1,0),(1,0),(1,0)
(1,0),(1,0),(1,0),(2,4),(1,0),(1,0),(1,0),(1,0),(1,0),(1,0)
(1,0),(1,0),(1,0),(2,0),(1,0),(1,0),(1,0),(1,0),(1,0),(1,0)
(1,0),(1,0),(1,0),(1,0),(1,0),(1,0),(1,0),(1,0),(1,0),(1,0)
****
En el momento de la carga se precalcularía la geometría real del mapa. Lo que intento averiguar ahora es si puedo dibujar todo el mapa con un solo QUAD_STRIP. De no ser así tendría que renderizar cada fila como un QUAD_STRIP con el consiguiente desperdicio de vértices vecinos redibujados, o cambiar la geometría para utilizar un TRIANGLE_STRIP.
Tags: programacion, juegos
El mapa xml sería más o menos así:
< x="100" y="110">Testing map< /map>
< -- Base texture -->
< id="1">marsh.jpg< /baset>
< id="2">rocky.jpg
<>
< x="10" y="12" h="4">
< x="10" y="12" texture="2">
< /tiles>
Y generaría una matriz final, que no sería sparse, así:
(1,0),(1,0),(1,0),(1,0),(1,0),(1,0),(1,0),(1,0),(1,0),(1,0)
(1,0),(1,0),(1,0),(2,4),(1,0),(1,0),(1,0),(1,0),(1,0),(1,0)
(1,0),(1,0),(1,0),(2,0),(1,0),(1,0),(1,0),(1,0),(1,0),(1,0)
(1,0),(1,0),(1,0),(1,0),(1,0),(1,0),(1,0),(1,0),(1,0),(1,0)
****
En el momento de la carga se precalcularía la geometría real del mapa. Lo que intento averiguar ahora es si puedo dibujar todo el mapa con un solo QUAD_STRIP. De no ser así tendría que renderizar cada fila como un QUAD_STRIP con el consiguiente desperdicio de vértices vecinos redibujados, o cambiar la geometría para utilizar un TRIANGLE_STRIP.
Tags: programacion, juegos
Comentarios
Publicar un comentario