Up to date

This page is up to date for Godot 4.2. If you still find outdated information, please open an issue.

Reflection-Probes

Bemerkung

Reflection-Probes werden nur in den Rendering-Backends Clustered Forward und Forward Mobile unterstützt, nicht im Kompatibilität-Backend.

Wie in der Standardmaterial 3D und ORM-Material 3D angegeben, können Objekte reflektiertes und/oder diffuses Licht darstellen. Reflection-Probes werden als Quelle von reflektiertem und Umgebungslicht für Objekte innerhalb ihres Einflussbereichs verwendet. Sie können verwendet werden, um genauere Reflexionen als VoxelGI und SDFGI zu erreichen, während sie relativ wenig Systemressourcen benötigen.

Da Reflection-Probes auch Umgebungslicht speichern können, können sie als einfache Alternative zu VoxelGI und SDFGI verwendet werden, wenn gebackene Lightmaps nicht praktikabel sind (z.B. in prozedural generierten Levels).

Reflection-Probes können auch gleichzeitig mit Screen-Space-Reflexionen verwendet werden, um Reflexionen für Objekte außerhalb des Bildschirms zu erzeugen. In diesem Fall mischt Godot die Screen-Space-Reflexionen und die Reflexionen der Reflection-Probes zusammen.

Siehe auch

Sie sind nicht sicher, ob ReflectionProbe für Ihre Bedürfnisse geeignet ist? Unter Welche Global Illumination-Technik sollte ich verwenden? finden Sie einen Vergleich der in Godot 4 verfügbaren GI-Techniken.

Visueller Vergleich

Reflection-Probe deaktiviert. Der Umgebungshimmel wird als Ausweichlösung verwendet.

Reflection-Probe deaktiviert. Der Umgebungshimmel wird als Ausweichlösung verwendet.

Reflection-Probe aktiviert.

Reflection-Probe aktiviert.

Reflection-Probe aktiviert.

Reflection-Probe aktiviert mit gleichzeitiger Verwendung von LightmapGI. Die Lightmap erscheint in der Reflexion.

Durch die Kombination von Reflection-Probes mit Screen-Space-Reflexionen erhalten Sie das Beste aus beiden Welten: hochwertige Reflexionen für die allgemeine Raumstruktur (die auch außerhalb des Bildschirms erhalten bleiben) und gleichzeitig Echtzeit-Reflexionen für kleine Details.

Reflexionen in einem Raum nur mit ReflectionProbe.

Reflexionen in einem Raum nur mit ReflectionProbe. Beachten Sie, dass kleine Details keine Reflektionen aufweisen.

Reflexionen in einem Raum, der nur Screen-Space-Reflexionen verwendet.

Reflexionen in einem Raum, der nur Screen-Space-Reflexionen verwendet. Beachten Sie, dass die Reflexion an den Seitenwänden des Raums teilweise fehlt, da sie sich außerhalb des Bildschirms befindet.

Reflexionen in einem Raum mit ReflectionProbe und Screen-Space-Reflexionen zusammen.

Reflexionen in einem Raum mit ReflectionProbe und Screen-Space-Reflexionen zusammen. Die Screen-Space-Reflexionen werden mit der Reflection-Probe gemischt und dienen als Ausweichlösung, wenn die Reflection-Probe keine Reflexion anzeigt.

Einrichten einer ReflectionProbe

  • Hinzufügen eines ReflectionProbe Nodes.

  • Konfigurieren Sie die Ausdehnung der ReflectionProbe im Inspektor so, dass sie zu Ihrer Szene passt. Um einigermaßen genaue Reflexionen zu erhalten, sollten Sie in der Regel einen ReflectionProbe-Node pro Raum haben (bei großen Räumen manchmal mehr).

Tipp

Denken Sie daran, dass die ReflectionProbe-Ausdehnung nicht quadratisch sein muss, und Sie können den ReflectionProbe-Node sogar drehen, um Räume abzudecken, die nicht am X/Z-Raster ausgerichtet sind. Nutzen Sie dies zu Ihrem Vorteil, um Räume besser abzudecken, ohne zu viele ReflectionProbe-Nodes platzieren zu müssen.

ReflectionProbe-Propertys

  • Aktualisierungsmodus: Steuert, wann die Reflection-Probe aktualisiert wird. Bei Einmal wird die Szene nur einmal gerendert, wenn die ReflectionProbe bewegt wird. Dies macht das Rendern viel schneller als der Immer Aktualisierungsmodus, der die Probe zwingt, alles um sie herum bei jedem Frame neu zu rendern. Lassen Sie diese Property auf Einmal ("Default"), wenn Sie die Reflection-Probe nicht bei jedem Frame aktualisieren wollen.

  • Intensität: Die Helligkeit der Reflexionen und der Umgebungsbeleuchtung. Normalerweise muss dieser Wert von seinem Default-Wert 1.0 nicht verändert werden, aber Sie können den Wert 1.0 verringern, wenn Sie finden, dass die Reflexionen zu stark wirken.

  • Max Distanz: Steuert die maximale Distanz, die von der internen Kamera der ReflectionProbe verwendet wird. Der Abstand ist immer mindestens so groß wie Ausmaße, kann aber vergrößert werden, um Objekte, die sich außerhalb der Ausmaße befinden, in Reflexionen sichtbar zu machen. Diese Property hat keinen Einfluss auf die maximale Entfernung, in der die ReflectionProbe selbst sichtbar ist.

  • Ausmaße: Der Bereich, der von der Beleuchtung und den Reflexionen der ReflectionProbe betroffen ist.

  • Ursprungsversatz: Der Ursprung für die interne Kamera, die für das Reflection-Probe-Rendering verwendet wird. Dieser Ursprung muss immer innerhalb der Ausmaße liegen. Passen Sie diesen Wert bei Bedarf an, um zu verhindern, dass die Reflexion durch ein festes Objekt, das sich genau in der Mitte der ReflectionProbe befindet, behindert wird.

  • Box-Projektion: Legt fest, ob beim Rendern der Reflection-Probe eine Parallaxenkorrektur verwendet werden soll. Dadurch wird das Erscheinungsbild der Reflexion in Abhängigkeit von der Kameraposition (relativ zur Reflection-Probe) angepasst. Dies hat einen kleinen Performance-Aufwand zur Folge, aber die Qualitätssteigerung ist es in Box-förmigen Räumen oft wert. Beachten Sie, dass dieser Effekt in Räumen mit weniger regelmäßigen Formen (z. B. ellipsenförmigen Räumen) nicht ganz so gut funktioniert.

  • Innenbereich: Wenn diese Option aktiviert ist, wird die Umgebungsbeleuchtung nicht aus dem Umgebungshimmel bezogen, und der Hintergrundhimmel wird nicht auf die Reflection-Probe gerendert.

  • Schatten aktivieren: Steuert, ob in der Reflection-Probe Lichtschatten in Echtzeit gerendert werden sollen. Aktivieren Sie dies, um die Qualität der Reflexion auf Kosten der Performance zu verbessern. Dies sollte für Reflection-Probes mit dem Modus Immer deaktiviert bleiben, da es sehr teuer ist, Reflektionen mit Schatten in jedem Frame zu rendern. Vollständig gebackene Lichtschatten sind von dieser Einstellung nicht betroffen und werden trotzdem in der Reflection-Probe gerendert.

  • Cull-Maske: Steuert, welche Objekte in der Reflexion sichtbar sind. Dies kann verwendet werden, um die Performance zu verbessern, indem kleine Objekte von der Reflexion ausgeschlossen werden. Dies kann auch verwendet werden, um zu verhindern, dass ein Objekt in Situationen, in denen Ursprungsversatz nicht verwendet werden kann, Artefakte der Selbstreflexion aufweist.

  • Mesh-LOD-Schwelle: Der Schwellenwert für den automatischen Detailgrad, der für das Rendern von Meshes innerhalb der Reflexion verwendet wird. Dies betrifft nur Meshes, für die automatische LODs generiert wurden. Höhere Werte können die Performance verbessern, indem weniger detaillierte Geometrie verwendet wird, insbesondere für Objekte, die weit vom Ursprung der Reflexion entfernt sind. Der visuelle Unterschied bei der Verwendung von weniger detaillierten Objekten ist während des Spiels normalerweise nicht sehr auffällig, insbesondere bei groben Reflexionen.

Die Kategorie Umgebungslicht enthält mehrere Propertys zur Anpassung der von der ReflectionProbe gerenderten Umgebungsbeleuchtung:

  • Modus: Bei der Einstellung Deaktiviert wird kein Umgebungslicht von der Sonde hinzugefügt. Bei der Einstellung Environment wird die Farbe des Umgebungslichts automatisch aus dem Himmel der Umgebung (wenn Innenraum deaktiviert ist) und der durchschnittlichen Farbe der Reflexion ermittelt. Bei der Einstellung Konstante Farbe wird stattdessen die in der Property Farbe angegebene Farbe verwendet. Der Modus Konstante Farbe kann als Annäherung an die Flächenbeleuchtung verwendet werden.

  • Farbe: Die Farbe, die verwendet wird, wenn der Umgebungslichtmodus auf Konstantmodus eingestellt ist.

  • Farbenergie: Der Multiplikator, der für die benutzerdefinierte Farbe des Umgebungslichts verwendet wird. Dies hat nur eine Auswirkung, wenn der Umgebungslichtmodus Benutzerdefinierte Farbe ist.

ReflectionProbe-Blending

Um die Übergänge zwischen den Reflexionsquellen fließender zu gestalten, unterstützt Godot das automatische Blending von Probes:

  • Es können bis zu 4 ReflectionProbes an einer bestimmten Stelle überblendet werden. Eine ReflectionProbe wird auch sanft zur Umgebungsbeleuchtung zurückgefadet, wenn sie keinen anderen ReflectionProbe-Node berührt.

  • SDFGI und VoxelGI fügen sich nahtlos in die ReflectionProbes ein, wenn sie verwendet werden. Auf diese Weise können ReflectionProbes strategisch platziert werden, um bei Bedarf genauere (oder vollständige Echtzeit-) Reflexionen zu erhalten, während im Einflussbereich des VoxelGI oder SDFGI weiterhin grobe Reflexionen verfügbar sind.

Damit mehrere ReflectionProbes miteinander verschmelzen, müssen Sie dafür sorgen, dass ein Teil jeder ReflectionProbe den Bereich der anderen überlappt. Die Bereiche sollten sich nur so wenig wie möglich mit anderen Reflection-Probes überlappen, um die Performance des Renderings zu verbessern (typischerweise ein paar Einheiten im 3D-Raum).

Einschränkungen

Bei Verwendung des Forward+-Renderers verwendet Godot einen Cluster-Ansatz für das Rendering von Reflection-Probes. Es können so viele Reflection-Probes wie gewünscht hinzugefügt werden (solange die Performance es zulässt). Es gibt jedoch immer noch eine Default-Grenze von 512 Cluster-Elementen, die in der aktuellen Kameraansicht vorhanden sein können. Ein Clusterelement ist ein Omni-Licht, ein Spotlicht, ein Decal oder eine Reflection-Probe. Diese Grenze kann durch Anpassen der erweiterten Projekteinstellung Rendering > Limits > Cluster Builder > Max Clustered Elements erhöht werden.

Bei Verwendung des Forward Mobile-Backends können nur 8 Reflection-Probes auf jede einzelne Mesh-Ressource angewendet werden. Wenn mehr Reflection-Probes auf ein einzelnes Mesh wirken, werden nicht alle von ihnen auf dem Mesh gerendert.