Szenenbeleuchtung
Standardmäßig werden die remote gerenderten Objekte mit Himmelslicht beleuchtet. Bei den meisten Anwendungen ist ein statisches Himmelslicht bereits ausreichend, aber Sie können der Szene weitere dynamische Lichtquellen hinzufügen.
Wichtig
Nur PBR-Materialien werden von Lichtquellen beeinflusst. Farbige Materialien und Punktwolken wirken stets vollständig leuchtend.
Hinweis
Schattenwurf wird derzeit nicht unterstützt. Azure Remote Rendering ist so optimiert, dass riesige Mengen von Geometriedaten gerendert werden können, bei Bedarf unter Verwendung mehrerer GPUs. Herkömmliche Ansätze für Schattenwurf funktionieren in solchen Szenarien nicht einwandfrei.
Gemeinsame Eigenschaften von Lichtkomponenten
Alle Lichttypen leiten sich von der abstrakten Basisklasse LightComponent
ab und haben diese Eigenschaften gemeinsam:
Farbe: Die Farbe des Lichts im Gammabereich. Alpha wird ignoriert.
Intensität: Die Helligkeit des Lichts. Bei Punkt- und Spotlicht definiert die Stärke auch, wie weit das Licht strahlt.
Punktlicht
In Azure Remote Rendering kann PointLightComponent
nicht nur Licht von einem einzigen Punkt aus abgeben, sondern auch von einer kleinen Kugel oder einer kleinen Röhre, um weichere Lichtquellen zu simulieren.
Eigenschaften von PointLightComponent
Radius: Der Standardradius ist Null, in diesem Fall fungiert das Licht als Punktlicht. Wenn der Radius größer als null ist, wirkt es als kugelförmige Lichtquelle, die das Erscheinungsbild spiegelnder Schlaglichter verändert.
Length (Länge): Wenn sowohl
Length
als auchRadius
ungleich null sind, wirkt das Licht wie ein Röhrenlicht. Diese Kombination kann zum Simulieren von Neonröhren verwendet werden.AttenuationCutoff: Bei Belassen auf (0,0) hängt die Lichtabnahme des Lichts nur von dessen
Intensity
ab. Sie können jedoch benutzerdefinierte Mindest- und Höchstabstände angeben, über die die Lichtstärke linear auf 0 verringert wird. Dieses Feature kann verwendet werden, um einen kleineren Einflussbereich eines bestimmten Lichts zu erzwingen.ProjectedCubemap: Bei Festlegung auf eine gültige Cubemap wird die Textur auf die umgebende Geometrie des Lichts projiziert. Die Farbe der Cubemap wird mit der Farbe des Lichts moduliert.
Spotlicht
SpotLightComponent
ist PointLightComponent
ähnlich, aber das Licht ist auf die Form eines Kegels beschränkt. Die Ausrichtung des Kegels wird durch die negative z-Achse der Entität des Besitzers definiert.
Eigenschaften von SpotLightComponent
Radius: Identisch mit
PointLightComponent
SpotAngleDeg: Dieses Intervall definiert den inneren und äußeren Winkel des Kegels, gemessen in Grad. Alles innerhalb des Innenwinkels wird mit maximaler Helligkeit beleuchtet. Zum äußeren Winkel hin wird eine Abschwächung angewendet, die einen halbschattenartigen Effekt erzeugt.
FalloffExponent: Definiert, wie stark der Falloffübergang zwischen dem inneren und dem äußeren Kegelwinkel erfolgt. Ein höherer Wert führt zu einem schärferen Übergang. Der Standardwert 1,0 führt zu einem linearen Übergang.
AttenuationCutoff: Identisch mit
PointLightComponent
Projected2dTexture: Bei Festlegung auf eine gültige 2D-Textur wird das Bild auf Geometrie projiziert, auf die das Licht leuchtet. Die Farbe der Textur wird mit der Farbe des Lichts moduliert.
Gerichtetes Licht
DirectionalLightComponent
simuliert eine Lichtquelle, die unendlich weit entfernt ist. Das Licht strahlt in die Richtung der negativen z-Achse der Entität des Besitzers. Die Position der Entität wird ignoriert.
Es gibt keine weiteren Eigenschaften.
Überlegungen zur Leistung
Lichtquellen haben einen erheblichen Einfluss auf die Renderingleistung. Verwenden Sie sie mit Bedacht und nur dann, wenn es die Anwendung erfordert. Alle statischen globalen Lichtverhältnisse, einschließlich einer statischen gerichteten Komponente, können mit einer benutzerdefinierten Himmelstextur ohne zusätzliche Renderingkosten erreicht werden.
API-Dokumentation
- C# LightComponentBase-Klasse
- C# PointLightComponent-Klasse
- C# SpotLightComponent-Klasse
- C# DirectionalLightComponent-Klasse
- C++ LightComponentBase-Klasse
- C++ PointLightComponent-Klasse
- C++ SpotLightComponent-Klasse
- C++ DirectionalLightComponent-Klasse