Diferencia entre revisiones de «ManuelRomero/grafica/presentacion»

De WikiEducator
Saltar a: navegación, buscar
 
(12 revisiones intermedias por el mismo usuario no mostrado)
Línea 1: Línea 1:
{{:Usuario:ManuelRomero/grafica/nav}}
+
{{:Usuario:ManuelRomero/grafica/escena1/nav}}
 
<br>
 
<br>
  
Línea 14: Línea 14:
 
2.-'''''Coordenadas del ojo'''''
 
2.-'''''Coordenadas del ojo'''''
 
   Proyección
 
   Proyección
 +
</div>
 +
<div class="slide">
 +
===TRANSFORMACIÓN EN EL PIPELINE GRÁFICO===
 
3.- '''''Cooredenadas de recorte'''''
 
3.- '''''Cooredenadas de recorte'''''
 
  Perspectiva
 
  Perspectiva
Línea 20: Línea 23:
 
5.-'''''Coordenadas de la ventana (x,y)'''''
 
5.-'''''Coordenadas de la ventana (x,y)'''''
 
</div>
 
</div>
===Coordenadas globales - cooredenadas locales===
+
<div class="slide">
*Dibujamos un eje de coordenadas x,y,z
+
===Trabajo a realizar===
<source lang=cpp>
+
{{Objetivo|
void dibujaCoordenadas(void){
+
#Realizaremos una escena de una '''''tetera'''''
porFlechitas();
+
#en el proceso de visualización  iremos viendo todo el proceso de transforación que se va produciendo con OpenGL.
glLineWidth(2);
+
#Realizaremos un seguimiento de '''''la pipeline gráfica'''''}}
glBegin(GL_LINES);
+
</div>
  glLineWidth(3);
+
<div class="slide">
  glColor3f(1,0,0);//Eje X
+
  glVertex3f(0,0,0);
+
  glVertex3f(15,0,0);
+
   
+
  glColor3f(0,1,0);//Eje X
+
  glVertex3f(0,0,0);
+
  glVertex3f(0,15,0);
+
      glColor3f(0,0,1);//Eje z
+
  glVertex3f(0,0,0);
+
  glVertex3f(0,0,15);
+
  glLineWidth(1);
+
glEnd();
+
glPushMatrix();
+
glFlush();
+
}
+
</source>
+
*A OpenGL le especificamos bien por puntos o por vectores estos valores
+
*OpenGL rederiza en la pantalla y visuzliza dichos puntos según le especifiquemos
+
*Así quedaría
+
[[Imagen:CoordenadasOpenGLBásico.png|200px]]
+
*Lo giramos para ver la coordenada z. Esta parte luego la veremos
+
*PAra conseguirlo he girado 40º en el eje de x y 40º en el eje de y
+
<source lang=cpp>
+
  .. .. ..
+
    glMatrixMode(GL_MODELVIEW);
+
    glLoadIdentity(); 
+
    glRotatef(40.0f,1,0,0);
+
    glRotatef(40.0f,0,1,0);
+
    glutPostRedisplay();
+
  .. .. ..
+
</source>
+
[[Imagen:CoordenadasOpenGL.png|200px]]
+
*Este eje de coordenadas que hemos dibujado representaría el eje de coordenadas del objeto
+
*Ahora dibujamos un objeto en él, por ejemplo una tetera
+
*con la barra espaciadora podemos cambiar su representación, sólida o de alambres
+
*Representación sólida
+
[[Imagen:tetera1.png]]
+
*Represetnación en alambres
+
[[Imagen:tetera2.png]]
+
*Representación girada
+
[[Imagen:tetera3.png]]
+
*Ahora hemos dibujado la tetera respecto al eje de coordenadas del mundo
+
 
+
===Eje de coordenadas del objeto===
+
*Planteamos un nuevo eje de coordenadas
+
*Podemos ver que respecto al eje de coordenadas del mundo  (0,0,0), tiene los siguientes vectores
+
(10,10,10)- (15,15,10)
+
(10,10,10)- (5,15,10)
+
(10,10,10)- (10,10,15)
+
*Gráficamente lo podemos ver en la imagen (siempre respecto al eje de coordenadas de nuestro mundo (0,0,0) como centro
+
[[Image:coordenadasObjeto1.png]]
+
*Lo giramos para ver el componente z (Se observa en diferente posición pues lo he rotado respecto a X e Y de las coordenadas del mundo no de  ella misma
+
[[Image:coordenadasObjeto2.png]]
+
*Vemos los dos ejes de coordenadas
+
[[Image:coordenadasObjeto3.png]]
+
*Lo giramos para verlo un poco mejor
+
*Vemos el objeto en el eje de coordenadas del mundo global  y lo queremos pasar al eje de coordenadas del mundo local o del objeto
+
[[Image:coordenadasObjeto4.png]]
+
===Vamos a ver como pasar el objeto a las coordenadas locales
+
*Para ello vamos a multiplicar cada vétice del objeto por una matriz de escena
+
*Esta matriz permite realizar operaciones de rotación traslación y escalado
+
*En nuestro caso queremos coger la tetera y
+
#Trasladarla al punto 10,10,10.
+
##trasladar 10 unidades en X
+
##trasladar 10 unidades en Y
+
##trasladar 10 unidades en Z
+
#Rotar 15 grados
+
Son en total 4 operaciones
+
 
+
 
{{Recursos de la Web|
 
{{Recursos de la Web|
http://asanchez.cs.buap.mx/arreglos_vertices.pdf
+
*http://www.oocities.org/valcoey/escena.html
 
}}
 
}}
 
+
</div>
 +
<!--
  
  
Línea 181: Línea 116:
 
}
 
}
 
</source>
 
</source>
 +
-->

Última revisión de 07:58 13 jun 2013



TRANSFORMACIÓN EN EL PIPELINE GRÁFICO

  • Basado en un sistema de visualizacion
Objeto 3d ====>>> represntación en pantalla bidimensional

1.- Coordenadas del objeto (x,y,z,w)

  Transformación ModelView 

2.-Coordenadas del ojo

 Proyección

TRANSFORMACIÓN EN EL PIPELINE GRÁFICO

3.- Cooredenadas de recorte

Perspectiva

4.-Coordenadas del dispositivo

 Viewport

5.-Coordenadas de la ventana (x,y)

Trabajo a realizar

Icon objectives.jpg

Objetivo

  1. Realizaremos una escena de una tetera
  2. en el proceso de visualización iremos viendo todo el proceso de transforación que se va produciendo con OpenGL.
  3. Realizaremos un seguimiento de la pipeline gráfica