Diferencia entre revisiones de «ManuelRomero/grafica/escena1/ojo»
De WikiEducator
(→Coordenadas del ojo:La matriz punto de vista) |
(→Coordenadas del ojo:La matriz punto de vista) |
||
Línea 16: | Línea 16: | ||
*Antes de llamar a esta función debe estar activa la ''matriz ModeloVista'' | *Antes de llamar a esta función debe estar activa la ''matriz ModeloVista'' | ||
*Esta función se aplica sobre la matriz ModeloVista | *Esta función se aplica sobre la matriz ModeloVista | ||
− | '''''M='''''M'''''<sub>escena</sub> * M<sub>punto_vista</sub>*''''' | + | '''''M='''''M'''''<sub>escena</sub> * M<sub>punto_vista</sub>''''' |
+ | ===Uso de la función '''''gluLookAt(...)=== | ||
+ | Esta función tiene tres grupos de parámetros | ||
+ | ;void gluLookAt(GLdouble eyeX,GLdouble eyeY,GLdouble eyeZ,GLdouble centerX,GLdouble centerY,GLdouble centerZ,GLdouble upX,GLdouble upY,GLdouble upZ); | ||
+ | :punto ''eyeX, eyeY, eyeZ'' | ||
+ | *Es el punto central donde ponemos nuestra cámara ficticia. | ||
+ | :punto ''centerX,centerY,centerZ'' | ||
+ | *Es el punto hacia donde miramos | ||
+ | Sería el vector formado por los puntos ''ojo-center'' | ||
+ | :vector upX,upY,upZ | ||
+ | Este vector permite girar la cámara | ||
+ | Es perpendicular al vector hacia donde miramos | ||
+ | *Vamos a llevar este ejemplo a la práctica | ||
+ | *Si tenemos nuestro eje de coordenadas y queremos mirar desde el punto 10,10,10 hacia el 0,0,0 u el vector de orientación en el plano X (10,0,0) | ||
+ | <galery caption="coordenaas del ojo en posicion 10,10,10> | ||
+ | Imagen:tetera2.png | ||
+ | Imagen:coordenadasOjoTetera1.png | ||
+ | <galery> |
Revisión de 01:34 13 jun 2013
Coordenadas del ojo:La matriz punto de vista
- Ahora tenemos el objeto respecto a una coordenadas del mundo
- Tenemos que poner el ojo en alguna posicion de la escena
- Para ello colocamos una cámara y hacemos una foto desde esa posición
- Esta metáfora permite representar la forma en la que openGL va a represtar la escena dependiendo del punto de vista
- La cámara son nuestros ojos virtuales
(X,Y,Z,W)Tpunto_de_vista=(X,Y,Z,W)T * Mmundo* </div>
- Para hacer esto en openGL, disponemos de la funcion
void gluLookAt(eyeX, eyeY, eyeZ, cenX,cenY,cenZ, atX, atY,atZ);
- Esta función determina dónde y cómo está dispuesta la cámara.
- Antes de llamar a esta función debe estar activa la matriz ModeloVista
- Esta función se aplica sobre la matriz ModeloVista
M=Mescena * Mpunto_vista
Uso de la función gluLookAt(...)
Esta función tiene tres grupos de parámetros
- void gluLookAt(GLdouble eyeX,GLdouble eyeY,GLdouble eyeZ,GLdouble centerX,GLdouble centerY,GLdouble centerZ,GLdouble upX,GLdouble upY,GLdouble upZ);
- punto eyeX, eyeY, eyeZ
- Es el punto central donde ponemos nuestra cámara ficticia.
- punto centerX,centerY,centerZ
- Es el punto hacia donde miramos
Sería el vector formado por los puntos ojo-center
- vector upX,upY,upZ
Este vector permite girar la cámara Es perpendicular al vector hacia donde miramos
- Vamos a llevar este ejemplo a la práctica
- Si tenemos nuestro eje de coordenadas y queremos mirar desde el punto 10,10,10 hacia el 0,0,0 u el vector de orientación en el plano X (10,0,0)
<galery caption="coordenaas del ojo en posicion 10,10,10> Imagen:tetera2.png Imagen:coordenadasOjoTetera1.png <galery>