|
|
(10 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 30: |
Línea 29: |
| #en el proceso de visualización iremos viendo todo el proceso de transforación que se va produciendo con OpenGL. | | #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'''''}} | | #Realizaremos un seguimiento de '''''la pipeline gráfica'''''}} |
− | </div>
| |
− | <div class="slide">
| |
− | ===Coordenadadas del objeto===
| |
− | #Coordenadas globales o del mundo
| |
− | #Coordenadas locales o del objeto
| |
− |
| |
− | *Dibujamos un eje de coordenadas x,y,z.
| |
− | *Estará centrado en el punto 0,0,0
| |
− | </div>
| |
− | <div class="slide">
| |
− | ===Coordenadadas del objeto===
| |
− | ;El código fuente
| |
− | <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>
| |
− | </div>
| |
− | <div class="slide">
| |
− | ===Coordenadadas del objeto===
| |
− | *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]]
| |
− | </div>
| |
− | <div class="slide">
| |
− | ===Coordenadadas del objeto===
| |
− | ;giramos para ver mejor
| |
− | *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>
| |
− | </div>
| |
− | <div class="slide">
| |
− | ===Coordenadas del objeto===
| |
− | [[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
| |
− | </div>
| |
− | <div class="slide">
| |
− | *Representación sólida
| |
− | [[Imagen:tetera1.png]]
| |
− | </div>
| |
− | <div class="slide">
| |
− | *Represetnación en alambres
| |
− | [[Imagen:tetera2.png]]
| |
− | </div>
| |
− | <div class="slide">
| |
− | *Representación girada
| |
− | [[Imagen:tetera3.png]]
| |
− | *Ahora hemos dibujado la tetera respecto al eje de coordenadas del mundo
| |
− | </div>
| |
− | <div class="slide">
| |
− |
| |
− | ===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)
| |
− | </div>
| |
− | <div class="slide">
| |
− | *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]]
| |
− | </div>
| |
− | <div class="slide">
| |
− | *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]]
| |
− | </div>
| |
− | <div class="slide">
| |
− | *Vemos los dos ejes de coordenadas
| |
− | [[Image:coordenadasObjeto3.png]]
| |
− | </div>
| |
− | <div class="slide">
| |
− | *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]]
| |
− | </div>
| |
− | <div class="slide">
| |
− | ===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
| |
| </div> | | </div> |
| <div class="slide"> | | <div class="slide"> |
| {{Recursos de la Web| | | {{Recursos de la Web| |
− | http://asanchez.cs.buap.mx/arreglos_vertices.pdf | + | *http://www.oocities.org/valcoey/escena.html |
| }} | | }} |
| </div> | | </div> |