Introducci n an OpenGL .


33 views
Uploaded on:
Category: Fashion / Beauty
Description
Introducción a OpenGL. LINK http:// www .sc.ehu.es/ccwgamoa/docencia/Material/Presentaciones. Antecedentes. CORE Graphics standard (SIGGRAPH 1977) IGL-Plot 10 (Tektronix) Interactive Graphic Library HP-GL “plotting language” (Hewlett Packard) Hewlett Packard Graphic Language
Transcripts
Slide 1

Introducción an OpenGL LINK http://www .sc.ehu.es/ccwgamoa/docencia/Material/Presentaciones A. García-Alonso

Slide 2

Antecedentes CORE Graphics standard (SIGGRAPH 1977) IGL-Plot 10 (Tektronix) Interactive Graphic Library HP-GL "plotting dialect" (Hewlett Packard) Hewlett Packard Graphic Language Starbase (Hewlett Packard) PHIGS (standard ANSI, ISO) Programmer\'s Hierarchical Interactive Graphics System GKS, GKS-3D (standard ANSI, ISO) Graphic Kernel System GL (Silicon Graphics)  OpenGL Graphic Library A. García-Alonso

Slide 3

Clasificar-distinguir "sistemas gráficos" Sintaxis y semántica de ficheros Estándar (ISO, ANSI, ...) : VRML, X3D Estándar mechanical " true standard " : DXF, 3ds, obj , … Librerías, APIs, Toolkits , ... OpenGL, Direct 3D (low level) Java 3D (scene chart, hubs) Open Inventor (scene diagram, hubs) Performer (large-scale representation demonstrate) [ Fahrenheit ] (three levels) Motores A. García-Alonso

Slide 4

Librerías en OpenGL Librería de funciones para generar imágenes a partir de modelos 3D, más otras librerías auxiliares g l la librería OpenGL relacionada directamente con el H/W g lu librería de chairman nivel construida sobre OpenGL glaux librería fuera de uso overabundance librería para crear interfaces de usuario transportables (Linux, Windows) En Visual C++ falta (están en el web de la asignatura) glut.dll  windows\system(32) glut.lib  … \lib g lut.h  … \include\gl A. García-Alonso

Slide 5

Entorno de programación Visual C++ (versión 6.0) Trabajamos en C, es decir sin crear clases de C++ Añadir las librerías opengl32.lib glu32.lib glut32.lib Project : settings : interface : Object/Library Modules Ficheros an incluir #include <GL/gl.h> #include <GL/glu.h> If you are utilizing GLUT for dealing with your window director #include <GL/glut.h> Note that glut.h incorporates gl.h, glu.h, and glx.h naturally, so including every one of the three documents is repetitive. A. García-Alonso

Slide 6

Estados Máquina de estados Color de fondo Intensidad de luz Material de dibujo Luz encendida o apagada and so forth Valor o estado glColor * (), glGetFloatv() glEnable(), glDisable(), glIsEnabled() A. García-Alonso

Slide 7

Command language structure (capacities) glVertex3fv( ... ) gl advises that this capacity has a place with the "gl" s/w bundle 3 is utilized to show three contentions f is utilized to demonstrate that the contentions are skimming point v shows that the contentions are in vector arrange Number Of Arguments: 2, 3, or 4 Bi-dimensional rendition of the charge 3D or rgb Homogeneous directions or rgb+alpha Formats nonappearance of v shows scalar organization v demonstrates vector design A. García-Alonso

Slide 8

Tipos factors y constantes Las equivalencias más habituales aparecen en la tabla Se recomienda definir los argumentos que se pasan a las funciones de OpenGL usando sus tipos predefinidos Para Glint unos sistemas pueden usar short, otros long Para Glfloat unos sistemas glide otros twofold A. García-Alonso

Slide 9

Constants & "characterized names" Ejemplos : #define GL_COLOR_BUFFER_BIT 0x00004000 #define GL_POINTS 0x0000 #define GL_LINE_LOOP 0x0002 #define GL_POLYGON 0x0009 Defined names (for constants) Begin with GL_ Use every capital letter Use underscores to separate words Operaciones "bitwise comprehensive or administrator" glutInitDisplayMode ( GLUT_RGB | GLUT_SINGLE ) A. García-Alonso

Slide 10

Sistema gobernado por eventos Event (evento) : teclado, ratón, pasar por, and so forth. C allback : nombre, tipo, interfaz Bind : a callback to an occasion (asociar función y evento) Main( ) Inicialización Loop (bucle) dispatch occasions (proceso eventos) Post an occasion A. García-Alonso

Slide 11

Ejemplo 010 : Dibuja 3 segmentos Cfr. OpenGLPrimer 010 Dibuja tres líneas OpenGL capacities and (ideas) g l excess Sistema gobernado por eventos : estructura " principle " Inicialización Creación ventana contenga el drawingarea de soporte Asociar función ( callback ) an un evento (teclado, ratón, and so forth.) Evento " drawingarea uncovered " Ajustar algún estado de "gl" Bucle proceso eventos A. García-Alonso

Slide 12

... ( gl ) unadulterated "output", yet needs association with show glClear (order) glClearColor (state) glBegin glEnd glVertex * (geometry) glColor * (attribute, state) glFlush, glFinish (command stack & handling) (debbuging) (aspect proportion) (mapping from displaying coord. to show organizes) (need for a change administration framework) A. García-Alonso

Slide 13

... (excess) W indow framework free administration " window " administration glutInitDisplayMode l ( GLUT_RGB | GLUT_SINGLE ); glutInitWindowSize( WIDTH, HEIGHT ); glutInitWindowPosition ( 550, 350 ); glutCreateWindow("Basic Draw"); " input " : e vent taking care of like : The X Window framework, MOTIF, MFF, ... (occasion) void Display(void); (callback work) glutDisplayFunc( Display ); (binding occasion & callback) void Display ( void ) glutMainLoop(); (dispatching occasions) A. García-Alonso

Slide 14

Ejemplo 011 : Teclado Exit from an application Profundizar en el concepto de CallBack gl glLineWidth excess glutPostRedisplay () glutKeyboardFunc( DoIt ) void DoIt ( unsigned scorch key, int x, int y) DoIt puede tomar cualquier nombre Sin ban, al declarar y definir la función, su tipo y el de sus parámetros debe ser forzosamente el que se indica A. García-Alonso

Slide 15

glutPostRedisplay posts glutDisplayFunc ties D isplay draws Diferenciar estos tres métodos A. García-Alonso

Slide 16

Primitivas GL_POINTS GL_LINES GL_LINE_LOOP GL_LINE_STRIP GL_TRIANGLES GL_TRIANGLE_STRIP GL_TRIANGLE_FAN GL_QUADS GL_QUAD_STRIP GL_POLYGON A. García-Alonso

Slide 17

... Otras primitivas disponibles ( glu library ) Polígonos : cóncavos, múltiplemente conexos Objetos (uso auxiliar, no para crear modelos) Evaluators, NURBS, and so forth Vertex clusters ( veremos después de los atributos ) Display records ( veremos después de los atributos ) Texto No existe primitiva Usar texturas, problema associating A. García-Alonso

Slide 18

Atributos glPointSize(G L drift) glLineWidth ( GLfloat ) glLineStipple(G L int calculate, G L ushort design) glEnable( GL_LINE_STIPPLE ) glPolygonMode( confront, mode ) GL_FRONT GL_BACK GL_FRONT_AND_BACK GL_POINT GL_LINE GL_FILL glPolygonStipple (enable) " straightforwardness " glEdgeFlag* mode Line, splitted sunken polygons glColor* glMaterial* A. García-Alonso

Slide 19

Variables de estado Valor de defecto Valor genuine Gestión en una aplicación o en un módulo reutilizable Valor de defecto en una aplicación dada Política de cambios de estado en un módulo de programming glPushAttrib( ored veil )/glPopAttrib () Permiten salvar grupos de atributos A. García-Alonso

Slide 20

GL_ACCUM_BUFFER_BIT accum-cushion GL_ALL_ATTRIB_BITS - GL_COLOR_BUFFER_BIT shading cradle GL_CURRENT_BIT current GL_DEPTH_BUFFER_BIT profundity support GL_ENABLE_BIT empower GL_EVAL_BIT eval GL_FOG_BIT haze GL_HINT_BIT imply GL_LIGHTING_BIT lighting GL_LINE_BIT line GL_LIST_BIT list GL_PIXEL_MODE_BIT pixel GL_POINT_BIT point GL_POLYGON_BIT polygon GL_POLYGON_STIPPLE_BIT polygon-stipple GL_SCISSOR_BIT scissor GL_STENCIL_BUFFER_BIT stencil-cradle GL_TEXTURE_BIT surface GL_TRANSFORM_BIT change GL_VIEWPORT_BIT viewport Grupos de atributos A. García-Alonso

Slide 21

Agrupamiento Vertex exhibits Evitar pérdidas de tiempo en llamadas a funciones Display Lists Ídem La información puede estar ya más procesada Almacenar en el procesador gráfico para aliviar el transport Workstations PCs A. García-Alonso

Slide 22

Command Purpose of Command Reference glVertex*() set vertex facilitates Chapter 2 glColor*() set current shading Chapter 5 glIndex*() set current shading file Chapter 5 glNormal*() set ordinary vector organizes Chapter 2 glEvalCoord*() create arranges Chapter 11 glCallList(), glCallLists() execute show list(s) Chapter 4 glTexCoord*() set surface directions Chapter 9 glEdgeFlag*() control drawing of edges Chapter 2 glMaterial*() set material properties Chapter 6 Comandos entre : glBegin-glEnd A. García-Alonso

Slide 23

Ejemplo 020 : Window to viewport Exit from an application gl glMatrixMode glLoadIdentity v iewport glOrtho glGetIntegerv overabundance glutReshapeFunc( myNewSize ) void myNewSize( int w, int h ) A. García-Alonso

Slide 24

Implementación en OpenGL Materiales Fuentes de luz Parámetros de control Texturas Bucle de visualización interactiva Aspectos prácticos estructuras de datos Modelos geométricos Materiales Luces A. García-Alonso

Slide 25

Materiales A. García-Alonso

Slide 26

Fuentes de luz A. García-Alonso

Slide 27

Parámetros de control A. García-Alonso

Slide 28

Texturas Textura superficies Reducir detalles geométricos Iluminación precalculada (texturas, texturas animadas) A. García-Alonso

Slide 29

Bucle de visualización A. García-Alonso

Slide 30

Estructuras geométricas A. García-Alonso

Slide 31

Estructuras materiales A. García-Alonso

Slide 32

Estructuras luces Limitadas (8) Coste de las luces Luz en la cabeza VRML : radio de acción de las luces posicionales y focos A. García-Alonso

Slide 33

Materiales (parámetros) Definir las constantes usadas para distintos materiales: hierro, acero, plata, oro A. García-Alonso

Recommended
View more...