Question

Je pris un examen Computer Graphics il y a quelques jours qui avait la question de crédit supplémentaire comme suit:

  

A la lumière peut être défini dans l'une des deux façons. Elle peut être définie en coordonnées du monde, par exemple un éclairage public, ou dans la visionneuse (coordonnées des yeux), par exemple, une tête de lampe portée par un mineur. Dans les deux cas, le point de vue peut changer librement. Décrivez comment la lumière doit être transformée différente dans ces deux cas.

Depuis que je ne vais pas voir les résultats de ce qu'après les vacances de printemps, je pensais que je demanderais ici.

Il semble que les analogies utilisées sont trompeuses - pourriez-vous pas définir une source lumineuse qui est située à l'oeil des téléspectateurs en coordonnées monde aussi bien que vous pourriez en coordonnées yeux? Je fais des recherches sur la façon dont la lumière gère OpenGL, et il semble que si elle utilise toujours les coordonnées yeux -. La matrice MODELVIEW serait appliquée à toute lumière en coordonnées monde

Dans ce cas, la réponse est peut-être simplement que vous auriez à transformer la lumière définie dans le monde les coordonnées en coordonnées oeil en utilisant quelque chose comme la matrice MODELVIEW, tandis que la lumière définie dans les coordonnées de l'oeil aurait seulement besoin d'être transformé par la matrice de projection.

Et puis je pourrais être totalement sous la pensée (ou sur la pensée ce sujet).

Une autre pensée que je HAD qu'il détermine de quelle manière vous rendre des ombres, mais cela a plus à voir avec l'emplacement de la lumière et son type (point, directionnel, émission, etc.) que ce que les coordonnées qu'il est représenté dans.

Toutes les idées?

Était-ce utile?

La solution

Dans le cas de la lumière de la rue, les coordonnées du monde resteront constant lorsque le point de vue se déplace.

Dans le cas de la lampe frontale, les coordonnées des yeux restent constant lorsque le point de vue se déplace.

Autres conseils

La position de la lumière est transformée par la matrice de modelview qui était actif au moment où la lumière a été défini .

Si la matrice modelview était identité à ce moment-là, vous aurez la lumière dans les coordonnées de l'oeil.

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

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top