graphics - LIBGDX: ¿Qué es una "ventana gráfica"?
box2d viewport (1)
Eso depende de la versión de LibGDX que estés usando. Con LibGDX 1.0.0 se introdujo la clase Viewport
y probablemente eso es lo que significan los últimos tutoriales y artículos, cuando hablan de "viewports".
Esta clase maneja dos cosas:
- El viewport de una cámara.
- La ventana de OpenGL
La vista de una cámara define cuánto quieres ver de tu mundo de juego. Si tiene una enorme TiledMap
del tamaño 10000px X 10000px, entonces probablemente solo quiera mostrar una pequeña área de ese mapa a la vez. Si define la ventana gráfica de su cámara como 800px X 480px, verá una parte de su mapa que tiene exactamente esta dimensión (al menos en el caso de una OrthographicCamera
). Es como una ventana a través de la cual miras a través de tu mundo y defines el tamaño a través de la ventana gráfica.
La ventana gráfica OpenGL define el área a la que se debe asignar la vista de la cámara. Por defecto, esa ventana gráfica es el 100% del tamaño de su ventana en sistemas operativos de escritorio. Pero eso también podría ser diferente. Un FitViewport
con LibGDX 1.0.0 puede escalar esa vista para que mantenga la relación de aspecto de una "vista virtual" que usted define (que en realidad es la vista de la cámara, que está siendo administrada por la clase de Viewport
). Eso significa que, en caso de que la relación de aspecto de la ventana no coincida con la relación de aspecto de la Viewport
(virtual), la ventana gráfica OpenGL se configurará en un tamaño más pequeño y aparecerán barras negras. Así que puedes pensar que es otra capa entre la ventana real de tu escritorio y la cámara. Esta capa toma la salida de su cámara y la escala al tamaño definido en la ventana de su escritorio.
Esta publicación está relacionada con una publicación anterior en la que se desea aprender cómo procesar correctamente entre LIBGDX y Box2D. Tenía que entender la ventana gráfica mucho antes de poder continuar.
Después de muchas lecturas de código / publicación, sentí que el significado de "viewport" era "la apertura rectangular de una lente de la cámara que ve el mundo de juegos de LIBGDX, donde puedo moverlo por el mundo para ver lo que quiero". Pero, después de leer más, parecía que no estaba ni cerca del significado real.
He leído la wiki de LIBGDX y leí la documentación de OpenGL, que parece explicar la ventana gráfica como dos cosas diferentes.
LIBGDX Wiki:
"La ventana gráfica es una región de visualización rectangular de la pantalla donde se proyecta la escena 3D. No es nada más que mapear los objetos tridimensionales al plano bidimensional".
OpenGL:
"la ventana gráfica indica la forma del área de pantalla disponible a la que se asigna la escena".
Desbordamiento de pila:
"... Tiene varias definiciones en diferentes contextos ...": ''(
He intentado leer decenas de publicaciones en el foro y tutoriales. Pero, desafortunadamente, casi todos saltan a la derecha como si "viewport" fuera un concepto tan primitivo que todos entendieran y supieran.
Sé que tendré mucho calor por esta pregunta completamente básica. Por favor no llames, te lo pregunto porque en realidad no sé y necesito ayuda.
De todos modos, en la pregunta real.
¿Qué es "viewport" en el contexto de LIBGDX?