2010-03-11 19 views
5

Me tomó un examen de gráficos de ordenador hace un par de días que tenía pregunta crédito adicional como la siguiente:Definición Luz Coordenadas

Una luz se puede definir en una de dos maneras. Se puede definir en coordenadas mundiales, p. una luz de calle, o en el visor (coordenadas del ojo), por ejemplo, una lámpara de cabeza usada por un minero. En cualquier caso, el punto de vista puede cambiar libremente. Describe cómo la luz debe transformarse diferente en estos dos casos.

Como no voy a poder ver los resultados hasta después de las vacaciones de primavera, pensé que podría preguntar aquí.

Parece que las analogías utilizadas son engañosas. ¿No podría definir una fuente de luz que se encuentra en el ojo del observador en las coordenadas mundiales tan bien como podría en coordenadas oculares? He estado investigando cómo OpenGL maneja la luz, y parece que siempre usa coordenadas oculares, la matriz ModelView se aplicaría a cualquier luz en coordenadas mundiales.

En ese caso, la respuesta podría ser que tendría que transformar la luz definida en coordenadas del mundo en coordenadas del ojo usando algo como la matriz ModelView, mientras que la luz definida en coordenadas del ojo solo tendría que ser transformada por la matriz de proyección.

Por otra parte, podría estar totalmente bajo de pensamiento (o sobre pensar esto).

Otro pensamiento que tuve es que determina la forma en que renderizas las sombras, pero eso tiene más que ver con la ubicación de la luz y su tipo (punto, direccional, emisión, etc.) que las coordenadas en que se representa.

¿Alguna idea?

Respuesta

3

En el caso de la farola, las coordenadas mundiales se mantendrán constantes cuando se mueva el punto de vista.

En el caso de la lámpara de cabeza, las coordenadas del ojo se mantendrán constantes cuando se mueva el punto de vista.

5

La posición de la luz es transformada por la matriz de vista de modelo que estaba activa en el momento en que se definió la luz.

Si la matriz modelview era la identidad en ese punto, obtendrá la luz en las coordenadas del ojo.

Si la matriz modelview era la inversa de la matriz de su cámara, obtendrá la luz en el espacio mundial.

+0

Es una lástima que no pueda aceptar dos respuestas, ya que fue realmente la combinación de ambos. –

+0

No te preocupes por eso. De nada. – Thomas