/ / Définition des coordonnées de la lumière - opengl, graphics, light

Définition des coordonnées de la lumière - opengl, graphics, light

J'ai passé il y a quelques jours un examen d'infographie qui comportait une question de crédit supplémentaire, comme suit:

Une lumière peut être définie de deux manières. Il peut être défini en coordonnées mondiales, par exemple. un lampadaire, ou dans le spectateur (coordonnées de l’œil), par exemple une lampe frontale portée par un mineur. Dans les deux cas, le point de vue peut changer librement. Décrivez comment la lumière devrait être transformée différemment dans ces deux cas.

Comme je ne pourrai pas voir les résultats avant la semaine de relâche, j’ai pensé pouvoir poser la question ici.

Il semble que les analogies utilisées sonttrompeuse - ne pourriez-vous pas définir une source de lumière située au niveau de l'œil du spectateur en coordonnées mondiales, aussi bien que vous le pourriez en coordonnées oculaires? J’ai fait quelques recherches sur la manière dont OpenGL gère la lumière, et il semble qu’elle utilise toujours les coordonnées de l’œil - la matrice ModelView serait appliquée à n’importe quelle lumière dans les coordonnées du monde.

Dans ce cas, la réponse pourrait simplement être que vousIl faudrait transformer la lumière définie en coordonnées mondiales en coordonnées oculaires à l'aide de quelque chose comme la matrice ModelView, tandis que la lumière définie en coordonnées oculaires n'aurait besoin que d'être transformée par la matrice de projection.

Là encore, je pourrais être totalement en train de penser (ou de penser cela).

Une autre pensée que j’avais, c’est qu’elle détermine laquellevous restituez des ombres, mais cela a plus à voir avec l'emplacement de la lumière et son type (point, directionnel, émission, etc.) qu'avec les coordonnées dans lesquelles elle est représentée.

Des idées?

Réponses:

3 pour la réponse № 1

Dans le cas du réverbère, les coordonnées mondiales resteront constantes lorsque le point de vue se déplace.

Dans le cas de la lampe frontale, les coordonnées de l'œil resteront constantes lorsque le point de vue se déplace.


5 pour la réponse № 2

La position de la lumière est transformée par la matrice modelview qui était active au moment où la lumière était définie.

Si la matrice modelview était identité à ce stade, vous obtiendrez la lumière en coordonnées oculaires.

Si la matrice modelview était l'inverse de la matrice de votre caméra, vous obtiendrez la lumière dans l'espace mondial.