Up to date

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

Physikalische Licht- und Kamera-Einheiten

Warum physikalische Licht- und Kamera-Einheiten verwenden?

Godot verwendet willkürliche Einheiten für viele physikalische Eigenschaften, die sich auf Licht beziehen, wie Farbe, Energie, Kamera-Field of View und Belichtung. Standardmäßig werden für diese Eigenschaften willkürliche Einheiten verwendet, da die Verwendung genauer physikalischer Einheiten mit einigen Kompromissen verbunden ist, die sich für viele Spiele nicht lohnen. Da Godot standardmäßig die Benutzerfreundlichkeit bevorzugt, sind physikalische Licht-Einheiten standardmäßig deaktiviert.

Vorteile von physikalischen Einheiten

Wenn Sie in Ihrem Projekt Fotorealismus anstreben, kann die Verwendung von Einheiten aus der realen Welt als Grundlage die Anpassung erleichtern. Referenzen für reale Materialien, Lichter und Szenenhelligkeit sind auf Websites wie Physically Based zu finden.

Die Verwendung von Einheiten aus der echten Welt in Godot kann auch nützlich sein, wenn eine Szene aus einer anderen 3D-Software portiert wird, die physikalische Licht-Einheiten verwendet (z. B. Blender).

Nachteile von physikalischen Einheiten

Der größte Nachteil bei der Verwendung von physikalischen Licht-Einheiten ist, dass Sie genau auf den jeweils verwendeten Dynamikbereich achten müssen. Wenn Sie sehr hohe Lichtintensitäten mit sehr niedrigen Lichtintensitäten mischen, kann es zu Fehlern bei der Float-Genauigkeit kommen.

In der Praxis bedeutet dies, dass Sie Ihre Belichtungseinstellungen manuell verwalten müssen, um sicherzustellen, dass Sie Ihre Szene nicht zu stark über- oder unterbelichten. Die Belichtungsautomatik kann Ihnen helfen, das Licht in einer Szene auszugleichen, um es in einen normalen Bereich zu bringen, aber sie kann die verlorene Präzision eines zu hohen Dynamikbereichs nicht wiederherstellen.

Die Verwendung physischer Licht- und Kameraeinheiten lässt Ihr Projekt nicht automatisch besser aussehen. Manchmal kann eine Abkehr vom Realismus eine Szene für das menschliche Auge sogar besser aussehen lassen. Außerdem erfordert die Verwendung physikalischer Einheiten ein höheres Maß an Strenge im Vergleich zu nicht-physikalischen Einheiten. Die meisten Vorteile physikalischer Einheiten können nur dann genutzt werden, wenn die Einheiten korrekt auf die reale Welt abgestimmt sind.

Bemerkung

Physikalische Licht-Einheiten sind nur im 3D-Rendering verfügbar, nicht in 2D.

Einrichtung von physischen Licht-Einheiten

Physikalische Licht-Einheiten können getrennt von physischen Kamera-Einheiten aktiviert werden.

Um physikalische Licht-Einheiten korrekt zu aktivieren, sind 4 Schritte erforderlich:

  1. Aktivieren Sie die Projekteinstellung.

  2. Konfigurieren Sie die Kamera.

  3. Konfigurieren Sie die Environment.

  4. Konfigurieren Sie Light3D-Nodes.

Da physikalische Licht- und Kamera-Einheiten nur eine Handvoll Berechnungen für die Umwandlung von Einheiten erfordern, hat ihre Aktivierung keine nennenswerten Auswirkungen auf die Leistung der CPU. Auf der GPU-Seite erzwingen die physikalischen Kamera-Einheiten jedoch derzeit die Schärfentiefe. Dies hat eine mäßige Auswirkung auf die Leistung. Um diese Auswirkungen auf die Leistung zu verringern, kann die Qualität der Schärfentiefe in den erweiterten Projekteinstellungen verringert werden.

Aktivieren Sie die Projekteinstellung

Öffnen Sie die Projekteinstellungen, aktivieren Sie den Schalter Erweiterte Einstellungen und aktivieren Sie dann Rendern > Licht und Schatten > Physikalische Lichteinheiten verwenden. Starten Sie den Editor neu.

Konfigurieren der Kamera

Warnung

Wenn physikalische Lichteinheiten aktiviert sind und wenn Sie einen WorldEnvironment-Node in Ihrer Szene haben (d.h. die Editor-Environment ist deaktiviert), müssen Sie eine CameraAttributes-Ressource dem WorldEnvironment-Node zugewiesen haben. Andernfalls wird das 3D-Editorfenster extrem hell erscheinen, wenn Sie einen sichtbaren DirectionalLight3D-Node haben.

Im Camera3D-Node können Sie eine CameraAttributes-Ressource zu seiner Attribute Property hinzufügen. Diese Ressource wird verwendet, um die Schärfentiefe und die Belichtung der Kamera zu steuern. Bei Verwendung der Ressource CameraAttributesPhysical wird auch die Property Brennweite zur Einstellung des Field of View der Kamera verwendet.

Wenn physikalische Licht-Einheiten aktiviert sind, werden die folgenden zusätzlichen Propertys im Abschnitt Belichtung von CameraAttributesPhysical verfügbar:

  • Blende: Die Größe der Blendenöffnung der Kamera, gemessen in Blendenstufen (F-Stops). Eine Blendenstufe ist ein einheitsloses Verhältnis zwischen der Brennweite der Kamera und dem Durchmesser der Blende. Eine hohe Blendeneinstellung führt zu einer kleineren Blendenöffnung, was zu einem dunkleren Bild und einer schärferen Schärfe führt. Eine kleine Blende ergibt eine große Blende, die mehr Licht durchlässt, was zu einem helleren, weniger scharfen Bild führt.

  • Verschlusszeit: Die Zeit für das Öffnen und Schließen des Verschlusses, gemessen in inversen Sekunden (1/N). Ein niedrigerer Wert lässt mehr Licht durch, was zu einem helleren Bild führt, während ein höherer Wert weniger Licht durchlässt, was zu einem dunkleren Bild führt. Wenn diese Property mit einem Skript abgerufen oder gesetzt wird, ist die Einheit in Sekunden statt in inversen Sekunden.

  • Sensitivität: Die Empfindlichkeit von Kamerasensoren, gemessen in ISO. Eine höhere Sensitivität führt zu einem helleren Bild. Wenn die automatische Belichtung aktiviert ist, kann dieser Wert als Belichtungskorrektur verwendet werden. Eine Verdopplung des Wertes erhöht den Belichtungswert (gemessen in EV100) um 1 Stufe.

  • Multiplikator: Ein nichtphysikalischer Belichtungsmultiplikator. Höhere Werte erhöhen die Helligkeit der Szene. Dies kann für Nachbearbeitungsanpassungen oder für Animationszwecke verwendet werden.

Der Default-Blendenwert von 16 Blendenstufen ist für Außenaufnahmen bei Tageslicht geeignet (d. h. für die Verwendung mit einem Default-DirectionalLight3D). Für die Beleuchtung in Innenräumen ist ein Wert zwischen 2 und 4 besser geeignet.

Die übliche Verschlusszeit in der Fotografie und Filmproduktion ist 1/50 (0,02 Sekunden). Bei Nachtaufnahmen wird im Allgemeinen eine Verschlusszeit von etwa 1/10 (0,1 Sekunden) verwendet, während bei Sportaufnahmen eine Verschlusszeit zwischen 1/250 (0,004 Sekunden) und 1/1000 (0,001 Sekunden) verwendet wird, um Bewegungsunschärfen zu reduzieren.

In der Realität wird die Sensitivität für Außenaufnahmen bei Tag je nach Wetterbedingungen in der Regel zwischen 50 ISO und 400 ISO eingestellt. Höhere Werte werden für Innenaufnahmen oder Nachtaufnahmen verwendet.

Bemerkung

Im Gegensatz zu realen Kameras werden die negativen Auswirkungen einer Erhöhung der ISO-Empfindlichkeit oder einer Verkürzung der Verschlusszeit (z. B. sichtbare Körnung oder Lichtspuren) in Godot nicht simuliert.

Siehe Einrichten der physikalischen Kameraeinheiten für eine Beschreibung der CameraAttributesPhysical-Propertys, die auch verfügbar sind, wenn nicht physikalische Lichteinheiten verwendet werden.

Konfigurieren der Environment

Warnung

Die Default-Konfiguration ist für Tagszenen im Freien ausgelegt. Bei Nacht- und Innenraumszenen müssen die Intensität von DirectionalLight3D und WorldEnvironment angepasst werden, damit sie korrekt aussehen. Andernfalls sind die Positionslichter bei ihrer Default-Intensität kaum sichtbar.

Wenn Sie der aktuellen Szene noch keinen WorldEnvironment und Camera3D-Node hinzugefügt haben, tun Sie dies jetzt, indem Sie auf die 3 vertikalen Punkte oben im 3D-Editor-Viewport klicken. Klicken Sie auf Sonne zur Szene hinzufügen, öffnen Sie den Dialog erneut und klicken Sie dann auf Environment zur Szene hinzufügen.

Nach der Aktivierung von physikalischen Licht-Einheiten steht eine neue Property zur Bearbeitung in der Ressource Environment zur Verfügung:

  • Hintergrundintensität: Die Intensität des Hintergrundhimmels in Nits (Candela pro Quadratmeter). Dies wirkt sich auch auf das Umgebungs- und Reflexionslicht aus, wenn deren jeweilige Modi auf Hintergrund eingestellt sind. Wenn eine benutzerdefinierte Hintergrund-Energie eingestellt ist, wird diese Energie mit der Intensität multipliziert.

Konfigurieren der Licht-Nodes

Nach der Aktivierung von physikalischen Lichteinheiten werden 2 neue Propertys in Light3D-Nodes verfügbar:

  • Intensität: Die Lichtintensität in Lux (DirectionalLight3D) oder Lumen (OmniLight3D/SpotLight3D). Wenn eine benutzerdefinierte Energie eingestellt ist, wird diese Energie mit der Intensität multipliziert.

  • Temperatur: Die Farbtemperatur des Lichts wird in Kelvin angegeben. Wenn eine benutzerdefinierte Farbe eingestellt ist, wird diese Farbe mit der Farbtemperatur multipliziert.

OmniLight3D/SpotLight3D-Intensität

Lumen sind ein Maß für den Lichtstrom, d. h. die Gesamtmenge an sichtbarem Licht, die von einer Lichtquelle pro Zeiteinheit abgegeben wird.

Bei SpotLight3Ds gehen wir davon aus, dass der Bereich außerhalb des sichtbaren Kegels von einem perfekten lichtabsorbierenden Material umgeben ist. Dementsprechend ändert sich die scheinbare Helligkeit des Kegelbereichs nicht, wenn sich der Kegel vergrößert oder verkleinert.

Eine typische Haushaltsglühbirne kann zwischen 600 und 1200 Lumen haben. Eine Kerze hat etwa 13 Lumen, während eine Straßenlaterne etwa 60000 Lumen haben kann.

Intensität von DirectionalLight3D

Lux ist ein Maß für den Lichtstrom pro Flächeneinheit, es entspricht einem Lumen pro Quadratmeter. Lux ist das Maß dafür, wie viel Licht in einer bestimmten Zeit auf eine Fläche trifft.

Mit DirectionalLight3D kann eine Oberfläche im direkten Sonnenlicht an einem klaren, sonnigen Tag etwa 100000 Lux empfangen. Ein typischer Raum in einem Haus kann etwa 50 Lux empfangen, während der mondbeschienene Boden etwa 0,1 Lux empfangen kann.

Farbtemperatur

6500 Kelvin ist weiß. Höhere Werte führen zu kälteren (blaueren) Farben, während niedrigere Werte zu wärmeren (mehr orangefarbenen) Farben führen.

Die Sonne hat an einem bewölkten Tag etwa 6500 Kelvin. An einem klaren Tag hat die Sonne zwischen 5500 und 6000 Kelvin. An einem klaren Tag bei Sonnenaufgang oder Sonnenuntergang liegt die Sonne bei etwa 1850 Kelvin.

Farbtemperaturtabelle von 1.000 Kelvin (links) bis 12.500 Kelvin (rechts)

Farbtemperaturtabelle von 1.000 Kelvin (links) bis 12.500 Kelvin (rechts)

Andere Light3D Properties wie Energie und Farbe bleiben für Animationszwecke und für den Fall, dass Sie gelegentlich Lichter mit nicht-realistischen Eigenschaften erstellen müssen, editierbar.

Einrichten der physikalischen Kameraeinheiten

Physikalische Kameraeinheiten können getrennt von physikalischen Lichteinheiten aktiviert werden.

Nach dem Hinzufügen einer CameraAttributesPhysical-Ressource zur Camera Attributes-Property eines Camera3D-Nodes werden einige Propertys wie FOV nicht mehr editierbar sein. Stattdessen werden diese Propertys nun von den Propertys der CameraAttributesPhysical bestimmt, wie z.B. Brennweite und Blende.

CameraAttributesPhysical bietet in seinem Abschnitt Frustum die folgenden Propertys:

  • Fokusdistanz: Entfernung des Objekts von der Kamera, das fokussiert werden soll, gemessen in Metern. Intern wird dieser Wert so festgelegt, dass er mindestens 1 Millimeter größer ist als die Brennweite.

  • Brennweite: Abstand zwischen Kameraobjektiv und Kamerablende, gemessen in Millimetern. Steuert das Sichtfeld und die Schärfentiefe. Eine größere Brennweite führt zu einem kleineren Sichtfeld und einer geringeren Schärfentiefe, was bedeutet, dass weniger Objekte scharf abgebildet werden. Eine kleinere Brennweite führt zu einem größeren Sichtfeld und einer größeren Schärfentiefe, was bedeutet, dass mehr Objekte scharf abgebildet werden. Diese Property setzt die Camera3D-Eigenschaften FOV und Seitenverhältnis beibehalten außer Kraft und macht sie im Inspektor schreibgeschützt.

  • Near/Far: Die Nah- und Fern-Clipping-Distanz in Metern. Diese verhalten sich genauso wie die gleichnamigen Camera3D-Propertys. Niedrigere Near-Werte erlauben der Kamera, Objekte darzustellen, die sehr nah sind, auf Kosten von möglichen Präzisionsproblemen (Z-fighting) in der Ferne. Höhere Far-Werte ermöglichen es der Kamera, weiter entfernte Objekte zu sehen, auch auf Kosten möglicher Präzisionsprobleme (Z-Kampf) in der Entfernung.

Die Default-Brennweite von 35 mm entspricht einem Weitwinkelobjektiv. Dennoch ist das Sichtfeld im Vergleich zum Default-"praktischen" vertikalen Sichtfeld von 75 Grad deutlich schmaler. Dies liegt daran, dass bei anderen Anwendungsfällen als Spielen, z. B. beim Filmen und Fotografieren, ein engeres Sichtfeld für ein filmischeres Aussehen bevorzugt wird.

Gängige Brennweitenwerte beim Film und in der Fotografie sind:

  • Fisheye (Ultraweitwinkel): Unter 15 mm. Nahezu keine Schärfentiefe sichtbar.

  • Weitwinkel: Zwischen 15 mm und 50 mm. Reduzierte Schärfentiefe.

  • Standard: Zwischen 50 mm und 100 mm. Standard-Schärfentiefe.

  • Telefoto: Größer als 100 mm. Erhöhte Schärfentiefe.

Wie bei der Verwendung des Seitenverhältnis-Modus Höhe beibehalten hängt das effektive Field of View vom Seitenverhältnis des Viewports ab, wobei größere Seitenverhältnisse automatisch zu einem größeren horizontalen Field of View führen.

Die automatische Belichtungsanpassung auf der Grundlage der durchschnittlichen Helligkeit der Kamera kann auch im Abschnitt Automatische Belichtung mit den folgenden Propertys aktiviert werden:

  • Min. Sensitivität: Die niedrigste Helligkeit, die von der Kamera erreicht werden kann, gemessen in EV100.

  • Max. Sensitivität: Die höchste Helligkeit, die von der Kamera erreichen werden kann, gemessen in EV100.

  • Geschwindigkeit: Die Geschwindigkeit des automatischen Belichtungseffekts. Beeinflusst die Zeit der Kamera, um die automatische Belichtung durchzuführen. Höhere Werte ermöglichen schnellere Übergänge, aber die daraus resultierenden Anpassungen können je nach Szene störend wirken.

  • Skalierung: Die Skalierung für den automatischen Belichtungseffekt. Beeinflusst die Intensität der automatischen Belichtung.

EV100 ist ein Belichtungswert (EV), der bei einer ISO-Empfindlichkeit von 100 gemessen wird. In dieser Tabelle finden Sie gängige EV100-Werte aus der echten Welt.