Physikalisch basiertes Rendering und Raytracing


11

Ich habe viel Verwirrung und ich muss einige Begriffe klären und das Wissen zusammenstellen.
Wenn ich sage, dass eine Engine ein Raytracer ist (also den Raytracing-Algorithmus zum Rendern der Szene verwendet), handelt es sich dann automatisch um eine physisch basierte Engine? Ich meine, Raytracing basiert per Definition physisch oder könnte es einige Raytracer geben, die nicht physisch basieren? (Und gibt es symmetrisch einige Nicht-Ray-Tracer, die physikalisch basieren?)
Stimmt es auch, dass "physikalisch basiert" auch bedeutet, dass "die Lichttransportgleichung aufgelöst wird"?

Antworten:


16

"Physikalisch basiert" ist kein sehr gut definierter Begriff, daher ist es schwierig, diese Frage genau zu beantworten.

Im Allgemeinen bezieht sich "physikalisch basiert" auf die Tatsache, dass der fragliche Algorithmus von physikalisch basierten Prinzipien abgeleitet ist. Es ist physikalisch nicht korrekt (weil wir uns das nicht leisten können) und einige Annäherungen müssen normalerweise gemacht werden, aber es ist bekannt, was diese Annäherungen sind, und im Idealfall gibt es eine gewisse Intuition darüber, welche Art von Fehler es einführt.

Dies steht im Gegensatz zu Ad-hoc-Modellen, die normalerweise von einem Künstler erstellt werden, der einen Effekt im wirklichen Leben beobachtet und versucht, einen Shader oder ähnliches zu schreiben, der das Aussehen irgendwie nachahmt. Normalerweise sind Ad-hoc-Modelle einfacher und billiger und sind in der Regel die ersten Lösungen für ein bestimmtes Problem. Sie bieten jedoch keinen besonderen Einblick in das, was tatsächlich passiert. Es ist auch praktisch unmöglich zu sagen, wie genau ein solches Modell den Effekt reproduzieren kann, den es zu simulieren versucht.

Im Zusammenhang mit dem Rendern wäre ein "physikalisch basierter Renderer" daher einfach etwas, das ein Bild nach physikalisch basierten Prinzipien rendert, was eine sehr vage Klassifizierung ist. Ein Raytracer ist nicht von Natur aus physikalisch basiert, und die meisten frühen Raytracer verwendeten tatsächlich Ad-hoc-Modelle für Beleuchtung und ähnliches. Nach meiner persönlichen Erfahrung bezog sich "physikalisch basiertes Rendering" normalerweise auf das Lösen der Rendering-Gleichung. Es scheint jedoch, dass in den letzten Jahren viele Spiele-Engines diesen Begriff auch als "wir sparen Energie" oder "wir verwenden kein Phong mehr" bezeichnet haben.

Es gibt also keine genaue Klassifizierung, was "physikalisch basiertes Rendering" bedeutet, und die Verwendung von Raytracing allein macht einen Renderer nicht physisch basiert. Beim Offline-Rendering wird dieser Begriff immer noch hauptsächlich für Renderer verwendet, die die Rendering-Gleichung lösen, während er sich beim Echtzeit-Rendering eher auf die Verwendung von Mikrofacettenmodellen oder ähnlichem bezieht. Es ist jedoch möglich, dass sich die Bedeutung dieses Begriffs im Laufe der Jahre ändert.


3
Wie von @BenediktBitterli angedeutet, ist "Physically Based Rendering" nicht wirklich ein Ja oder ein Nein. Beim Rendern müssen wir immer Realismus mit Rechenaufwand in Einklang bringen. Einige Renderer verfügen nur über wenige "physikalisch basierte" Funktionen, z. B. Mikrofacet-BRDFs und HDR-Renderziele. Während andere möglicherweise viele haben, zum Beispiel vollständige BSDFs, volles Spektrum-Rendering-Ziel, Lichtverfolgung, Flächenbeleuchtung usw.
RichieSams

2

Nein, einfach:

  • Für physikalisch basiertes Rendern ist kein Raytracing erforderlich. Man kann andere Mittel verwenden. *

  • Raytracing kann verwendet werden, um andere Effekte als physikalisch basiertes Rendern zu erzielen.

Raytracing ist oft am einfachsten zu implementieren und zu überlegen. Daher ist es weit verbreitet für physikalisch basiertes Rendering. Aus dem gleichen Grund verwenden viele nichtrealistische Renderer Raytracing-Tricks, um das zu bekommen, was sie brauchen.

* Ich persönlich habe mit unstrukturierter FEM gespielt, um Bilder zu rendern

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.