Beachten Sie die Art und Weise, in der die Hauptlichtquelle in jedem Bild vom Boden reflektiert wird, als Funktion des Abstands zwischen der Lichtquelle und dem Betrachter (?).
Ist das eine (bestoßene) Spiegelkarte? Der Effekt ist überall in World of Warcraft zu sehen. Ich erinnere mich besonders an den Schnee in Dun Morogh und an den Ufern des Darrowmere-Sees. Ein direkter Blick in die Sonne ist erforderlich. Der Effekt ist auch häufig auf der Wasseroberfläche in RL und in CG. Insbesondere möchte ich den Effekt erzielen, bei dem die Reflexion auf der Bodenoberfläche näher an der Lichtquelle intensiver ist und abfällt, wenn sie sich dem Betrachter nähert.
shaders
lighting
terrain-rendering
Ingenieur
quelle
quelle
Antworten:
Ich stelle mir vor, wenn ich einen solchen Shader bauen würde, gäbe es bestimmte Phänomene, mit denen ich beginnen werde.
Erstens ist das Sonnenlicht gerichtet, was bedeutet, dass es weder Position noch Dämpfung hat.
Zweitens wird die diffuse Komponente einfach berechnet, indem ein Punktprodukt zwischen der Sonnenrichtung und den Oberflächennormalen genommen wird. Durch Hinzufügen einer normalen Abbildung kann das Detail erweitert werden.
Der schwierige Teil ist die Modellierung der sonnengerichteten Spiegelkomponente. Um einen ähnlichen Effekt zu erzielen, würde ich ihn in kleinere Probleme aufteilen:
Ax, Ay
in der folgenden Wards-Gleichung.Wo:
X,Y
Vektoren verwendet werden, insbesondere, dass der Tangentenraum in Computergrafiken so häufig ist, dass er in jeder Engine berechnet werden kann (normalerweise berechnet) basierend auf Texturkoordinaten).Beachten Sie im Bild, wie die spiegelnde Beleuchtung im Gegensatz zum üblichen Phong-spiegelnden Licht gerichtet ist. Hier ist ein Artikel über das Ward-Modell und wie man verschiedene Effekte erzielt. BEARBEITEN Weitere Informationen zur Eignung von BRDF zur Reduzierung der Lichtintensität näher am Betrachter finden Sie hier .
Zum Schluss noch zwei (optionale) zwei Punkte, die ich dem endgültigen Bild hinzufügen könnte:
quelle
Die Reflexion selbst ist nur die Spiegelreflexion, die Sie als Ausgabe der Funktionen Ihres spezifischen Beleuchtungsmodells erhalten.
Es gibt viele verschiedene Beleuchtungsmodelle mit unterschiedlicher Komplexität, die eine ähnliche Reflexionsform erzeugen. Ein ähnliches Aussehen kann jedoch bereits mit einem einfachen Blinn-Phong-Beleuchtungsmodell mit bloßen Knochen erzielt werden , das (jetzt) wahrscheinlich das meiste ist Grundlegendes Beleuchtungsmodell, das von Grafik-Engines und höchstwahrscheinlich auch von World of Warcraft verwendet wird.
Es wird physisch nicht korrekt sein und Ihren Bildern vollständig entsprechen, aber es wird sehr ähnlich aussehen . Das Beispiel von Concept3D für das Ward-Modell ist physikalisch korrekter und funktioniert für komplexere Oberflächentypen (nämlich Materialien, bei denen die mikroskopischen Unebenheiten in ihren Oberflächen nicht gleichmäßig verteilt sind, sondern unterschiedliche Wahrscheinlichkeitsverteilungen aufweisen), aber ich kenne keine konkreten Beispiele von Echtzeit-Renderern, die es verwenden, aufgrund schlechter Gewinne in Bezug auf Qualität / Leistung.
In der Praxis werden solche Arten von Reflexionen auf Oberflächen durch zusätzliche Spiegel- / Glanz- und Normaltexturen ergänzt, die den Glanz / die Rauheit einer Oberfläche bzw. die Richtung der Normalen der Oberfläche modifizieren, die beide Eingaben in die Beleuchtungsgleichungen sind typischer Beleuchtungsmodelle. Dies geschieht, weil in der realen Welt die physikalischen Eigenschaften der Oberfläche am häufigsten (außer vielleicht etwas wie Kunststoff oder einem Spiegel) nicht überall auf der Oberfläche gleich bleiben, sondern von Pixel zu Pixel stark variieren können.
quelle
Specular Bump Mapping (normales Mapping) oder Parallax Mapping.
quelle