Herramientas de usuario

Herramientas del sitio


fw:ogl:xtra2

Diferencias

Muestra las diferencias entre dos versiones de la página.

Enlace a la vista de comparación

Ambos lados, revisión anterior Revisión previa
Próxima revisión
Revisión previa
fw:ogl:xtra2 [2009/11/12 16:06]
alfred
fw:ogl:xtra2 [2020/05/09 09:25] (actual)
Línea 5: Línea 5:
 ===== GLUT ===== ===== GLUT =====
 GLUT (openGL Utility Toolkit) es una librería para escribir programas con interface gráfica OpenGL de forma fácil, por lo que da la posibilidad de aprender a programar con OpenGL de una forma muy sencilla GLUT (openGL Utility Toolkit) es una librería para escribir programas con interface gráfica OpenGL de forma fácil, por lo que da la posibilidad de aprender a programar con OpenGL de una forma muy sencilla
 +
  
  
Línea 11: Línea 12:
 ==== Instalación y uso ==== ==== Instalación y uso ====
 === En Linux === === En Linux ===
 +Podremos instalar el paquete ''​freeglut'',​ luego para compilar utilizaremos la siguiente línea:
 +<​code>​
 +$ g++ -Wall -o "​%e"​ "​%f"​ -I/​usr/​include/​ImageMagick/​ -lglut -lGL -lGLU -lMagick++
 +</​code>​
 === En Windows === === En Windows ===
   * {{fw:​ogl:​glut-3.7.6-bin.zip|GLUT 3.7.6}}   * {{fw:​ogl:​glut-3.7.6-bin.zip|GLUT 3.7.6}}
 Descomprimiremos este archivo en la carpeta del proyecto y agregaremos las siguientes librerías ''​opengl32.lib''​ y ''​glut32.lib''​. Luego haremos un include de ''​glut.h''​. Descomprimiremos este archivo en la carpeta del proyecto y agregaremos las siguientes librerías ''​opengl32.lib''​ y ''​glut32.lib''​. Luego haremos un include de ''​glut.h''​.
 +
 +
 +
 +
 +
 +
 +
 +
 +
  
 ==== Funciones ==== ==== Funciones ====
 === Inicio === === Inicio ===
 +  * ''​glutInit()'':​ Inicializa GLUT para ser utilizado. Debería recibir por parámetro los parámetros que recibe la función main. 
 +  * ''​glutInitDisplayMode()'':​ Inicializa el display mode, indica cómo se mostrarán los ventanas creadas a partir de GLUT. Acepta un ''​unsigned int''​ como parámetro correspondiente a las distintas flags combinadas por OR (|):
 +    * ''​GLUT_RGBA''​
 +    * ''​GLUT_RGB''​
 +    * ''​GLUT_INDEX''​
 +    * ''​GLUT_SINGLE''​
 +    * ''​GLUT_DOUBLE'',​ double buffering.
 +    * ''​GLUT_ACCUM''​
 +    * ''​GLUT_ALPHA''​
 +    * ''​GLUT_DEPTH''​
 +    * ''​GLUT_STENCIL''​
 +    * ''​GLUT_MULTISAMPLE''​
 +    * ''​GLUT_STEREO''​
 +    * ''​GLUT_LUMINANCE''​
 +
 +=== Ventana ===
 +  * ''​glutInitWindowSize'',​ recibe dos ''​int''​ que indican el tamaño de la ventana (ancho y alto).
 +  * ''​glutInitWindowPosition'',​ recibe dos ''​int''​ que indican la posición inicial de la ventana.
 +  * ''​glutCreateWindow'',​ crea la ventana, recibe una cadena de carácteres correspondientes al título.
 +
 === Dibujo === === Dibujo ===
 +  * ''​glutDisplayFunc'',​ indica cual es la función encargada de dibujar. Recibe ''​(void(*func)(void))'',​ es decir, el nombre de la función que devuelve ''​void''​ y no recibe parámetros.
 +  * ''​glutPostRedisplay'',​ ordena el redibujo.
 +
 === Teclado === === Teclado ===
 +  * ''​glutKeyboardFunc'',​ indica la función que se llamará cuando se realice una pulsación de teclado. Recibe por parámetro el nombre de la función, teniendo que ser esta con el siguiente formato: ''​(void(*func)(unsigned char key, int x, int y))''​.
 +  * ''​glutKeyboardUpFunc'',​ con el mismo formato que la anterior, indica cuando se levanta una tecla.
 +
 === Otras === === Otras ===
 +  * ''​glutMainLoop''​ función que inicia el //main loop// de glut, por lo tanto muestra la ventana, la mantiene abierta y se va llamando al bucle principal del programa.
 +  * ''​glutIdleFunc''​ indica la función que se ejecutará cuando se haga una iteración del main loop.
 +  * ''​glutTimerFunc''​ indica cada cuanto se ejecutará la función del main loop.
 +
 +==== Ejemplos ====
 +=== Simple ===
 +<code c>
 +#include "​glut.h"​
 +
 +void renderScene(void) {
 + glClear(GL_COLOR_BUFFER_BIT);​
 + glBegin(GL_TRIANGLES);​
 + glVertex3f(-0.5,​-0.5,​0.0);​
 + glVertex3f(0.5,​0.0,​0.0);​
 + glVertex3f(0.0,​0.5,​0.0);​
 + glEnd();
 + glFlush();
 +}
 +
 +void main(int argc, char **argv) {
 + glutInit(&​argc,​ argv);
 + glutInitDisplayMode(GLUT_DEPTH | GLUT_SINGLE | GLUT_RGBA);
 + glutInitWindowPosition(100,​100);​
 + glutInitWindowSize(320,​320);​
 + glutCreateWindow("​3D Tech- GLUT Tutorial"​);​
 + glutDisplayFunc(renderScene);​
 + glutMainLoop();​
 +}
 +</​code>​
  
 ===== OpenGL en Linux ===== ===== OpenGL en Linux =====
fw/ogl/xtra2.1258041984.txt.gz · Última modificación: 2020/05/09 09:24 (editor externo)