Ramrez Jurez Eduardo Prctica 2 Introduccin a OpenGL. Objetivo: El alumno se familiarizar con las funciones grficas bsicas de OpenGL para la construccin de elementos. Cuestionario Previo: (puede ser entregado en equipo de dos personas) . Investigue que es GL!". OpenGL significa Graphic Library. No es por lo tanto ningn lenguae de programacin! sino tan slo un conunto de librer"as #ue son utilizadas a tra$%s de lenguaes de programacin &en este caso 'isual())* para conseguir un interfaz soft+are entre las aplicaciones y el hard+are grfico. La librer"a est formada por unas ,-. instrucciones diferentes #ue se utilizan para especificar los obetos y las operaciones necesarias para desarrollar aplicaciones interacti$as tridimensionales. Los modelos se deben construir partiendo de un pe#ue/o conunto de 0primiti$as geom%tricas0 como puntos! l"neas y pol"gonos. 1 cambio! OpenGL! ofrece algo muy $alioso: la independencia con respecto a la plataforma de hard+are y el sistema operati$o en #ue se trabae! brindando con ello una enorme portabilidad a sus productos. 1si! OpenGL! permite: 2 (onstruir formas geom%tricas a partir de primiti$as. 2 3bicar los obetos en el espacio tridimensional y seleccionar el punto de $ista de la escena. 2 1plicar el color a los obetos! ya sea mediante una asignacin e4pl"cita de la aplicacin! a partir de las condiciones de iluminacin o mediante la utilizacin de te4turas. 2 (on$ertir la descripcin matemtica de los obetos y la informacin sobre el color en p"4eles de la pantalla! proceso #ue se llama rasterizacin. 1un#ue OpenGL est concebido para dise/ar aplicaciones interacti$as y facilita al usuario herramientas como la seleccin sus capacidades resultan insuficientes para! entre otras cosas! crear interfaces grficas con un grado mayor de interacti$idad. Estas limitaciones condueron al desarrollo de las librer"as 135 y GL36. Las librer"as 135 presentan numerosas insuficiencias! y su aplicacin se limita a programas de simple ense/anza. La librer"a GL36 en cambio! tiene mayor funcionalidad para la manipulacin interacti$a de obetos 78. GL36 es un interfaz de programacin con 0(0 1N9: y ;ortran para escribir programas en OpenGL #ue sean independientes del sistema operati$o de $entanas. Las librer"as GL36 ofrecen! entre otras cosas! las siguientes prestaciones: 2 'entanas mltiples para render 2 <rocesamiento de e$entos de entrada iniciados por el usuario &callbac=s*. 2 'ariados dispositi$os de entrada. 2 >ens desplegables. 2 ?utinas para generar obetos estndares 2. #escriba $os co%andos g$utInit(): El comando glut:nit&* inicializa la librer"a de GL36 y negocia una sesin con el sistema de $entana. 6ambi%n procesa opciones de la l"nea de comando. 9e utiliza de la siguiente manera: $oid glut:nit&int @argcp! char @@arg$* 8onde argcp es un apuntador a la $ariable sin modificar argc. (omo regreso de esta funcin el $alor al #ue apunta argcp es actualizado. El parmetro arg$ es para la $ariable sin modificar de main arg$. (omo el parmetro anterior! actualiza el $alor de arg$. g$utInit&indo'Position() ( g$utInit&indo')i*e(): glut:nitAindo+<osition y glut:nitAindo+9ize Estas funciones fian los parmetros para la posicin inicial y el tama/o de la $entana #ue se crea. 9e utilizan de la siguiente manera: $oid glut:nitAindo+9ize&int +idth! int height*B $oid glut:nitAindo+<osition&int 4! int y*B 8onde +idth es el ancho de la $entana y height la altura en p"4eles. 5 y C responden a las coordenadas de la $entana cuando se crea. g$utInit#isp$a(+ode(): Esta funcin fia el modo despliegue inicial. Este modo es para la creacin de $entanas de alto ni$el! sub$entanas y capas para determinar el display de OpenGL para la $entana #ue se $a a crear. 9e utiliza de la siguiente manera: $oid glut:nit8isplay>ode&unsigned int mode*B 8onde mode es la opcin de mscara de bit deseada &la descripcin de %stas se puede encontrar en la fuente de referencia* Las mscaras son: GL36D?GE1 GL36D?GE GL36D:N8E5 GL36D9:NGLE GL36D8O3ELE GL36D1((3> GL36D1L<F1 GL36D8E<6F GL36D96EN(:L GL36D>3L6:91><LE GL36D96E?EOGL36DL3>:N1N(E g$utCreate&indo'(): 9implemente crea una $entana. 9u forma es la siguiente: int glut(reateAindo+&char @name*B g$ut#isp$a(,unc():Obtiene el callbac= de display para la $entana actual. Esta funcin callbac= especifica cul funcin ser llamada cada $ez #ue la $entana actual se afecte $oid glut8isplay;unc&$oid &@func*&$oid**B g$ut-es.ape,unc():9e en carga de especificar cul funcin ser llamada cada $ez #ue la $entana sea alterada! un eemplo es: $oid glut?eshape;unc&$oid &@func*&int +idth! int height**B func es la nue$a funcin #ue se llama cuando hay alguna alteracin. g$ut/e(board,unc(): 1ccin a realizar cada $ez #ue se pulsa una de las teclas! un eemplo es: $oid glutGeyboard;unc&$oid &@function*&unsigned char =ey! int 4! int y**B El argumento function es un puntero a la funcin #ue acta como rutina de ser$icio. <armetros! el carcter de la tecla pulsada y la posicin del ratn sobre la $entana en coordenadas del mundo real. 0. 1$gunas de $as 2unciones anteriores3 son 2unciones conocidas co%o ca$$bac4. 56p$ique3 en sus propias pa$abras 7qu8 es un ca$$bac49 Es una de$olucin de llamada de una funcin #ue a su $ez utiliza a otra funcin pero los argumentos #ue le de$uel$e es un puntero. :. 7Para qu8 sirve e$ co%ando g$LoadIdentit(()9 (arga la matriz identidad y se define una proyeccin perspecti$a con la funcin glu<erspecti$e&* ;. 7<u8 es una bib$ioteca de progra%acin ( cu$ es su uti$idad9 Es un conunto de implementaciones funcionales! codificadas en un lenguae de programacin! #ue ofrece una interfaz bien definida para la funcionalidad #ue se in$oca. 9u utilidad es #ue dan soporte a las operaciones #ue se utilizan con ms frecuencia =. 7<u8 es un pi6e$9 3nidad m"nima de representacin grfica. >. 7<u8 es $a reso$ucin de un dispositivo93 investigue ( anote $a reso$ucin de$ %onitor de su co%putadora principa$. -eso$ucin: (antidad total de pi4eles #ue puede mostrar un dispositi$o. ?esolucin de las computadoras: Eduardo: &,HI. 4 ,.J.* 8a$id: ?esolucin F8 &,7KK 4 LKJ* ?. Investigue $a de2inicin de PPI (pi6e$s per inc.)3 e indique $a di2erencia que tiene con $a reso$ucin de un dispositivo. 7Cu$ de2inicin considera %s e6acta para saber $a ca$idad de un %onitor9 En espa/ol <<< &<i4eles por pulgada* es una medida de resolucin de $"deo relacionada al tama/o del monitor en pulgadas y del nmero total de pi4eles en la direccin horizontal y en la direccin $ertical. <ara determinar los p"4eles por pulgada &<<<* de un monitor! basta medir la longitud y altura! en pulgadas! de un cuadrado de un <<< dado &por eemplo de I..4I..* usando una regla colocada sobre el monitor. 8i$idiendo por la resolucin dada &I.. en nuestro eemplo* la longitud y la altura medida! dar respecti$amente! el $alor de <<< horizontal y $ertical de la resolucin del monitor. 1s"! cuanto mayor sea el nmero de <<<! mayor es la resolucin y menor el tama/o de cada p"4el. La diferencia con la resolucin de un dispositi$o es #ue %sta ya tiene los $alores predeterminados! son ms generales! digamos! mientras #ue <<< $a a depender de las medidas #ue tenga el monitor en pulgadas. (onsidero ms e4acta y ms simple la resolucin de un dispositi$o. @. 1note e$ nA%ero de grupo de $a %ateria Co%putacin Gr2ica ("eorBa) ( su direccin de correo e$ectrnico. 5duardo: Grupo: I eduardoramirezuarezMgmail.com #avid: Grupo: N da$id.ldacHMgmail.com -eporte Prctica . (Individua$es) . (ree proyectos y realice los pasos de configuracin del ambiente de desarrollo en e#uipos de cmputo diferentes al del laboratorio. En base en ello conteste: a* O<udo conseguir #ue el cdigo de muestra funcioneP Eduardo: 9i 8a$id: 9i b* Liste los problemas #ue tu$o o intent resol$er para hacer funcionar el cdigo. Ninguno! ayuda mucho el documento de configuracin #ue usted nos proporciona. 8e ah" en fuera solo es cosa de ugar un poco con el cdigo para agarrar prctica. 2. 8e un bre$e comentario de la prctica pasada! indicando los pasos #ue se le complicaron y sugerencias para meorar desarrollo de la prctica. 5duardo: <ues en lo general se me hizo bastante fcil el maneo y siguiendo los pases para darles color a la tetera y como lo hicimos rotar creo #ue no me causo ningn conflicto ni complicacin y creo #ue es bastante bueno como se lle$a la clase acabo ya #ue cuando se necesita de su ayuda est ah" #avid: 1lgunos pasos a la hora de correr el cdigo se me complicaban por#ue en el e#uipo #ue estbamos usando no aparec"a igual #ue en la del proyector! sin embargo! solo era cuestin de solicitar un poco de su ayuda para poder corregir esos detalles! pienso #ue ms #ue nada es falta de prctica y el hecho de estar $iendo algo nue$o! la herramienta luce bastante interesante. >e ser$ir de base para poder elegir un modulo de salida. Cib$iogra2Ba: http:QQ+++.oocities.orgQ$alcoeyQopengl.html http:QQfirestrong2dar=side.blogspot.m4QI..JQ.IQpre$io2prctica2I.html http:QQ+++.opengl.orgQresourcesQlibrariesQglutQ http:QQ+++.tecnun.esQasignaturasQgrafcompQOpenGLQpracticaQcapituloI.pdf http:QQes.scribd.comQdocQ-7,LNN--Q1<:2GL362(ompleta