2009-02-16 17 views
7

GL_PROJECTION and GL_MODELVIEW.¿Cuál es la diferencia entre estos modos de matriz?

Sé que hay otros, pero yo, conceptualmente, no puedo entender cuál es la diferencia entre ninguno de ellos. Cuando carga la matriz de identidad después de configurar el modo, ¿cómo es la matriz de identidad diferente en función del modo?

Respuesta

7

Se podría decir que la GL_PROJECTION es para configurar el cámara como lo que es, amplia etc lente y se podría decir que GL_MODELVIEW es para configurar el objeto que se va a dibujar, como el tamaño y el lugar en el espacio, etc.

para posicionar la mirada de la cámara en la función gluLookAt ...

+1

"GL_PROJECTION es para configurar la cámara. ** Donde ** es" Esto se llama "Abuso de matriz OpenGL": "cuando alguien va y pone su cámara transformada en la matriz GL_PROJECTION (en lugar de en GL_MODELVIEW donde pertenece) ", búscalo. –

+2

Sí, tienes razón. Eliminaré esa parte. Solo quería escribir la * novis * manera de * pensar * sobre las dos pilas. He estado codificando OpenGL por más de 10 años y creo que es un viaje ... – epatel

+0

@epatel explicación simple y limpia .. thx .. – sp1rs

3

los modos de matriz no cambian la propia matriz, por lo que la matriz de identidad es matriz de identidad en todas partes.

Los modos de matriz cambian en que matriz funcionan los siguientes comandos. Es decir, si cualquier comando posterior funciona con la matriz de proyección, o con matriz de vista * modelo, o con matrices de texturas, etc.

Esto puede sonar un poco confuso, pero es una de las decisiones de diseño de OpenGL: hay muchos comandos que operan en algún estado u objeto, y solo otras configuraciones de estado determinan en qué objeto exactamente operan.

Cuestiones relacionadas