Wie baue ich ein anständiges Objektiv- / Kameraobjektivmodell für die Pfadverfolgung auf?


13

Ich habe einen kleinen Pfadfinder geschrieben, nachdem ich mit Smallpt gelernt und experimentiert habe .

Das einzige, was ich selbst nicht geschrieben (und verstanden) habe, ist, wie die Anfangsstrahlen berechnet und von der Kamera abgefeuert werden. Ich habe das Prinzip richtig verstanden, suche aber nach Ressourcen, die beschreiben, wie man:

  • Berechnen Sie die Anfangsrichtung der Strahlen
  • Modellieren Sie ein echtes Objektiv (im Gegensatz zu einer Lochkamera), das angeblich Effekte wie Schärfentiefe zulässt?

Mathematik und Physik auf dem neuesten Stand der Technik sind nicht erforderlich, aber in Ordnung, wenn dies ausführlich erklärt wird.

Antworten:


13

Der nächste Schritt von einem Lochkameramodell ist ein dünnes Objektivmodell , bei dem wir das Objektiv als unendlich dünne Scheibe modellieren. Dies ist immer noch eine Idealisierung, die weit davon entfernt ist, eine echte Kamera zu modellieren, aber Sie erhalten grundlegende Tiefenschärfeeffekte.

Modell mit dünner Linse

Das obige Bild von panohelp.com zeigt die Grundidee. Für jeden Punkt auf dem Bild kommen über jeden Punkt auf der 2D-Linsenoberfläche mehrere Strahlen an diesem Bildpunkt an. Um ein Bild wie dieses mit Monte Carlo zu erzeugen, müssen Sie daher für jeden Strahl sowohl einen 2D-Abtastpunkt auf der Bildebene als auch einen unabhängigen 2D-Abtastpunkt auf der Linsenoberfläche auswählen.

Die vom Benutzer einzustellenden Parameter sind der Linsenradius (als physikalischer Radius in Szeneneinheiten), der steuert, wie flach der Fokusbereich ist (größeres Objektiv = flacher Fokusbereich), und die Entfernung, in der sich Objekte befinden sollen Fokus.

Um Augenstrahlen in die Szene zu erzeugen, können Sie die Position und Richtung der Strahlen berechnen, die die Linsenoberfläche verlassen. In diesem Modell müssen die Bildebene und die Brechung durch das Objektiv nicht explizit simuliert werden. Stellen Sie sich das Objektiv grundsätzlich in der Mitte der Kamera vor und richten Sie es in Richtung der Kamera aus.

Konstruieren Sie auf der Grundlage der Bildposition einen Strahl von der Kameraposition (Objektivmitte) in die Szene, genau wie Sie es im Lochblendenmodell tun würden. dann finde seinen Schnittpunkt mit der Brennebene. Dort sollten alle Strahlen von diesem Bildort konvergieren. Jetzt können Sie den Startpunkt des Strahls zu einem zufällig ausgewählten Punkt auf der Linse verschieben und seine Richtung auf den Konvergenzpunkt einstellen.

Sie können dies ein wenig verallgemeinern, indem Sie zulassen, dass die Brennebene eine andere als eine Ebene ist, oder dass die Linse eine andere als eine kreisförmige Scheibe ist, und indem Sie denselben Vorgang ausführen. Das kann einige interessante, wenn auch nicht ganz physische Effekte hervorrufen. Es ist auch möglich, dieses einfache Modell durch eine physikalisch realistischere Simulation der Objektivelemente einer Kamera zu übertreffen - aber das übersteigt mein Fachwissen.


4

Siehe Kolb et al., A Realistic Camera Model for Computer Graphics , SIGGRAPH 95.

Beachten Sie jedoch, dass Kameramodelle, die reale Kameras imitieren, nicht unbedingt für die Rendering-Phase geeignet sind. Je mehr Unschärfe / Vignettierung / Verzerrung das Kameramodell in einem Szenario mit visuellen Effekten / Postproduktion einführt, desto schlechter ist es für den Compositor / Farbtimer. Es ist oft besser, es als Post-Pass zu tun.

Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.