Diferencia entre revisiones de «ManuelRomero/grafica/presentacion»

De WikiEducator
Saltar a: navegación, buscar
 
(11 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 16: Línea 16:
 
</div>
 
</div>
 
<div class="slide">
 
<div class="slide">
 
 
===TRANSFORMACIÓN EN EL PIPELINE GRÁFICO===
 
===TRANSFORMACIÓN EN EL PIPELINE GRÁFICO===
 
3.- '''''Cooredenadas de recorte'''''
 
3.- '''''Cooredenadas de recorte'''''
Línea 26: Línea 25:
 
<div class="slide">
 
<div class="slide">
 
===Trabajo a realizar===
 
===Trabajo a realizar===
{{Objetivo|*Realizaremos una escena de una tetera e iremos viendo todo el proceso de transforación que se va produciendo con OpenGL.}}
+
{{Objetivo|
 +
#Realizaremos una escena de una '''''tetera'''''
 +
#en el proceso de visualización  iremos viendo todo el proceso de transforación que se va produciendo con OpenGL.
 +
#Realizaremos un seguimiento de '''''la pipeline gráfica'''''}}
 
</div>
 
</div>
 
+
<div class="slide">
===Coordenadas globales - coordenadas locales===
+
*Dibujamos un eje de coordenadas x,y,z.
+
*Estará centrado en el punto 0,0,0
+
<source lang=cpp>
+
void dibujaCoordenadas(void){
+
porFlechitas();
+
glLineWidth(2);
+
glBegin(GL_LINES);
+
  glLineWidth(3);
+
  glColor3f(1,0,0);//Eje X
+
  glVertex3f(0,0,0);
+
  glVertex3f(15,0,0);
+
   
+
  glColor3f(0,1,0);//Eje Y
+
  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();
+
glFlush();
+
}
+
</source>
+
*A OpenGL le especificamos bien por puntos o por vectores estos valores
+
*OpenGL rederiza en la pantalla y visualiza dichos puntos según le especifiquemos
+
 
+
[[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 190: Línea 116:
 
}
 
}
 
</source>
 
</source>
 +
-->

Última revisión de 06: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