Vista de OpenGL

1.1 Ventana (Pantalla)

La ventana es en realidad la pantalla, como se muestra en la Figura 1 a continuación con el fondo negro en el círculo rojo. En última instancia, todas las escenas se rasterizan y multiplican por las imágenes en la pantalla, y la pantalla es el destino de salida final para todas las escenas (2D, 3D, etc.). Una pantalla puede mostrar el contenido en múltiples ventanas gráficas;

1.2 Ventana gráfica (Viewport)

La ventana gráfica es un área rectangular en la ventana que se utiliza para mostrar gráficos. Puede ser la misma que la. ventana Grande, también puede ser más grande o más pequeña que la ventana, como el área marcada en azul con un fondo verde en la Figura 1. Tiene dos significados:

? Define el tamaño del lienzo en el que se dibujará la escena en el cuerpo de visualización;

¿Define en qué parte de la pantalla se encuentra el lienzo? Área;

Obviamente, si la relación de aspecto definida por el plano de proyección del volumen de visualización es diferente de la relación de aspecto definida por la ventana gráfica, entonces cuando los objetos en el volumen de visualización se dibujen en el lienzo. estirarse o comprimirse y cuando la relación de aspecto del plano de proyección del volumen de visualización sea consistente con la relación de aspecto definida por la ventana gráfica, la imagen se dibujará en el lienzo definido por la ventana gráfica sin ninguna escala;

En aplicaciones reales, se dibujarán múltiples escenas 3D en una ventana. Esto se hace definiendo múltiples ventanas gráficas, dibujando múltiples imágenes y luego pegándolas en diferentes áreas de la pantalla. Por ejemplo, el área en el círculo del lápiz amarillo en la imagen está determinada por dos ventanas gráficas1 (0,0;w/2,y) y vistas2 (0,w/2;w/2,y) diferentes en el lienzo; /p >

1.4 View Frustum

View Volume define la escena que podemos ver a través de la cámara virtual 3D. Cuando estamos en una escena 3D, la ubicación de la cámara y el campo de visión son necesarios para definir lo que podemos ver, y este campo de visión se define a través del volumen de visualización. En 3D, los volúmenes de visualización generalmente se pueden definir de las dos maneras siguientes:

A través de la introducción anterior, tenemos una comprensión aproximada de los conceptos de estas tres cosas diferentes. De esto podemos saber que al definir la matriz de proyección, en realidad creamos un campo de visión, que es el volumen de visualización, en el espacio virtual 3D. A continuación, definimos la ventana gráfica para describir cómo se asigna el contenido del volumen de visualización a un lienzo virtual y dónde se mostrará finalmente el lienzo en la pantalla. Cuando todo esto esté configurado y dibujemos la escena, podremos ver la imagen final en la pantalla de nuestro monitor a través del hardware. Una expresión más teórica es proyectar la escena 3D en un plano de proyección definiendo una matriz de proyección. Al definir la ventana gráfica, asignamos el contenido en el plano de proyección a la ventana gráfica y lo llenamos. Al mismo tiempo, de acuerdo con la definición de la ventana gráfica como la posición de las coordenadas de pantalla dadas, la imagen en la ventana gráfica se asigna a la ventana gráfica. Posición especificada de la ventana Arriba, finalmente vemos la imagen.

glViewport es una función en OpenGL. En gráficos por computadora, la tarea de abrir ventanas en la pantalla es responsabilidad del sistema de ventanas, no de OpenGL. De forma predeterminada, la ventana gráfica de glViewport está configurada para ocupar todo el rectángulo de píxeles de la ventana abierta, como se muestra en la Figura 1. El tamaño de la ventana es el mismo que el tamaño de la ventana gráfica establecido, por lo que para seleccionar un área de dibujo más pequeña, puede use la función glViewport para lograr esto. Una transformación define un rectángulo de píxeles en la ventana y finalmente asigna la imagen a este rectángulo. Por ejemplo, puede dividir el área de la ventana y mostrar el efecto de pantalla dividida en la misma ventana para mostrar múltiples vistas.