Creación de una ventana usando OpenGL | C ++

En este artículo, vamos a aprender cómo inicializar (crear) una ventana usando OpenGL y entender su estructura ?

básico paso para hacer cualquier programa en OpenGL se crea una ventana en la que todo el código funcionara, entonces cómo podemos crearlo? Después de instalar las bibliotecas de OpenGL en su máquina (OpenGL guía de instalación para Ubuntu: Cómo instalar Ubuntu en OpenGL ) podemos empezar.

Primero vamos a entender cómo estructurar un programa de OpenGL?

  1. Place todo parámetro de tiempo de uno de inicialización y relacionados Configuración juntos preferiblemente en functioninit () .
  2. Descripción geométrica de la imagen que queremos llamar (pantalla) en la función definida por el usuario que se hace referencia en función de GLUT, glutDisplayFunc () .
  3. main función contendrá función GLUT para la creación de la ventana de visualización y conseguir la pantalla de imagen.

Programa:

vamos a obtener nuestra manos sucias con el código:

#include<GL/freeglut.h>
//Program to create an empty Widdow
void init(){
glutInitDisplayMode(GLUT_SINGLE|GLUT_RGB); //Line C
glutInitWindowSize(640,480);
glutInitWindowPosition(1000,200);
glutCreateWindow("Simple Window");
}
void display()
{
glClearColor(1.0,1.0,1.0,0.0);
glClear(GL_COLOR_BUFFER_BIT);
// gluOrtho2D(0.0,100.0,0,100.0);
glFlush();
}
int main(int argc,char **argv)
{
glutInit(&argc,argv); //Line A
init(); //Line B
glutDisplayFunc(display);
glutMainLoop();
return 0;
}

salida

Explicación:

# & lt; GL / freeglut.h & gt; , se utilizó la biblioteca GL / freeglut para nuestro programa y se puede encontrar casi en todos nuestros programas.

Dentro de la línea A, que llamó a esta glutInit (y argv, argv) porque inicializa el Glut (GLUT), por lo que debe hacerse al principio y que es uno de los mostos paso include.

En Línea B, que llama a la función definida por el usuario a init () . Ahora entendemos lo que cada media línea, glutInitDisplayMode () se utiliza para seleccionar las opciones de almacenamiento temporal y selección de modo de color. Aquí hemos utilizado GLUT_SINGLE para una pantalla de ventana que mediante un búfer de voluntad utilizado para un color que puede utilizar el modo de buffer de dos o tres períodos sucesivos de aumentar el número de colores, se utilizó GLUT_RGB lo que significa que utilizaremos Rojo, Verde y Azul colores como los colores primarios. glutWindowSize () se utiliza para definir el tamaño de la ventana para ser creado. glutWindowPosition () se utiliza para definir el punto de inicio de la ventana en la pantalla (que empezar desde una parte superior izquierda de la esquina, que es de 1000 píxeles a la izquierda, y 200 píxeles por debajo). glutCreateWindow () es responsable de crear la ventana en la pantalla, también podemos pasar un argumento de cadena con él que muestran que la cadena en la parte superior de la ventana de nueva creación.

glutDisplayFunc () se necesita un nombre de la función como parámetro y lo visualiza en la pantalla (aunque no tenemos nada que mostrar en nuestras pantallas () función no mostrará ninguna imagen).

Para color de fondo, como el color do del fondo es Negro, para cambiarlo utilizamos dos funciones, una es glClearColor (r, g, b, a) que acepta 4 parámetros, para cada Red , verde , azul y valor Alfa. Se acepta estos tres colores sólo porque definido en la línea C que vamos a utilizar sólo éste y pasamos un valor () entre 0 y 1 para la definición de su composición y el color resultante será el color del fondo, se utiliza el valor Alfa para determinar la resultante de dos colores superpuestos.

donde a = 0 es objeto transparente, a = 1 es objeto opaco

Pero el simple uso de glClearColor () no va a cambiar el color de fondo, sin duda va a establecer el fondo pero ganó’ t sea visible; a menos que utilicemos glClear (GL_COLOR_BUFFER_BIT) , esto activará el proceso de color desde el procesador de gráficos y color asignado se mostrará en la ventana.

gluOrtho2D () tarda de cuatro flotadores como parámetros y son Xmin , Xmax , Ymin , y Ymax que definen thecoordinate sistema dentro de la ventana. En el pasado, usamos glFlush () cuales ras abajo todo para la pantalla.

glutMainLoop () es una función necesidad, ya que es responsable de mantener la visualización en pantalla o float el programa terminará ojo humano sin notar nada.


Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *