Verursacht PBR eine Leistungsminderung?

7

Ich frage mich, ob die verschiedenen PBR-Modelle, die in modernen Spiel-Engines für Echtzeit verwendet werden, rechenintensiver sind als klassische Rendering-Ansätze.

Anders ausgedrückt: Ist PBR nur eine andere Art, die Rendering-Pipeline zu organisieren, oder erhöht dies die Komplexität (insbesondere in Bezug auf die Beleuchtung)?

Was wäre je nach Antwort der Engpass für eine ressourcenarme Implementierung?

Das Internet besteht aus Catz
quelle

Antworten:

8

Wie in dieser Antwort erwähnt, ist physikalisch basiertes Rendern keine festgelegte Anzahl von Dingen. Es ist ein Konzept . Es ist vergleichbar mit der Aussage, dass etwas umweltfreundlich ist. Es gibt viele verschiedene Techniken, um umweltfreundlich zu sein, und jemand kann diese Techniken in unterschiedlichem Maße implementieren. Gleiches gilt für Züchterrechte.

Am Ende ist physikalisch basiertes Rendern genau das, basierend auf Physik in irgendeiner Weise, Form oder Gestalt. Eine der grundlegendsten "physischen" Rendering-Techniken, die ich mir vorstellen kann, ist die Verwendung der Lambert-Schattierung . Während Sie vielleicht sagen: "Nun, das berücksichtigt kein spiegelndes Licht oder usw. usw. usw.", stimme ich zu. Die Lambert-Schattierung ist eine grobe Darstellung der Physik des Lichts. Pedantisch handelt es sich jedoch um PBR, da es auf der physikalischen Beobachtung beruht, dass die Lichtintensität mit dem Betrachtungswinkel abnimmt.

Ein Renderer kann so viele oder so wenige PBR-Techniken implementieren, wie er möchte. Einige können sehr rechenintensiv sein, andere recht billig. Sie können auch bestimmte Techniken für verschiedene Ziele aktivieren oder deaktivieren. Beispielsweise verfügt UE4 über andere Techniken für mobile Spiele als für High-End-PC-Spiele.

Wenn die modernen Renderer von heute davon sprechen, "physisch basiert" zu sein, beziehen sie sich im Allgemeinen auf die Verwendung eines modernen BRDF, im Allgemeinen einer Form von Cook-Torrance , und physikalisch plausibler Eingaben. Eingaben sind: Materialien mit physikalisch plausiblen Farbwerten und Lichter mit physikalisch basierten Intensitätswerten.

Die Verwendung eines modernen BRDF kann sehr rechenintensiv sein, aber es gibt viele Annäherungen, die es benutzerfreundlicher machen können.

Die Verwendung physikalisch plausibler Eingaben ist auf der Rendererseite im Allgemeinen nicht so schwierig zu implementieren, sondern für Künstler schwieriger. IE. Lehren Sie sie, was die verschiedenen materiellen Werte bedeuten und was physikalisch plausible Werte sind. Dies kann abhängig von Ihren Künstlern eine große Aufgabe sein, wie in den Präsentationen hier , hier und hier zum Beispiel zu sehen ist. Meiner Meinung nach ist dies die schwierigste Aufgabe beim Studiowechsel.

Bearbeiten:

Eine letzte Ausgabe, die von @NathanReed in den Kommentaren angesprochen wurde:

Die Implementierung eines modernen BRDF im Shader verbessert das Rendering nicht unbedingt sofort. In vielen Fällen können andere Teile der Pipeline zu einem krassen Problem werden. Im Folgenden finden Sie einige zusätzliche Dinge, die wichtig sind, um das Beste aus einem modernen BRDF herauszuholen:

  • HDR leuchtet und führt alle Renderberechnungen in HDR durch
  • Gammakorrektur
  • Indirekte Beleuchtung (Skybox-Beleuchtung, statische Umgebungssonden, Reflexionen des Bildschirmraums usw.)
    • Das ist riesig für Metalle. Metalle haben kein diffuses Reflexionsvermögen , daher ist der größte Teil der Metalloberfläche schwarz, wenn Sie keine indirekten Reflexionen haben
    • Dies ist auch eine der schwierigeren Aufgaben in Echtzeit, insbesondere bei dynamischen Szenen.
RichieSams
quelle
Ich verstehe, was Züchterrechte sind und dass es eine vage Definition ist, wie Sie betont haben, hätte ich BRDF sagen sollen. Ich verstehe, wie grundlegende Blinn-Phong-Schattierungen funktionieren, aber ich frage mich, ob (wahrscheinlich naiv) die Entscheidung für ein (sogar vereinfachtes) BRDF-Modell nur ein Umschreiben des Shaders + eine geringfügige Änderung in der Rendering-Pipeline oder etwas Komplizierteres ist . Bei meiner letzten Frage meine ich Low-End-Hardware mit eingeschränkten Funktionen (denken Sie an eingebettete Geräte).
Internet besteht aus Catz
Ja, bei der Implementierung eines BRDF müssen nur ein Shader neu geschrieben und ausgetauscht werden, welche Texturen als Eingaben verwendet werden. Wie oben erwähnt, ist es jedoch schwierig, diese Texturen herzustellen.
RichieSams
3
Neben dem Umschreiben des BRDF ist es auch wichtig, dass die Rendering-Pipeline gammakorrekt ist und HDR bis zu einem gewissen Grad unterstützt. Das sind definitiv kompliziertere Änderungen, wenn der Motor sie noch nicht hat. Außerdem erfordert PBR tendenziell mehr Aufmerksamkeit für die indirekte Beleuchtung (insbesondere für Spiegel, um mit glänzenden Materialien gut auszusehen), und das Hinzufügen verschiedener Formen der indirekten Echtzeit- oder Semi-Echtzeit-Beleuchtung zu Ihrem Motor kann ebenfalls eine große Aufgabe sein.
Nathan Reed
Ehrlich gesagt ist dies ein wenig abseits des Themas, aber für mich scheint es keine gute Wahl zu sein, sich auf verrückte mikroskopische Anpassungen der 5D-Raumkurven von BRDF zu konzentrieren, indem passende Modelle für die Integration von Mikrofacetten entwickelt werden. Es ist viel wichtiger, sich auf eine korrekte globale Beleuchtung zu konzentrieren. Es muss nicht einmal Echtzeit sein.
v.oddou