Ir al contenido

publicidad

Foto

Duda resolución de pantalla [XNA y posiblemente cualquier otro engine]


Este tema ha sido archivado. Esto significa que no puedes responder en este tema.
4 respuestas en este tema

  • Ollydbg

  • Bahamut

  • vida restante: 100%
  • Registrado: 05 sep 2008
  • Mensajes: 6.259
#1

Escrito 13 noviembre 2010 - 13:06

Buenas foro.

Estoy buscando información sobre un tema que quiero implementar y no lo tengo del todo claro.
El tema es que quiero que mi "juego" tenga la opción de poder utilizar diversas resoluciones de pantalla seleccionables desde un menú de opciones.

Supongamos que utilizo un sistema de "tiles" para dibujar el background del juego.

Supongamos que esos "tiles" son de 64 x 64 pixels.

Supongamos que "nativamente" los mapeados se diseñaron para una una resolución de 640 x 480 pixels

Si escogemos una resolución precisamente de 640 x 480 pixels, utilizando unas matemáticas tremendamente complejas y unos algoritmos que flipas ( risas ) tenemos que se han de dibujar 10 tiles "a lo ancho" y 7,5 tiles "a lo largo".


Una imagen vale más que mil palabras:

Imagen Enviada

Bien, ¿Dónde está el "problema"?

Si ahora elegimos una resolución de por ejemplo 1680 x 1050 se deberían dibujar:

1680 / 64 = 26,25 tiles de ancho
1050 / 64 = 16,40 tiles de alto

¿Correcto?

Pues no. :-(

Yo no quiero que un jugador que selecciona una resolución de 640 x 480 vea un "area de juego" de 10 x 7,5 mientras que otro jugador que selecciona una resolucion de 1680 x 1050 vea un "area de juego" de 26,25 x 16,40 (casi el doble).

Lo que quiero es que independientemente de la resolución escogida, ambos jugadores vean la misma "area de juego".

Si por ejemplo, el mapeado fue diseñado para una "resolución" de 640 x 480, que tanto en 640 x 480, 800 x 600, 1024 x 768, 1200 x 800, 1280 x 1024, 1440 x 900, 1600 x 1200, 1650 x 1080, 1680 x 1050, 19200 x 1200, ... se muestre en pantalla la misma catidad de "mapeado". (Si lo sé a veces me explico como el culo)

Lo primero que he pensado ha sido en "escalar" los gráficos. Pero me encuentro con el siguiente problema:

Si los gráficos se diseñan para la resolución nativa (640 x 480 por ejemplo):

Imagen Enviada

Al "escalarlos" para adecuarlos a una resolución mayor, el resultado queda fatal:

Imagen Enviada

Cuanto más se "escale" el gráfico, más se ven los "pixels", y si ponemos el juego en "full screen" ya ni te cuento, aquello más que pixels parecen plazas de toros, de lo grandes que son.

¿Algún consejo, ayuda, pista, lo que sea?

Saludos.

  • Ellolo17

  • Zodiark

  • vida restante: 100%
  • Registrado: 16 nov 2006
  • Mensajes: 6.208
#2

Escrito 13 noviembre 2010 - 16:58

Detectar el ancho y el alto de la ventana y comparar con las del que quieres tener para hallar el porcentaje de "re-escalado" del sprite.

Es decir. Si tu lo programas en una ventana a 800x600 tu sprite tiene un tamaño x, y. Pues al ejecutarse en una nueva ventana o en pantalla completa a otra resolucion por regla de 3 puedes ver que porcentaje tienes que reajustar el tamaño del sprite (x = ancho pantalla * 100 / 800, y = alto pantalla*100/600)

espero que te sirva.

Un saludo.

  • Ollydbg

  • Bahamut

  • vida restante: 100%
  • Registrado: 05 sep 2008
  • Mensajes: 6.259
#3

Escrito 13 noviembre 2010 - 17:55

Ante todo gracias por contestar.

Tal y como he comentado, si realizo un "re-escalado" los gráficos se ven fatal.

¿Y si se hace al reves? Diseñar los mapeados para la máxima resolución posible por ejemplo 1920 x 1200 y re-escalar "hacia abajo". ¿Qué opinais?

Saludos.

  • deviax

  • Methuselah

  • vida restante: 100%
  • Registrado: 23 mar 2005
  • Mensajes: 182
#4

Escrito 14 noviembre 2010 - 09:50

Hola Ollydbg,

Siempre que escales una imagen para hacerla de mayor tamaño se va a pixelar, cuando tú escalas una imagen lo que se hace es escalar su contenido (pixels).

Lo ideal sería que para todas las resoluciones que propongas generes sus gráficos correspondientes, si piensas en juegos profesionales que te ofrecen múltiples resoluciones, cuando bajas o subes la resolución podrás ver que no es el mismo gráfico escalado y esto es por dos motivos: se suele ajustar la resolución por optimización y siempre que escales puede quedar "raro", incluso de mayor a menor tamaño la imagen puede dar la impresión de estar muy comprimida (depende del nivel de detalle del diseño).

Como eso es mucho curro la idea más viable es la que comentas, haces el gráfico en grande y luego lo escalas hacia abajo, evita formatos como BMP que se llevan muy mal con ese tipo de operaciones, ten cuidado con los ratios de imagen porque si diseñas en una pantalla normal cuando lo pongas a funcionar ajustándose a una resolución de pantalla panorámica los gráficos perderán la forma.

Un saludo.

  • rintin

  • Elder

  • vida restante: 100%
  • Registrado: 12 ago 2003
  • Mensajes: 142
#5

Escrito 18 noviembre 2010 - 22:08

La respuesta la sabes: las imágenes debes pensarlas al tamaño máximo soportado, y dejar que escale siempre a menos.

Puedes hacer varias versiones, pero teniendo en cuenta las plataformas destino, es innecesario, pues si los requisitos son los que son, y das soporte a la resolución máxima, debe funcionar bien sin problemas.


Este tema ha sido archivado. Esto significa que no puedes responder en este tema.
publicidad