Ich versuche, ein wenig mehr über Vectormath zu lernen, indem ich einen einfachen Raytracer schreibe, und ich habe einiges darüber gelesen, aber was ich nicht finden konnte, ist, wie man die Richtung der primären Strahlen bestimmt. Das klingt wie ein einfaches Problem und ist es wahrscheinlich auch, aber mit meinem derzeitigen Wissen habe ich es nicht herausfinden können.
Ich habe mir überlegt, dass ich eine Kamera brauche (nicht mehr als einen Standort und eine Richtung als Vektoren) und von der Kamera aus die primären Strahlen auf einen Bildschirm vor der Kamera schieße, der das endgültige Bild darstellt. Was ich nicht herausfinden kann, sind die Eckkoordinaten des Bildschirms. Wenn ich den Bildschirm kenne, ist es einfach, die Richtung der primären Strahlen zu bestimmen.
Ich hoffe, dass der Bildschirm mit einfacher Mathematik, die keine Drehmatrizen erfordert, berechnet werden kann. Meine beste Vermutung ist diese:
Ich habe die Richtung der Kamera als Vektor, diese Richtung ist gleich der Normalen der Ebene der Projektionsfläche. Ich habe also die Normale des Bildschirms, und von dort aus kann ich leicht die Mitte des Bildschirms berechnen, die ist:
camera_location + (normal * distance)
Der Abstand ist der Abstand zwischen dem Bildschirm und der Kamera. Allerdings ist das der Punkt, an dem ich nicht mehr weiterkomme, und ich kann keine Möglichkeit finden, die Eckkoordinaten der Ebene für eine beliebige Richtung der Kamera herauszufinden.
Kann mir jemand von euch hier weiterhelfen? Und wenn meine Methode nicht funktionieren kann, was dann?