J'écris un ray tracer (en utilisant des coordonnées gauches, si cela fait une différence). C'est pour apprendre les principes, donc je n'utilise pas OpenGL ou des fonctionnalités complexes comme la profondeur de champ (pour le moment). Mon appareil photo peut avoir une position et une orientation arbitraires; Je les indique au moyen de trois vecteurs, location
, look_at
, et sky
, qui se comportent comme equivalent POV-Ray vectors. Son "film" a également un width
et height
. (La longueur focal
est impliquée par la distance de position
à look_at
.)Comment projeter des rayons avec une caméra arbitraire?
Mon problème est que je ne sais pas comment lancer les rayons. J'ai deux quantités, vx
et vy
, qui indiquent où le rayon devrait finir. Ils varient tous les deux de -1 à 1. S'ils sont tous deux -1, je lance le rayon de la position de la caméra dans le coin supérieur gauche du "film"; si elles sont toutes les deux 1, en bas à droite; s'ils sont tous deux à 0, le centre; et le reste est apparent. Je ne suis pas assez familier avec l'arithmétique vectorielle pour dériver une équation pour le rayon. J'apprécierais une explication de la façon de le faire.
Merci, je l'ai eu à travailler maintenant. – Remy