Godot4 Project Settings > Display Windows
Godot4 Project Settings > Display Windows
(Intentando entender lo de las resoluciones, aspectos, para ver como se adaptara al monitor... )
Resoluciones del tipo HD (Lo moderno)
Las resoluciones HD, como es el caso del full HD resolución, son las más utilizadas hoy en día y las podemos encontrar en prácticamente todas las pantallas. Estas son:
- Resolución SD: De 640×480 píxeles. Es el estándar de resolución más bajo que existe.
- Resolución QHD: De 960×540 píxeles. Es un cuarto de alta definición, se emplea en dispositivos de baja gama.
- Resolución HD: De 1280×720 píxeles. Se corresponde con el primer estándar de alta resolución, conocido también como 720p.
- Resolución FHD: De 1920×1080 píxeles. Es el estándar de alta definición total, conocida también como 1080p. El full HD resolución es una de los más utilizados hoy en día.
- Resolución QHD: De 2560×1440 píxeles. Conocida también como 1440p o resolución 2k. QHD 2560×1600 resolución es muy utilizada en algunos smartphones
- Resolución UHD: De 3840×2160 píxeles. Se trata de la famosa resolución 8k o 2160p. Esta resolución se está convirtiendo en el estándar de los últimos televisores de gama media y alta.
- Resolución UHD 8k: De 7680×4320. La resolución 8k es el estándar de máxima calidad que existe. Este estándar aspira a ser el sucesor de la resolución 4k
Resoluciones del tipo VGA (antiguamente)
Las resoluciones del tipo VGA son las utilizadas en los monitores con este puerto (Video Graphics Array). Esta medida era utilizada antes de que el HD ganara tanta popularidad. Además, en algunos casos, podemos encontrar resoluciones equivalentes entre ambas medidas. Las nomenclaturas VGA son muy variadas (algunas ya han quedado obsoletas), estas son:
- Resolución QVGA: De 320×240 píxeles.
- Resolución VGA: De 640×480 píxeles (es la equivalente a la resolución SD).
- Resolución FWGA: De 854×480 píxeles.
- Resolución SVGA: De 800×600 píxeles.
- Resolución WSVGA: De 1024×576 píxeles.
- Resolución XGA: De 1024×768 píxeles.
- Resolución WXGA: De 1280×800 píxeles, de 1360×768 píxeles y de 1366×768 píxeles.
- Resolución XGA+: De 1152×864 píxeles.
- Resolución WXGA+ O WSXGA: De 1440×900 píxeles.
- Resolución SXGA: De 1280×1024 píxeles.
- Resolución SXGA+: De 1400×1050 píxeles.
- Resolución WSXGA+: De 1600×1200 píxeles.
- Resolución UXGA O UGA: De 320×240 píxeles.
- Resolución WUXGA: De 1920×1200 píxeles.
- Resolución QWXGA: De 2048×1152 píxeles.
- Resolución QXGA: De 2048×1536 píxeles.
- Resolución WQXGA: De 2560×1600 píxeles.
- Resolución WQUXGA: De 3840×2400 píxeles.
- Resolución HXGA: De 4096×3072 píxeles.
Múltiples resoluciones¶
El problema de las múltiples resoluciones¶
Los desarrolladores a menudo tienen problemas para comprender cómo admitir mejor múltiples resoluciones en sus juegos. Para juegos de escritorio y consola, esto es más o menos sencillo, ya que la mayoría de las relaciones de aspecto de la pantalla son 16:9 y las resoluciones son estándar (720p, 1080p, 1440p, 4K,...).
Para los juegos móviles, al principio, fue fácil. Durante muchos años, el iPhone y el iPad utilizaron la misma resolución. Cuando se implementó Retina , simplemente duplicaron la densidad de píxeles; la mayoría de los desarrolladores tuvieron que suministrar activos en resoluciones predeterminadas y dobles.
Hoy en día, este ya no es el caso, ya que hay muchos tamaños de pantalla, densidades y relaciones de aspecto diferentes. Los tamaños no convencionales también son cada vez más populares, como las pantallas ultra anchas.
Para juegos 3D, no hay mucha necesidad de soportar múltiples resoluciones (desde el punto de vista estético). La geometría 3D simplemente llenará la pantalla según el campo de visión, sin tener en cuenta la relación de aspecto. La razón principal por la que uno puede querer admitir esto, en este caso, es por razones de rendimiento (ejecutarse en una resolución más baja para aumentar los cuadros por segundo).
Para las interfaces de usuario 2D y de juegos, este es un asunto diferente, ya que el arte debe crearse utilizando tamaños de píxeles específicos en software como Photoshop, GIMP o Krita.
Dado que los diseños, las relaciones de aspecto, las resoluciones y las densidades de píxeles pueden cambiar tanto, ya no es posible diseñar interfaces de usuario para cada pantalla específica. Se debe utilizar otro método.
Talla única¶/Base size¶
El enfoque más común es usar una resolución de base única y luego ajustarla a todo lo demás. Esta resolución es la forma en que se espera que la mayoría de los jugadores jueguen (dado su hardware). Para dispositivos móviles, Google tiene estadísticas útiles en línea, y para computadoras de escritorio, Steam también las tiene .
Como ejemplo, Steam muestra que la resolución de pantalla principal más común es 1920 × 1080, por lo que un enfoque sensato es desarrollar un juego para esta resolución y luego manejar la escala para diferentes tamaños y relaciones de aspecto.
Godot proporciona varias herramientas útiles para hacer esto fácilmente.
Tamaño básico¶
en Pantalla → Ventana .
Sin embargo, lo que hace no es completamente obvio; el motor no intentará cambiar el monitor a esta resolución. Más bien, piense en esta configuración como el "tamaño del diseño", es decir, el tamaño del área con la que trabaja en el editor. Esta configuración corresponde directamente al tamaño del rectángulo azul en el editor 2D.
A menudo existe la necesidad de admitir dispositivos con tamaños de pantalla y ventana que son diferentes de este tamaño base. Godot ofrece muchas formas de controlar cómo se cambiará el tamaño de la ventana gráfica y se estirará a diferentes tamaños de pantalla.
Para configurar el tamaño de base ampliado en tiempo de ejecución desde un script, utilice la get_tree().root.content_scale_sizepropiedad (consulte Window.content_scale_size ). Cambiar este valor puede cambiar indirectamente el tamaño de los elementos 2D. Sin embargo, para proporcionar una opción de escala accesible para el usuario, se recomienda usar Stretch Scale , ya que es más fácil de ajustar.
Nota
Godot sigue un enfoque moderno para múltiples resoluciones. El motor nunca cambiará la resolución del monitor por sí solo. Si bien cambiar la resolución del monitor es el enfoque más eficiente, también es el enfoque menos confiable, ya que puede dejar el monitor atascado en una resolución baja si el juego falla. Esto es especialmente común en macOS o Linux, que no manejan los cambios de resolución tan bien como Windows.
Cambiar la resolución del monitor también elimina cualquier control del desarrollador del juego sobre el filtrado y la ampliación de la relación de aspecto, lo que puede ser importante para garantizar la visualización correcta de los juegos de pixel art.
Además de eso, cambiar la resolución del monitor hace que la entrada y salida de un juego sea mucho más lenta, ya que el monitor tiene que cambiar las resoluciones cada vez que se hace esto.
Cambiar el tamaño¶
get_tree().get_root()) get_node("/root").En cualquier caso, mientras que cambiar los parámetros de la vista raíz es probablemente la forma más flexible de lidiar con el problema, puede ser mucho trabajo, código y adivinanzas, por lo que Godot proporciona un conjunto de parámetros en la configuración del proyecto para manejar múltiples resoluciones.
Ajustes de estiramiento / Stretch¶
La configuración de estiramiento se encuentra en la configuración del proyecto y ofrece varias opciones:
Modo de estiramiento / Stretch¶
La configuración de Modo de estiramiento / Stretch define cómo se estira el tamaño base para ajustarse a la resolución de la ventana o pantalla.
Las animaciones a continuación usan un "tamaño base" de solo 16 × 9 píxeles para demostrar el efecto de los diferentes modos de estiramiento. Un solo sprite, también de 16 × 9 píxeles de tamaño, cubre toda la ventana gráfica y se agrega una línea diagonal Line2D encima:
Modo de estiramiento = Deshabilitado (predeterminado): No se produce estiramiento. Una unidad en la escena corresponde a un píxel en la pantalla. En este modo, la configuración de Estirar aspecto no tiene efecto.
Modo de extensión = ventana gráfica : la escala de la ventana gráfica significa que el tamaño de la ventana gráfica raíz se establece con precisión en el tamaño base especificado en la sección Visualización de la configuración del proyecto . La escena se representa primero en esta ventana gráfica. Finalmente, esta ventana gráfica se escala para ajustarse a la pantalla (teniendo en cuenta la configuración de Estirar aspecto ).
estirar aspecto¶
El segundo ajuste es el aspecto de estiramiento. Tenga en cuenta que esto solo tiene efecto si el Modo de extensión está configurado en algo distinto de Deshabilitado .
En las animaciones a continuación, notará áreas grises y negras. Las áreas negras son añadidas por el motor y no se pueden dibujar en ellas. Las áreas grises son parte de su escena y se pueden dibujar en ellas. Las áreas grises corresponden a la región fuera del marco azul que ve en el editor 2D.
Estirar aspecto = Ignorar : ignora la relación de aspecto al estirar la pantalla. Esto significa que la resolución original se ampliará para llenar exactamente la pantalla, incluso si es más ancha o más estrecha. Esto puede resultar en un estiramiento no uniforme: las cosas se ven más anchas o más altas de lo que se diseñó.
Estirar aspecto = Mantener : mantenga la relación de aspecto al estirar la pantalla. Esto significa que la ventana gráfica conserva su tamaño original independientemente de la resolución de la pantalla, y se agregarán barras negras en la parte superior/inferior de la pantalla ("letterboxing") o en los lados ("pilar boxing").
Esta es una buena opción si conoce la relación de aspecto de sus dispositivos de destino de antemano o si no desea manejar diferentes relaciones de aspecto.
Estirar aspecto = Mantener altura : mantenga la relación de aspecto al estirar la pantalla. Si la pantalla es más alta que el tamaño base, se agregan barras negras en la parte superior e inferior (buzón). Pero si la pantalla es más ancha que la resolución base, la ventana gráfica crecerá en dirección horizontal (y se verá más contenido a la derecha). También puede pensar en esto como "Expandir horizontalmente".
Esta suele ser la mejor opción para juegos 2D que se desplazan horizontalmente (como corredores o juegos de plataformas).
Consejo
Para admitir tanto el modo vertical como el horizontal con un factor de escala similar determinado automáticamente, configure la resolución base de su proyecto para que sea un cuadrado (relación de aspecto 1:1) en lugar de un rectángulo. Por ejemplo, si desea diseñar para 1280 × 720 como resolución base pero desea admitir tanto el modo vertical como el horizontal, use 720 × 720 como tamaño de ventana base del proyecto en la Configuración del proyecto.
Para permitir que el usuario elija su orientación de pantalla preferida en tiempo de ejecución, recuerde configurar Pantalla > Ventana > Dispositivo portátil > Orientación en sensor.
get_tree().root.content_scale_aspect (consulte Window.content_scale_aspect y la enumeración ContentScaleAspect ).Escala de estiramiento¶
La configuración de escala le permite agregar un factor de escala adicional además de lo que ya proporcionan las opciones de estiramiento anteriores. El valor predeterminado de 1.0significa que no se produce escalado adicional.
Por ejemplo, si configura la Escala en 2.0y deja el Modo estirado en Deshabilitado , cada unidad en su escena corresponderá a 2 × 2 píxeles en la pantalla. Esta es una buena manera de proporcionar opciones de escalado para aplicaciones que no son juegos.
Si el Modo de estiramiento está configurado en canvas_items , los elementos 2D se escalarán en relación con el tamaño de la ventana base y luego se multiplicarán por la configuración de Escala . Esto se puede exponer a los jugadores para permitirles ajustar la escala determinada automáticamente a su gusto, para una mejor accesibilidad.
Si Modo estirado está establecido en ventana gráfica , la resolución de la ventana gráfica se divide por Escala . Esto hace que los píxeles parezcan más grandes y reduce la resolución de representación (con un tamaño de ventana dado), lo que puede mejorar el rendimiento.
Para configurar la escala extensible en tiempo de ejecución desde un script, use la get_tree().root.content_scale_factorpropiedad (consulte Window.content_scale_factor ).
Escenarios de casos de uso común¶
Se recomiendan los siguientes ajustes para admitir bien múltiples resoluciones y relaciones de aspecto.
juego de escritorio¶
Arte sin píxeles:
Establezca el ancho de la ventana base en
1920y la altura de la ventana en1080. Si tiene una pantalla más pequeña que 1920 × 1080, establezca Test Width y Test Height en valores más bajos para que la ventana sea más pequeña cuando comience el proyecto.Como alternativa, si se dirige principalmente a dispositivos de gama alta, establezca el ancho de la ventana base en
3840y la altura de la ventana en2160. Esto le permite proporcionar activos 2D de mayor resolución, lo que da como resultado imágenes más nítidas a costa de un mayor uso de memoria y tamaños de archivo. Tenga en cuenta que esto hará que las texturas no mipmapped se vean granuladas en dispositivos de baja resolución, así que asegúrese de seguir las instrucciones descritas en Reducción de alias en la reducción de resolución .Establezca el modo de estiramiento en
canvas_items.Establezca el aspecto de estiramiento en
expand. Esto permite admitir múltiples relaciones de aspecto y hace un mejor uso de las pantallas altas de los teléfonos inteligentes (como relaciones de aspecto de 18:9 o 19:9).Configure las anclas de los nodos de control para que se ajusten a las esquinas correctas mediante el menú Diseño .
Arte de pixel:
Establezca el tamaño de la ventana base en el tamaño de la ventana gráfica que desea utilizar. La mayoría de los juegos de pixel art utilizan tamaños de ventana gráfica entre 256 × 224 y 640 × 480. Los tamaños de ventana gráfica más altos requerirán el uso de ilustraciones de mayor resolución, a menos que pretenda mostrar más del mundo del juego en un momento dado.
Establezca el modo de estiramiento en
viewport.Establezca el aspecto de estiramiento en
keeppara imponer una sola relación de aspecto (con barras negras). Como alternativa, puede configurar el aspecto estirado paraexpandadmitir múltiples relaciones de aspecto.Si usa el
expandaspecto de estiramiento, configure los anclajes de los nodos de control para que se ajusten a las esquinas correctas usando el menú Diseño .
Nota
El viewportmodo estirado proporciona renderizado de baja resolución que luego se estira al tamaño final de la ventana. Si está de acuerdo con que los sprites puedan moverse o rotar en posiciones de "subpíxeles" o si desea tener una ventana gráfica 3D de alta resolución, debe usar el canvas_itemsmodo de estiramiento en lugar del viewportmodo de estiramiento.
Godot actualmente no tiene una forma de hacer cumplir la escala de enteros cuando se usa el modo de estiramiento canvas_itemso viewport, lo que significa que el arte de píxeles puede verse mal si el tamaño final de la ventana no es un múltiplo del tamaño de la ventana base. Para solucionar esto, use un complemento como el controlador de resolución de enteros .
Juego móvil en modo horizontal¶
Godot está configurado para usar el modo horizontal por defecto. Esto significa que no necesita cambiar la configuración del proyecto de orientación de visualización.
Establezca el ancho de la ventana base en
1280y la altura de la ventana en720.Como alternativa, si se dirige principalmente a dispositivos de gama alta, establezca el ancho de la ventana base en
1920y la altura de la ventana en1080. Esto le permite proporcionar activos 2D de mayor resolución, lo que da como resultado imágenes más nítidas a costa de un mayor uso de memoria y tamaños de archivo. Muchos dispositivos tienen pantallas de mayor resolución (1440p), pero la diferencia con 1080p es apenas visible dado el pequeño tamaño de las pantallas de los teléfonos inteligentes. Tenga en cuenta que esto hará que las texturas no mipmapped se vean granuladas en dispositivos de baja resolución, así que asegúrese de seguir las instrucciones descritas en Reducción de alias en la reducción de resolución .Establezca el modo de estiramiento en
canvas_items.Establezca el aspecto de estiramiento en
expand. Esto permite admitir múltiples relaciones de aspecto y hace un mejor uso de las pantallas altas de los teléfonos inteligentes (como relaciones de aspecto de 18:9 o 19:9).Configure las anclas de los nodos de control para que se ajusten a las esquinas correctas mediante el menú Diseño .
Consejo
Para admitir mejor las tabletas y los teléfonos plegables (que con frecuencia cuentan con pantallas con relaciones de aspecto cercanas a 4:3), considere usar una resolución base que tenga una relación de aspecto de 4:3 mientras sigue el resto de las instrucciones aquí. Por ejemplo, puede establecer el ancho de la ventana base en 1280y la altura de la ventana base en 960.
Juego móvil en modo retrato¶
Establezca el ancho de la ventana base en
720y la altura de la ventana en1080.Como alternativa, si se dirige principalmente a dispositivos de gama alta, establezca el ancho de la ventana base en
1080y la altura de la ventana en1920. Esto le permite proporcionar activos 2D de mayor resolución, lo que da como resultado imágenes más nítidas a costa de un mayor uso de memoria y tamaños de archivo. Muchos dispositivos tienen pantallas de mayor resolución (1440p), pero la diferencia con 1080p es apenas visible dado el pequeño tamaño de las pantallas de los teléfonos inteligentes. Tenga en cuenta que esto hará que las texturas no mipmapped se vean granuladas en dispositivos de baja resolución, así que asegúrese de seguir las instrucciones descritas en Reducción de alias en la reducción de resolución .Establezca Pantalla > Ventana > Dispositivo portátil > Orientación en
portrait.Establezca el modo de estiramiento en
canvas_items.Establezca el aspecto de estiramiento en
expand. Esto permite admitir múltiples relaciones de aspecto y hace un mejor uso de las pantallas altas de los teléfonos inteligentes (como relaciones de aspecto de 18:9 o 19:9).Configure las anclas de los nodos de control para que se ajusten a las esquinas correctas mediante el menú Diseño .
Consejo
Para admitir mejor las tabletas y los teléfonos plegables (que con frecuencia cuentan con pantallas con relaciones de aspecto cercanas a 4:3), considere usar una resolución base que tenga una relación de aspecto de 3:4 mientras sigue el resto de las instrucciones aquí. Por ejemplo, puede establecer el ancho de la ventana base en 960y la altura de la ventana base en 1280.
Aplicación no relacionada con el juego¶
Establezca el ancho y el alto de la ventana base en el tamaño de ventana más pequeño al que desea apuntar. Esto no es obligatorio, pero garantiza que diseñe su interfaz de usuario teniendo en cuenta los tamaños de ventana pequeños.
Mantenga el modo de estiramiento en su valor predeterminado,
disabled.Mantenga el aspecto de estiramiento en su valor predeterminado
ignore(su valor no se usará ya que el modo de estiramiento esdisabled).Puede definir un tamaño de ventana mínimo configurando
OS.min_window_sizela_ready()función de un script. Esto evita que el usuario cambie el tamaño de la aplicación por debajo de cierto tamaño, lo que podría romper el diseño de la interfaz de usuario.
Nota
Godot aún no admite la anulación manual del factor de escala 2D, por lo que no es posible tener compatibilidad con hiDPI en aplicaciones que no sean juegos. Debido a esto, se recomienda dejar Permitir Hidpi deshabilitado en aplicaciones que no sean juegos para permitir que el sistema operativo use su respaldo de bajo DPI.
soporte hiDPI¶
De forma predeterminada, el sistema operativo no considera los proyectos de Godot conscientes de DPI. Esto se hace para mejorar el rendimiento en sistemas de gama baja, ya que la escala de reserva de DPI del sistema operativo será más rápida que dejar que la aplicación se escale sola (incluso cuando se usa el viewportmodo de expansión).
Sin embargo, la escala de respaldo de DPI proporcionada por el sistema operativo no funciona bien con el modo de pantalla completa. Si desea imágenes nítidas en pantallas hiDPI o si el proyecto usa pantalla completa, se recomienda habilitar Pantalla > Ventana > Dpi > Permitir Hidpi en la Configuración del proyecto.
Permitir Hidpi solo es efectivo en Windows y macOS. Se ignora en todas las demás plataformas.
Nota
El propio editor de Godot siempre está marcado como compatible con DPI. Ejecutar el proyecto desde el editor solo reconocerá DPI si Permitir Hidpi está habilitado en la Configuración del proyecto.
Reducir el aliasing en la reducción de resolución¶
Si el juego tiene una resolución base muy alta (p. ej., 3840 × 2160), puede aparecer un alias al reducir la resolución a algo considerablemente más bajo, como 1280 × 720.
Para resolver esto, puede habilitar mipmaps en todas sus texturas 2D. Sin embargo, habilitar mipmaps aumentará el uso de memoria, lo que puede ser problemático en dispositivos móviles de gama baja.
Manejo de relaciones de aspecto¶
Una vez que se tenga en cuenta la escala para diferentes resoluciones, asegúrese de que su interfaz de usuario también se escale para diferentes relaciones de aspecto. Esto se puede hacer usando anclas y/o contenedores .
Escalado del campo de visión¶
La propiedad Conservar aspecto del nodo Cámara 3D tiene como valor predeterminado el modo de escala Conservar altura (también llamado Hor+ ). Este suele ser el mejor valor para juegos de escritorio y juegos móviles en modo horizontal, ya que las pantallas panorámicas utilizarán automáticamente un campo de visión más amplio.
Sin embargo, si su juego 3D está destinado a jugarse en modo vertical, puede tener más sentido usar Mantener ancho en su lugar (también llamado Vert- ). De esta forma, los smartphones con una relación de aspecto superior a 16:9 (p. ej., 19:9) utilizarán un campo de visión más alto , lo que es más lógico aquí.
Escalar elementos 2D y 3D de manera diferente usando Viewports¶
Usando múltiples nodos de Viewport, puede tener diferentes escalas para varios elementos. Por ejemplo, puede usar esto para renderizar el mundo 3D en una resolución baja mientras mantiene los elementos 2D en la resolución nativa. Esto puede mejorar significativamente el rendimiento mientras mantiene el HUD y otros elementos 2D nítidos.
Esto se hace usando el nodo raíz Viewport solo para elementos 2D, luego creando un nodo Viewport para mostrar el mundo 3D y mostrándolo usando un nodo SubViewportContainer o TextureRect. Habrá efectivamente dos ventanas gráficas en el proyecto final. Una ventaja de usar TextureRect sobre SubViewportContainer es que permite habilitar el filtrado lineal. Esto hace que las vistas 3D escaladas se vean mejor en muchos casos.
Consulte la demostración de escalado de la vista 3D para ver ejemplos.
Keep Width

















Comentarios
Publicar un comentario