SlideShare una empresa de Scribd logo
1 de 20
Descargar para leer sin conexión
Primitivas Básicas
Dibujo en 3D
• Las librerías gráficas antiguas permiten trabajar con puntos 2D (pixels)
• OpenGL no trabaja con coordenadas de pantalla, sino con coordenadas
posicionales dentro del volumen de visualización
• El trasladar toda la escena 3D a la pantalla se realiza automáticamente
x
y
z
glOrtho(-100,100,-100,100,100,-100)
(0,100,0)
(100,0,0)
(0,-100,0)
(-100,0,0)
Dibujo de puntos
glBegin(GL_POINTS);
glVertex3s (0, 0, 50);
glVertex2f (-50.0, 50.0);
glEnd();
x
y
z
(-50,50,0)
(0,0,50)
Ajuste del tamaño del punto
• El tamaño por defecto de un punto es 1 pixel
• Podemos cambiarlo usando:
void glPointSize (Glfloat tamaño)
• Para conocer qué tamaños soporta nuestra distribución:
Glfloat dimen[2]; // almacena el rango de tamaños
Glfloat paso; // almacena los incrementos de tamaño
glGetFloatv(GL_POINT_SIZE_GRANULARITY, &paso);
glGetFloatv(GL_POINT_SIZE_RANGE, dimen);
• Para mejorar la calidad de los puntos:
void glEnable (GL_POINT_SMOOTH)
Dibujo de líneas sueltas
glBegin(GL_LINES);
glVertex3s (0, 0, 50);
glVertex2f (-50.0, 50.0);
glVertex3s (0, 100, 0);
glVertex3s (-100, 100, -100);
glEnd();
x
y
z
(-50,50,0)
(0,0,50)
(0,100,0)
(-100,100,-100)
Dibujo de polilíneas
glBegin(GL_LINES_STRIP);
glVertex3s (0, 0, 50);
glVertex2f (-50.0, 50.0);
glVertex3s (0, 100, 0);
glVertex3s (-100, 100, -100);
glEnd();
x
y
z
(-50,50,0)
(0,0,50)
(0,100,0)
(-100,100,-100)
• Para cerrar la polilínea:
glBegin(GL_LINE_LOOP);
...
glEnd();
Ajuste del grosor de línea
• El grosor por defecto es 1 pixel
• Podemos cambiarlo usando:
void glLineWidth (Glfloat ancho)
• Para conocer qué tamaños soporta nuestra distribución:
Glfloat dimen[2]; // almacena el rango de anchos posibles
Glfloat paso; // almacena los incrementos de ancho
glGetFloatv(GL_LINE_WIDTH_GRANULARITY, &paso);
glGetFloatv(GL_LINE_WIDTH_RANGE, dimen);
Patrones de líneas
• Para dibujar líneas discontinuas primero hay que activar el modo:
void glEnable (GL_LINE_STIPPLE)
• Luego se indica el patrón:
void glLineStipple (GLint factor, GLushort patron)
0101010101010101
patron = 0x 5 5 5 5
factor = 3
Dibujo de triángulos
glBegin(GL_TRIANGLES);
glVertex2f (-50.0, 50.0);
glVertex3s (0, 100, 0);
glVertex3s (-100,100,-100);
...
glEnd();
• A partir de ahora, las líneas representan polígonos --> áreas
• La mayoría del hardware 3D está optimizado para triángulos
x
y
z
(0,100,0)
(-100,100,-100)
(-50,50,0)
Caras frontales y posteriores
glBegin(GL_TRIANGLES);
glVertex3s (); // vértice V0
glVertex3s (); // vértice V1
glVertex3s (); // vértice V2
glVertex3s (); // vértice V3
glVertex3s (); // vértice V4
glVertex3s (); // vértice V5
...
glEnd();
V0
V2
V1
V3
V4
V5
• El sentido anti-horario indica cuál es la cara frontal
• Cada cara puede tener propiedades diferentes
Sentido
antihorario
Sentido
horario
• Para que el sentido sea al revés:
void glFrontFace (GL_CW)
Modos de dibujo
• Por defecto, los polígonos se dibujan sólidos (sin aristas)
• Otras opciones son: hueco con aristas o sólo mostrando los vértices
• Cada cara puede mostrarse de forma diferente
void glPolygonMode (GLenum cara, GLenum modo)
GL_FRONT
GL_BACKGL_FRONT_AND_BACK
GL_POINT
GL_LINE
GL_FILL
glPolygonMode (GL_FRONT, GL_FILL) glPolygonMode (GL_BACK, GL_LINE)
Mallas de triángulos
• Para dibujar tiras de triángulos:
glBegin(GL_TRIANGLE_STRIP);
glVertex3s (); // vértice V0
glVertex3s (); // vértice V1
glVertex3s (); // vértice V2
glVertex3s (); // vértice V3
glVertex3s (); // vértice V4
...
glEnd();
V0
V2
V1
V0
V2
V1
V3
V0
V2
V1
V3
V4
• Ventajas:
– sólo se especifica un vértice por triángulo
– mejores efectos de iluminación al sombrear
la superficie total
Abanicos de triángulos
• Para dibujar abanicos de triángulos:
glBegin(GL_TRIANGLE_FAN);
glVertex3s (); // vértice V0
glVertex3s (); // vértice V1
glVertex3s (); // vértice V2
glVertex3s (); // vértice V3
glVertex3s (); // vértice V4
...
glEnd();
V0
V2
V1
V0
V2
V1
V3
• El vértice V0 es común a todos los
triángulos
V0
V2
V1
V3
V4
Cuadriláteros
glBegin(GL_QUADS);
glVertex2s (-50, 50); //V0
glVertex2s (100, 0); //V1
glVertex2s (100,100); //V2
glVertex2s (0,100); //V3
...
glEnd();
• Existe hardware de aceleración
para polígonos de más de 3
lados
x
y
z
(0,100,0)
(100, 100,0)
(-50,50,0)
(100, 0,0)
• Las caras frontales siguen siendo
en el sentido anti-horario
V0
V2
V1
V3
Mallas de cuadriláteros
• Para dibujar tiras de cuadriláteros:
glBegin(GL_QUAD_STRIP);
glVertex3s (); // vértice V0
glVertex3s (); // vértice V1
glVertex3s (); // vértice V2
glVertex3s (); // vértice V3
glVertex3s (); // vértice V4
glVertex3s (); // vértice V5
...
glEnd();
• Ventajas:
– sólo se especifican dos vértices
por polígono
– mejores efectos de iluminación
al sombrear la superficie total
V0
V2
V1
V3
V0
V3
V1
V2
V5
V4
Polígonos generales
glBegin(GL_POLYGON);
glVertex2s (-50, 50); //V0
glVertex2s (0, 0); //V1
glVertex2s (100,0); //V2
glVertex2s (100,100); //V3
glVertex2s (0,100); //V4
...
glEnd();
• Para cualquier número de lados
• Las caras frontales siguen siendo
en el sentido anti-horario
x
y
z
(0,100,0)
(100, 100,0)
(-50,50,0)
(100, 0,0)(0,0,0)
V0
V2V1
V3
V4
Relleno de polígonos
• Para rellenar con un patrón primero hay que activar el modo:
void glEnable (GL_POLYGON_STIPPLE)
• Luego se indica el patrón de relleno:
void glPolygonStipple (GLubyte bitmap[32x4])
= 0x0A 0x94
Reglas para los polígonos
• Debido a la optimización de los algoritmos internos de OpenGL, existen
tres restricciones para los polígonos:
– Todos los polígonos deben ser planares
– Las aristas no deben intersectarse
– Los polígonos deben ser convexos
Polígonos
válidos Polígonos
no válidos
Subdivisión y bordes
• Un polígono cóncavo puede
representarse como varios convexos
• Si se dibuja relleno, los bordes no se
apreciarán
• Si se dibuja en alambre, podemos
indicar qué aristas no queremos ver:
glEdgeFlag(TRUE);
// a partir de aquí, las aristas
son visibles
glVertex3s();
...
glEdgeFlag(FALSE); // a partir de
aquí, las aristas no se ven
glVertex3s();
...
Visualización de objetos 3D
• Las superficies de los objetos estarán formados por varias primitivas
• Para resolver el problema de visibilidad
glEnable (GL_DEPTH_TEST)
glClear (GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT)
• Para desactivar una opción activada con glEnable se usa:
glDisable (GL_CULL_FACE)
• Para acelera el proceso, podemos indicar
que no se visualizen las caras traseras de
los polígonos
glEnable (GL_CULL_FACE)

Más contenido relacionado

La actualidad más candente

Funciones De Dos Variables
Funciones De Dos VariablesFunciones De Dos Variables
Funciones De Dos VariablesHector Funes
 
4. ARREGLOS C++.pptx
4. ARREGLOS C++.pptx4. ARREGLOS C++.pptx
4. ARREGLOS C++.pptxDieguess
 
Programaci un+concurrente+en+java
Programaci un+concurrente+en+javaProgramaci un+concurrente+en+java
Programaci un+concurrente+en+javaIsaias Teran Merino
 
Propiedades de la integral definida
Propiedades de la integral definidaPropiedades de la integral definida
Propiedades de la integral definidaMirna Cuautle
 
Ejemplo del Método de Falsa Posición
Ejemplo del Método de Falsa PosiciónEjemplo del Método de Falsa Posición
Ejemplo del Método de Falsa PosiciónDaniela Medina
 
Perceptron y Adaline
Perceptron y AdalinePerceptron y Adaline
Perceptron y AdalineSpacetoshare
 
Ejemplo de Normalización con Modelo Entidad Relación y Modelo Relacional
Ejemplo de Normalización con Modelo Entidad Relación y Modelo RelacionalEjemplo de Normalización con Modelo Entidad Relación y Modelo Relacional
Ejemplo de Normalización con Modelo Entidad Relación y Modelo RelacionalDamelys Bracho
 
ejercicios-resueltos-integrales-dobles-y-triples-2011
ejercicios-resueltos-integrales-dobles-y-triples-2011ejercicios-resueltos-integrales-dobles-y-triples-2011
ejercicios-resueltos-integrales-dobles-y-triples-2011Carlos Farley Zamudio Melo
 
Métodos numéricos para ecuaciones diferenciales ordinarias
Métodos numéricos para ecuaciones diferenciales ordinariasMétodos numéricos para ecuaciones diferenciales ordinarias
Métodos numéricos para ecuaciones diferenciales ordinariasJaime Martínez Verdú
 
REPRESENTACION DE INFORMACION EN COMPUTADORAS
REPRESENTACION DE INFORMACION EN COMPUTADORASREPRESENTACION DE INFORMACION EN COMPUTADORAS
REPRESENTACION DE INFORMACION EN COMPUTADORASGustavo Salazar Loor
 
Metodo Tabular Integracion Por Partes
Metodo Tabular Integracion Por PartesMetodo Tabular Integracion Por Partes
Metodo Tabular Integracion Por PartesLISHAVELY
 
Aplicación e importancia de las funciones trigonométricas e hiperbólicas y s...
Aplicación e importancia  de las funciones trigonométricas e hiperbólicas y s...Aplicación e importancia  de las funciones trigonométricas e hiperbólicas y s...
Aplicación e importancia de las funciones trigonométricas e hiperbólicas y s...dinorkis
 
Calculo diferencial, Límites y Continuidad.
Calculo diferencial, Límites y Continuidad.Calculo diferencial, Límites y Continuidad.
Calculo diferencial, Límites y Continuidad.Daniel Ojeda
 

La actualidad más candente (20)

Funciones De Dos Variables
Funciones De Dos VariablesFunciones De Dos Variables
Funciones De Dos Variables
 
Tema 4 integración numérica
Tema 4 integración numéricaTema 4 integración numérica
Tema 4 integración numérica
 
4. ARREGLOS C++.pptx
4. ARREGLOS C++.pptx4. ARREGLOS C++.pptx
4. ARREGLOS C++.pptx
 
Programaci un+concurrente+en+java
Programaci un+concurrente+en+javaProgramaci un+concurrente+en+java
Programaci un+concurrente+en+java
 
Propiedades de la integral definida
Propiedades de la integral definidaPropiedades de la integral definida
Propiedades de la integral definida
 
Teoria de limites
Teoria de limitesTeoria de limites
Teoria de limites
 
Ejemplo del Método de Falsa Posición
Ejemplo del Método de Falsa PosiciónEjemplo del Método de Falsa Posición
Ejemplo del Método de Falsa Posición
 
áReas con integrales
áReas con integralesáReas con integrales
áReas con integrales
 
Perceptron y Adaline
Perceptron y AdalinePerceptron y Adaline
Perceptron y Adaline
 
Diferenciacion numerica
Diferenciacion numericaDiferenciacion numerica
Diferenciacion numerica
 
Ejercicio 10
Ejercicio 10Ejercicio 10
Ejercicio 10
 
Ejemplo de Normalización con Modelo Entidad Relación y Modelo Relacional
Ejemplo de Normalización con Modelo Entidad Relación y Modelo RelacionalEjemplo de Normalización con Modelo Entidad Relación y Modelo Relacional
Ejemplo de Normalización con Modelo Entidad Relación y Modelo Relacional
 
ejercicios-resueltos-integrales-dobles-y-triples-2011
ejercicios-resueltos-integrales-dobles-y-triples-2011ejercicios-resueltos-integrales-dobles-y-triples-2011
ejercicios-resueltos-integrales-dobles-y-triples-2011
 
Métodos numéricos para ecuaciones diferenciales ordinarias
Métodos numéricos para ecuaciones diferenciales ordinariasMétodos numéricos para ecuaciones diferenciales ordinarias
Métodos numéricos para ecuaciones diferenciales ordinarias
 
Calcuclo integral pasito a paso i
Calcuclo integral pasito a paso iCalcuclo integral pasito a paso i
Calcuclo integral pasito a paso i
 
REPRESENTACION DE INFORMACION EN COMPUTADORAS
REPRESENTACION DE INFORMACION EN COMPUTADORASREPRESENTACION DE INFORMACION EN COMPUTADORAS
REPRESENTACION DE INFORMACION EN COMPUTADORAS
 
Funciones Iii
Funciones   IiiFunciones   Iii
Funciones Iii
 
Metodo Tabular Integracion Por Partes
Metodo Tabular Integracion Por PartesMetodo Tabular Integracion Por Partes
Metodo Tabular Integracion Por Partes
 
Aplicación e importancia de las funciones trigonométricas e hiperbólicas y s...
Aplicación e importancia  de las funciones trigonométricas e hiperbólicas y s...Aplicación e importancia  de las funciones trigonométricas e hiperbólicas y s...
Aplicación e importancia de las funciones trigonométricas e hiperbólicas y s...
 
Calculo diferencial, Límites y Continuidad.
Calculo diferencial, Límites y Continuidad.Calculo diferencial, Límites y Continuidad.
Calculo diferencial, Límites y Continuidad.
 

Destacado

Método de la bisección
Método de la bisecciónMétodo de la bisección
Método de la bisecciónalan moreno
 
Actuadores Eléctricos
Actuadores Eléctricos Actuadores Eléctricos
Actuadores Eléctricos alan moreno
 
Base de datos postgresql
Base de datos postgresqlBase de datos postgresql
Base de datos postgresqlalan moreno
 
4.metodo de la biseccion
4.metodo de la biseccion4.metodo de la biseccion
4.metodo de la biseccionrjvillon
 
Método de la regla falsa (o metodo de la falsa posición) MN
Método de la regla falsa (o metodo de la falsa posición) MNMétodo de la regla falsa (o metodo de la falsa posición) MN
Método de la regla falsa (o metodo de la falsa posición) MNTensor
 
Algebra lineal (2ª edición) stanley grossman
Algebra lineal (2ª edición) stanley grossmanAlgebra lineal (2ª edición) stanley grossman
Algebra lineal (2ª edición) stanley grossmanalan moreno
 
Raices de ecuaciones en excel
Raices de ecuaciones en excelRaices de ecuaciones en excel
Raices de ecuaciones en excelTensor
 
Metodo de la bisección
Metodo de la bisecciónMetodo de la bisección
Metodo de la bisecciónTensor
 
Métodos de Punto Fijo y Regla Falsa
Métodos de Punto Fijo y Regla FalsaMétodos de Punto Fijo y Regla Falsa
Métodos de Punto Fijo y Regla FalsaVictor Reyes
 
Hronisks tubulointersticiāls nefrīts
Hronisks tubulointersticiāls nefrītsHronisks tubulointersticiāls nefrīts
Hronisks tubulointersticiāls nefrītsIv Vi
 
Manual php5 basico
Manual php5 basicoManual php5 basico
Manual php5 basicoalan moreno
 
Introducción a php
Introducción a phpIntroducción a php
Introducción a phpalan moreno
 
Herramientas case snap
Herramientas case snapHerramientas case snap
Herramientas case snapalan moreno
 
Embriología desarrollo ocular vascular
Embriología desarrollo ocular   vascularEmbriología desarrollo ocular   vascular
Embriología desarrollo ocular vascularCesar Torres
 

Destacado (20)

Método de la bisección
Método de la bisecciónMétodo de la bisección
Método de la bisección
 
Actuadores Eléctricos
Actuadores Eléctricos Actuadores Eléctricos
Actuadores Eléctricos
 
Base de datos postgresql
Base de datos postgresqlBase de datos postgresql
Base de datos postgresql
 
4.metodo de la biseccion
4.metodo de la biseccion4.metodo de la biseccion
4.metodo de la biseccion
 
Método de la regla falsa (o metodo de la falsa posición) MN
Método de la regla falsa (o metodo de la falsa posición) MNMétodo de la regla falsa (o metodo de la falsa posición) MN
Método de la regla falsa (o metodo de la falsa posición) MN
 
Algebra lineal (2ª edición) stanley grossman
Algebra lineal (2ª edición) stanley grossmanAlgebra lineal (2ª edición) stanley grossman
Algebra lineal (2ª edición) stanley grossman
 
Raices de ecuaciones en excel
Raices de ecuaciones en excelRaices de ecuaciones en excel
Raices de ecuaciones en excel
 
Metodo de la bisección
Metodo de la bisecciónMetodo de la bisección
Metodo de la bisección
 
Ejemplos1
Ejemplos1Ejemplos1
Ejemplos1
 
Manual batch
Manual batchManual batch
Manual batch
 
Metodo taller 3
Metodo taller 3Metodo taller 3
Metodo taller 3
 
Métodos de Punto Fijo y Regla Falsa
Métodos de Punto Fijo y Regla FalsaMétodos de Punto Fijo y Regla Falsa
Métodos de Punto Fijo y Regla Falsa
 
OAI and OAI-PMH
OAI and OAI-PMHOAI and OAI-PMH
OAI and OAI-PMH
 
LOGO
LOGOLOGO
LOGO
 
Hronisks tubulointersticiāls nefrīts
Hronisks tubulointersticiāls nefrītsHronisks tubulointersticiāls nefrīts
Hronisks tubulointersticiāls nefrīts
 
Manual php5 basico
Manual php5 basicoManual php5 basico
Manual php5 basico
 
Introducción a php
Introducción a phpIntroducción a php
Introducción a php
 
Herramientas case snap
Herramientas case snapHerramientas case snap
Herramientas case snap
 
Embriología desarrollo ocular vascular
Embriología desarrollo ocular   vascularEmbriología desarrollo ocular   vascular
Embriología desarrollo ocular vascular
 
EMBRIOLOGIA DESARROLLO OJO Y OIDO
EMBRIOLOGIA DESARROLLO OJO Y OIDOEMBRIOLOGIA DESARROLLO OJO Y OIDO
EMBRIOLOGIA DESARROLLO OJO Y OIDO
 

Similar a Primitivas

Similar a Primitivas (18)

Manual de prácticas belmonte & ponce
Manual de prácticas belmonte & ponce Manual de prácticas belmonte & ponce
Manual de prácticas belmonte & ponce
 
Manual de prácticas rivera y ruiz
Manual de prácticas rivera y ruizManual de prácticas rivera y ruiz
Manual de prácticas rivera y ruiz
 
Manual
ManualManual
Manual
 
Programación Open GL ES en iPhone e iPod touch
Programación Open GL ES en iPhone e iPod touchProgramación Open GL ES en iPhone e iPod touch
Programación Open GL ES en iPhone e iPod touch
 
Renee opengl karla
Renee opengl karlaRenee opengl karla
Renee opengl karla
 
Estela y naye
Estela y nayeEstela y naye
Estela y naye
 
Mini introopengl
Mini introopenglMini introopengl
Mini introopengl
 
Manual de actividades
Manual de actividadesManual de actividades
Manual de actividades
 
Intro opengl
Intro openglIntro opengl
Intro opengl
 
Proyecto de reneya terminado
Proyecto de reneya terminadoProyecto de reneya terminado
Proyecto de reneya terminado
 
Proyecto de reneya terminado
Proyecto de reneya terminadoProyecto de reneya terminado
Proyecto de reneya terminado
 
Trabajo opengl
Trabajo openglTrabajo opengl
Trabajo opengl
 
Proyecto de rene
Proyecto de reneProyecto de rene
Proyecto de rene
 
Introducción a las librerías PyGame y PyOpenGL
Introducción a las librerías PyGame y PyOpenGLIntroducción a las librerías PyGame y PyOpenGL
Introducción a las librerías PyGame y PyOpenGL
 
Opengl
OpenglOpengl
Opengl
 
Manual open gl
Manual open glManual open gl
Manual open gl
 
Manual open gl
Manual open glManual open gl
Manual open gl
 
Manual de practicas de Open GL
Manual de practicas de Open GLManual de practicas de Open GL
Manual de practicas de Open GL
 

Más de alan moreno

Poo y mvc en php
Poo y mvc en phpPoo y mvc en php
Poo y mvc en phpalan moreno
 
Ejercicios resueltos en c
Ejercicios resueltos en cEjercicios resueltos en c
Ejercicios resueltos en calan moreno
 
Ataques a-bases-de-datos
Ataques a-bases-de-datosAtaques a-bases-de-datos
Ataques a-bases-de-datosalan moreno
 
Batch file programming
Batch file programmingBatch file programming
Batch file programmingalan moreno
 
Manual de lenguaje c++
Manual de lenguaje c++Manual de lenguaje c++
Manual de lenguaje c++alan moreno
 
Manual completo python
Manual completo pythonManual completo python
Manual completo pythonalan moreno
 
CCN3Switching_lab_5_5_2
CCN3Switching_lab_5_5_2CCN3Switching_lab_5_5_2
CCN3Switching_lab_5_5_2alan moreno
 
Uso de los corchetes [ ]
Uso de los corchetes [  ]Uso de los corchetes [  ]
Uso de los corchetes [ ]alan moreno
 
Sensores-parte iii.presion
 Sensores-parte iii.presion Sensores-parte iii.presion
Sensores-parte iii.presionalan moreno
 
Diferenciación por 3 y 5 puntos
Diferenciación por 3 y 5 puntosDiferenciación por 3 y 5 puntos
Diferenciación por 3 y 5 puntosalan moreno
 
El huerto familiar biointensivo
El huerto familiar biointensivoEl huerto familiar biointensivo
El huerto familiar biointensivoalan moreno
 
Formatos de imagnes
Formatos de imagnesFormatos de imagnes
Formatos de imagnesalan moreno
 
Formatos de imagnes
Formatos de imagnesFormatos de imagnes
Formatos de imagnesalan moreno
 
Numero pseudoaleatorio
Numero pseudoaleatorioNumero pseudoaleatorio
Numero pseudoaleatorioalan moreno
 
Acceso directo a memoria
Acceso directo a memoriaAcceso directo a memoria
Acceso directo a memoriaalan moreno
 

Más de alan moreno (19)

Poo y mvc en php
Poo y mvc en phpPoo y mvc en php
Poo y mvc en php
 
html5-css3
html5-css3html5-css3
html5-css3
 
Ejercicios resueltos en c
Ejercicios resueltos en cEjercicios resueltos en c
Ejercicios resueltos en c
 
Ataques a-bases-de-datos
Ataques a-bases-de-datosAtaques a-bases-de-datos
Ataques a-bases-de-datos
 
Batch file programming
Batch file programmingBatch file programming
Batch file programming
 
Batch
BatchBatch
Batch
 
Manual de lenguaje c++
Manual de lenguaje c++Manual de lenguaje c++
Manual de lenguaje c++
 
Manual completo python
Manual completo pythonManual completo python
Manual completo python
 
CCN3Switching_lab_5_5_2
CCN3Switching_lab_5_5_2CCN3Switching_lab_5_5_2
CCN3Switching_lab_5_5_2
 
Uso de los corchetes [ ]
Uso de los corchetes [  ]Uso de los corchetes [  ]
Uso de los corchetes [ ]
 
Sensores-parte iii.presion
 Sensores-parte iii.presion Sensores-parte iii.presion
Sensores-parte iii.presion
 
Actuadores
ActuadoresActuadores
Actuadores
 
Diferenciación por 3 y 5 puntos
Diferenciación por 3 y 5 puntosDiferenciación por 3 y 5 puntos
Diferenciación por 3 y 5 puntos
 
El huerto familiar biointensivo
El huerto familiar biointensivoEl huerto familiar biointensivo
El huerto familiar biointensivo
 
modelo OSI
modelo OSImodelo OSI
modelo OSI
 
Formatos de imagnes
Formatos de imagnesFormatos de imagnes
Formatos de imagnes
 
Formatos de imagnes
Formatos de imagnesFormatos de imagnes
Formatos de imagnes
 
Numero pseudoaleatorio
Numero pseudoaleatorioNumero pseudoaleatorio
Numero pseudoaleatorio
 
Acceso directo a memoria
Acceso directo a memoriaAcceso directo a memoria
Acceso directo a memoria
 

Último

aCARGA y FUERZA UNI 19 marzo 2024-22.ppt
aCARGA y FUERZA UNI 19 marzo 2024-22.pptaCARGA y FUERZA UNI 19 marzo 2024-22.ppt
aCARGA y FUERZA UNI 19 marzo 2024-22.pptCRISTOFERSERGIOCANAL
 
¿QUE SON LOS AGENTES FISICOS Y QUE CUIDADOS TENER.pptx
¿QUE SON LOS AGENTES FISICOS Y QUE CUIDADOS TENER.pptx¿QUE SON LOS AGENTES FISICOS Y QUE CUIDADOS TENER.pptx
¿QUE SON LOS AGENTES FISICOS Y QUE CUIDADOS TENER.pptxguillermosantana15
 
Curso intensivo de soldadura electrónica en pdf
Curso intensivo de soldadura electrónica  en pdfCurso intensivo de soldadura electrónica  en pdf
Curso intensivo de soldadura electrónica en pdfFernandaGarca788912
 
CHARLA DE INDUCCIÓN SEGURIDAD Y SALUD OCUPACIONAL
CHARLA DE INDUCCIÓN SEGURIDAD Y SALUD OCUPACIONALCHARLA DE INDUCCIÓN SEGURIDAD Y SALUD OCUPACIONAL
CHARLA DE INDUCCIÓN SEGURIDAD Y SALUD OCUPACIONALKATHIAMILAGRITOSSANC
 
Comite Operativo Ciberseguridad 012020.pptx
Comite Operativo Ciberseguridad 012020.pptxComite Operativo Ciberseguridad 012020.pptx
Comite Operativo Ciberseguridad 012020.pptxClaudiaPerez86192
 
07 MECANIZADO DE CONTORNOS para torno cnc universidad catolica
07 MECANIZADO DE CONTORNOS para torno cnc universidad catolica07 MECANIZADO DE CONTORNOS para torno cnc universidad catolica
07 MECANIZADO DE CONTORNOS para torno cnc universidad catolicalf1231
 
Principales aportes de la carrera de William Edwards Deming
Principales aportes de la carrera de William Edwards DemingPrincipales aportes de la carrera de William Edwards Deming
Principales aportes de la carrera de William Edwards DemingKevinCabrera96
 
Una estrategia de seguridad en la nube alineada al NIST
Una estrategia de seguridad en la nube alineada al NISTUna estrategia de seguridad en la nube alineada al NIST
Una estrategia de seguridad en la nube alineada al NISTFundación YOD YOD
 
tema05 estabilidad en barras mecanicas.pdf
tema05 estabilidad en barras mecanicas.pdftema05 estabilidad en barras mecanicas.pdf
tema05 estabilidad en barras mecanicas.pdfvictoralejandroayala2
 
NTP- Determinación de Cloruros en suelos y agregados (1) (1).pptx
NTP- Determinación de Cloruros  en suelos y agregados (1) (1).pptxNTP- Determinación de Cloruros  en suelos y agregados (1) (1).pptx
NTP- Determinación de Cloruros en suelos y agregados (1) (1).pptxBRAYANJOSEPTSANJINEZ
 
nom-028-stps-2012-nom-028-stps-2012-.pdf
nom-028-stps-2012-nom-028-stps-2012-.pdfnom-028-stps-2012-nom-028-stps-2012-.pdf
nom-028-stps-2012-nom-028-stps-2012-.pdfDiegoMadrigal21
 
Procesos-de-la-Industria-Alimentaria-Envasado-en-la-Produccion-de-Alimentos.pptx
Procesos-de-la-Industria-Alimentaria-Envasado-en-la-Produccion-de-Alimentos.pptxProcesos-de-la-Industria-Alimentaria-Envasado-en-la-Produccion-de-Alimentos.pptx
Procesos-de-la-Industria-Alimentaria-Envasado-en-la-Produccion-de-Alimentos.pptxJuanPablo452634
 
CLASe número 4 fotogrametria Y PARALAJE.pptx
CLASe número 4 fotogrametria Y PARALAJE.pptxCLASe número 4 fotogrametria Y PARALAJE.pptx
CLASe número 4 fotogrametria Y PARALAJE.pptxbingoscarlet
 
Sesión 02 TIPOS DE VALORIZACIONES CURSO Cersa
Sesión 02 TIPOS DE VALORIZACIONES CURSO CersaSesión 02 TIPOS DE VALORIZACIONES CURSO Cersa
Sesión 02 TIPOS DE VALORIZACIONES CURSO CersaXimenaFallaLecca1
 
DOCUMENTO PLAN DE RESPUESTA A EMERGENCIAS MINERAS
DOCUMENTO PLAN DE RESPUESTA A EMERGENCIAS MINERASDOCUMENTO PLAN DE RESPUESTA A EMERGENCIAS MINERAS
DOCUMENTO PLAN DE RESPUESTA A EMERGENCIAS MINERASPersonalJesusGranPod
 
Reporte de simulación de flujo del agua en un volumen de control MNVA.pdf
Reporte de simulación de flujo del agua en un volumen de control MNVA.pdfReporte de simulación de flujo del agua en un volumen de control MNVA.pdf
Reporte de simulación de flujo del agua en un volumen de control MNVA.pdfMikkaelNicolae
 
Flujo multifásico en tuberias de ex.pptx
Flujo multifásico en tuberias de ex.pptxFlujo multifásico en tuberias de ex.pptx
Flujo multifásico en tuberias de ex.pptxEduardoSnchezHernnde5
 
Calavera calculo de estructuras de cimentacion.pdf
Calavera calculo de estructuras de cimentacion.pdfCalavera calculo de estructuras de cimentacion.pdf
Calavera calculo de estructuras de cimentacion.pdfyoseka196
 
Presentación electricidad y magnetismo.pptx
Presentación electricidad y magnetismo.pptxPresentación electricidad y magnetismo.pptx
Presentación electricidad y magnetismo.pptxYajairaMartinez30
 
Voladura Controlada Sobrexcavación (como se lleva a cabo una voladura)
Voladura Controlada  Sobrexcavación (como se lleva a cabo una voladura)Voladura Controlada  Sobrexcavación (como se lleva a cabo una voladura)
Voladura Controlada Sobrexcavación (como se lleva a cabo una voladura)ssuser563c56
 

Último (20)

aCARGA y FUERZA UNI 19 marzo 2024-22.ppt
aCARGA y FUERZA UNI 19 marzo 2024-22.pptaCARGA y FUERZA UNI 19 marzo 2024-22.ppt
aCARGA y FUERZA UNI 19 marzo 2024-22.ppt
 
¿QUE SON LOS AGENTES FISICOS Y QUE CUIDADOS TENER.pptx
¿QUE SON LOS AGENTES FISICOS Y QUE CUIDADOS TENER.pptx¿QUE SON LOS AGENTES FISICOS Y QUE CUIDADOS TENER.pptx
¿QUE SON LOS AGENTES FISICOS Y QUE CUIDADOS TENER.pptx
 
Curso intensivo de soldadura electrónica en pdf
Curso intensivo de soldadura electrónica  en pdfCurso intensivo de soldadura electrónica  en pdf
Curso intensivo de soldadura electrónica en pdf
 
CHARLA DE INDUCCIÓN SEGURIDAD Y SALUD OCUPACIONAL
CHARLA DE INDUCCIÓN SEGURIDAD Y SALUD OCUPACIONALCHARLA DE INDUCCIÓN SEGURIDAD Y SALUD OCUPACIONAL
CHARLA DE INDUCCIÓN SEGURIDAD Y SALUD OCUPACIONAL
 
Comite Operativo Ciberseguridad 012020.pptx
Comite Operativo Ciberseguridad 012020.pptxComite Operativo Ciberseguridad 012020.pptx
Comite Operativo Ciberseguridad 012020.pptx
 
07 MECANIZADO DE CONTORNOS para torno cnc universidad catolica
07 MECANIZADO DE CONTORNOS para torno cnc universidad catolica07 MECANIZADO DE CONTORNOS para torno cnc universidad catolica
07 MECANIZADO DE CONTORNOS para torno cnc universidad catolica
 
Principales aportes de la carrera de William Edwards Deming
Principales aportes de la carrera de William Edwards DemingPrincipales aportes de la carrera de William Edwards Deming
Principales aportes de la carrera de William Edwards Deming
 
Una estrategia de seguridad en la nube alineada al NIST
Una estrategia de seguridad en la nube alineada al NISTUna estrategia de seguridad en la nube alineada al NIST
Una estrategia de seguridad en la nube alineada al NIST
 
tema05 estabilidad en barras mecanicas.pdf
tema05 estabilidad en barras mecanicas.pdftema05 estabilidad en barras mecanicas.pdf
tema05 estabilidad en barras mecanicas.pdf
 
NTP- Determinación de Cloruros en suelos y agregados (1) (1).pptx
NTP- Determinación de Cloruros  en suelos y agregados (1) (1).pptxNTP- Determinación de Cloruros  en suelos y agregados (1) (1).pptx
NTP- Determinación de Cloruros en suelos y agregados (1) (1).pptx
 
nom-028-stps-2012-nom-028-stps-2012-.pdf
nom-028-stps-2012-nom-028-stps-2012-.pdfnom-028-stps-2012-nom-028-stps-2012-.pdf
nom-028-stps-2012-nom-028-stps-2012-.pdf
 
Procesos-de-la-Industria-Alimentaria-Envasado-en-la-Produccion-de-Alimentos.pptx
Procesos-de-la-Industria-Alimentaria-Envasado-en-la-Produccion-de-Alimentos.pptxProcesos-de-la-Industria-Alimentaria-Envasado-en-la-Produccion-de-Alimentos.pptx
Procesos-de-la-Industria-Alimentaria-Envasado-en-la-Produccion-de-Alimentos.pptx
 
CLASe número 4 fotogrametria Y PARALAJE.pptx
CLASe número 4 fotogrametria Y PARALAJE.pptxCLASe número 4 fotogrametria Y PARALAJE.pptx
CLASe número 4 fotogrametria Y PARALAJE.pptx
 
Sesión 02 TIPOS DE VALORIZACIONES CURSO Cersa
Sesión 02 TIPOS DE VALORIZACIONES CURSO CersaSesión 02 TIPOS DE VALORIZACIONES CURSO Cersa
Sesión 02 TIPOS DE VALORIZACIONES CURSO Cersa
 
DOCUMENTO PLAN DE RESPUESTA A EMERGENCIAS MINERAS
DOCUMENTO PLAN DE RESPUESTA A EMERGENCIAS MINERASDOCUMENTO PLAN DE RESPUESTA A EMERGENCIAS MINERAS
DOCUMENTO PLAN DE RESPUESTA A EMERGENCIAS MINERAS
 
Reporte de simulación de flujo del agua en un volumen de control MNVA.pdf
Reporte de simulación de flujo del agua en un volumen de control MNVA.pdfReporte de simulación de flujo del agua en un volumen de control MNVA.pdf
Reporte de simulación de flujo del agua en un volumen de control MNVA.pdf
 
Flujo multifásico en tuberias de ex.pptx
Flujo multifásico en tuberias de ex.pptxFlujo multifásico en tuberias de ex.pptx
Flujo multifásico en tuberias de ex.pptx
 
Calavera calculo de estructuras de cimentacion.pdf
Calavera calculo de estructuras de cimentacion.pdfCalavera calculo de estructuras de cimentacion.pdf
Calavera calculo de estructuras de cimentacion.pdf
 
Presentación electricidad y magnetismo.pptx
Presentación electricidad y magnetismo.pptxPresentación electricidad y magnetismo.pptx
Presentación electricidad y magnetismo.pptx
 
Voladura Controlada Sobrexcavación (como se lleva a cabo una voladura)
Voladura Controlada  Sobrexcavación (como se lleva a cabo una voladura)Voladura Controlada  Sobrexcavación (como se lleva a cabo una voladura)
Voladura Controlada Sobrexcavación (como se lleva a cabo una voladura)
 

Primitivas

  • 2. Dibujo en 3D • Las librerías gráficas antiguas permiten trabajar con puntos 2D (pixels) • OpenGL no trabaja con coordenadas de pantalla, sino con coordenadas posicionales dentro del volumen de visualización • El trasladar toda la escena 3D a la pantalla se realiza automáticamente x y z glOrtho(-100,100,-100,100,100,-100) (0,100,0) (100,0,0) (0,-100,0) (-100,0,0)
  • 3. Dibujo de puntos glBegin(GL_POINTS); glVertex3s (0, 0, 50); glVertex2f (-50.0, 50.0); glEnd(); x y z (-50,50,0) (0,0,50)
  • 4. Ajuste del tamaño del punto • El tamaño por defecto de un punto es 1 pixel • Podemos cambiarlo usando: void glPointSize (Glfloat tamaño) • Para conocer qué tamaños soporta nuestra distribución: Glfloat dimen[2]; // almacena el rango de tamaños Glfloat paso; // almacena los incrementos de tamaño glGetFloatv(GL_POINT_SIZE_GRANULARITY, &paso); glGetFloatv(GL_POINT_SIZE_RANGE, dimen); • Para mejorar la calidad de los puntos: void glEnable (GL_POINT_SMOOTH)
  • 5. Dibujo de líneas sueltas glBegin(GL_LINES); glVertex3s (0, 0, 50); glVertex2f (-50.0, 50.0); glVertex3s (0, 100, 0); glVertex3s (-100, 100, -100); glEnd(); x y z (-50,50,0) (0,0,50) (0,100,0) (-100,100,-100)
  • 6. Dibujo de polilíneas glBegin(GL_LINES_STRIP); glVertex3s (0, 0, 50); glVertex2f (-50.0, 50.0); glVertex3s (0, 100, 0); glVertex3s (-100, 100, -100); glEnd(); x y z (-50,50,0) (0,0,50) (0,100,0) (-100,100,-100) • Para cerrar la polilínea: glBegin(GL_LINE_LOOP); ... glEnd();
  • 7. Ajuste del grosor de línea • El grosor por defecto es 1 pixel • Podemos cambiarlo usando: void glLineWidth (Glfloat ancho) • Para conocer qué tamaños soporta nuestra distribución: Glfloat dimen[2]; // almacena el rango de anchos posibles Glfloat paso; // almacena los incrementos de ancho glGetFloatv(GL_LINE_WIDTH_GRANULARITY, &paso); glGetFloatv(GL_LINE_WIDTH_RANGE, dimen);
  • 8. Patrones de líneas • Para dibujar líneas discontinuas primero hay que activar el modo: void glEnable (GL_LINE_STIPPLE) • Luego se indica el patrón: void glLineStipple (GLint factor, GLushort patron) 0101010101010101 patron = 0x 5 5 5 5 factor = 3
  • 9. Dibujo de triángulos glBegin(GL_TRIANGLES); glVertex2f (-50.0, 50.0); glVertex3s (0, 100, 0); glVertex3s (-100,100,-100); ... glEnd(); • A partir de ahora, las líneas representan polígonos --> áreas • La mayoría del hardware 3D está optimizado para triángulos x y z (0,100,0) (-100,100,-100) (-50,50,0)
  • 10. Caras frontales y posteriores glBegin(GL_TRIANGLES); glVertex3s (); // vértice V0 glVertex3s (); // vértice V1 glVertex3s (); // vértice V2 glVertex3s (); // vértice V3 glVertex3s (); // vértice V4 glVertex3s (); // vértice V5 ... glEnd(); V0 V2 V1 V3 V4 V5 • El sentido anti-horario indica cuál es la cara frontal • Cada cara puede tener propiedades diferentes Sentido antihorario Sentido horario • Para que el sentido sea al revés: void glFrontFace (GL_CW)
  • 11. Modos de dibujo • Por defecto, los polígonos se dibujan sólidos (sin aristas) • Otras opciones son: hueco con aristas o sólo mostrando los vértices • Cada cara puede mostrarse de forma diferente void glPolygonMode (GLenum cara, GLenum modo) GL_FRONT GL_BACKGL_FRONT_AND_BACK GL_POINT GL_LINE GL_FILL glPolygonMode (GL_FRONT, GL_FILL) glPolygonMode (GL_BACK, GL_LINE)
  • 12. Mallas de triángulos • Para dibujar tiras de triángulos: glBegin(GL_TRIANGLE_STRIP); glVertex3s (); // vértice V0 glVertex3s (); // vértice V1 glVertex3s (); // vértice V2 glVertex3s (); // vértice V3 glVertex3s (); // vértice V4 ... glEnd(); V0 V2 V1 V0 V2 V1 V3 V0 V2 V1 V3 V4 • Ventajas: – sólo se especifica un vértice por triángulo – mejores efectos de iluminación al sombrear la superficie total
  • 13. Abanicos de triángulos • Para dibujar abanicos de triángulos: glBegin(GL_TRIANGLE_FAN); glVertex3s (); // vértice V0 glVertex3s (); // vértice V1 glVertex3s (); // vértice V2 glVertex3s (); // vértice V3 glVertex3s (); // vértice V4 ... glEnd(); V0 V2 V1 V0 V2 V1 V3 • El vértice V0 es común a todos los triángulos V0 V2 V1 V3 V4
  • 14. Cuadriláteros glBegin(GL_QUADS); glVertex2s (-50, 50); //V0 glVertex2s (100, 0); //V1 glVertex2s (100,100); //V2 glVertex2s (0,100); //V3 ... glEnd(); • Existe hardware de aceleración para polígonos de más de 3 lados x y z (0,100,0) (100, 100,0) (-50,50,0) (100, 0,0) • Las caras frontales siguen siendo en el sentido anti-horario V0 V2 V1 V3
  • 15. Mallas de cuadriláteros • Para dibujar tiras de cuadriláteros: glBegin(GL_QUAD_STRIP); glVertex3s (); // vértice V0 glVertex3s (); // vértice V1 glVertex3s (); // vértice V2 glVertex3s (); // vértice V3 glVertex3s (); // vértice V4 glVertex3s (); // vértice V5 ... glEnd(); • Ventajas: – sólo se especifican dos vértices por polígono – mejores efectos de iluminación al sombrear la superficie total V0 V2 V1 V3 V0 V3 V1 V2 V5 V4
  • 16. Polígonos generales glBegin(GL_POLYGON); glVertex2s (-50, 50); //V0 glVertex2s (0, 0); //V1 glVertex2s (100,0); //V2 glVertex2s (100,100); //V3 glVertex2s (0,100); //V4 ... glEnd(); • Para cualquier número de lados • Las caras frontales siguen siendo en el sentido anti-horario x y z (0,100,0) (100, 100,0) (-50,50,0) (100, 0,0)(0,0,0) V0 V2V1 V3 V4
  • 17. Relleno de polígonos • Para rellenar con un patrón primero hay que activar el modo: void glEnable (GL_POLYGON_STIPPLE) • Luego se indica el patrón de relleno: void glPolygonStipple (GLubyte bitmap[32x4]) = 0x0A 0x94
  • 18. Reglas para los polígonos • Debido a la optimización de los algoritmos internos de OpenGL, existen tres restricciones para los polígonos: – Todos los polígonos deben ser planares – Las aristas no deben intersectarse – Los polígonos deben ser convexos Polígonos válidos Polígonos no válidos
  • 19. Subdivisión y bordes • Un polígono cóncavo puede representarse como varios convexos • Si se dibuja relleno, los bordes no se apreciarán • Si se dibuja en alambre, podemos indicar qué aristas no queremos ver: glEdgeFlag(TRUE); // a partir de aquí, las aristas son visibles glVertex3s(); ... glEdgeFlag(FALSE); // a partir de aquí, las aristas no se ven glVertex3s(); ...
  • 20. Visualización de objetos 3D • Las superficies de los objetos estarán formados por varias primitivas • Para resolver el problema de visibilidad glEnable (GL_DEPTH_TEST) glClear (GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT) • Para desactivar una opción activada con glEnable se usa: glDisable (GL_CULL_FACE) • Para acelera el proceso, podemos indicar que no se visualizen las caras traseras de los polígonos glEnable (GL_CULL_FACE)