Wie schafft man einen guten Metal-Shader?
Für verschiedene Metalle und sagen mehr oder weniger erodiert / rostig und so weiter.
Ich weiß, dass ein Unterschied zu gewöhnlichen Materialien darin besteht, dass Metall das spiegelnde Licht "färben" sollte, aber wenn ich das zum Beispiel mit Gold mache, sieht es nur "gelb" aus, überhaupt nicht metallisch.
Jede Hilfe dankbar!
graphics
shaders
graphic-effects
Valmond
quelle
quelle
Antworten:
Ich habe kürzlich Shader für saubere und gebürstete Metalle für mein laufendes Spiel erstellt und bin mit den Ergebnissen ziemlich zufrieden.
Sauberes Metall: Das wichtigste Merkmal in meinen Experimenten waren die Umgebungsreflexionen mit Würfelkarten. Ich habe sie in Echtzeit-Rendering-to-Texture-Umgebungen implementiert, aber auch statische Bilder liefern oft gute Ergebnisse und es ist einfacher, sie zu verwischen. Das zweitwichtigste Merkmal war der Fresnel-Effekt, der die Silhouetten der Objekte verbessert. Dies gibt zum Beispiel einen runderen Look für Bälle. Eine spiegelnde Beleuchtung ist nicht unbedingt erforderlich, da die Würfelkarte die Highlights direkt bereitstellen kann. HDR-Rendering ist auch wichtig, damit die Cube-Map-Reflexionen gut aussehen.
Gebürstetes Metall: Bei gebürsteten Metallen erzielen Sie recht einfach gute Ergebnisse, wenn Sie eine Bürstentextur wie diese verwendenzusammen mit anisotroper Beleuchtung. Für anisotrope Beleuchtung finden Sie Tutorials aus dem Internet, aber ich habe meine eigenen implementiert, indem ich Blinn-Phong als Basis verwendet habe, aber aus dem Halbvektor habe ich 80% der Tangentenrichtung eliminiert. Dies bedeutet, dass Sie Tangenten oder Bitangenten zusätzlich zu Normalen in Ihren Modellen benötigen. Die Umgebungsreflexionen sind für gebürstetes Metall schwierig. Sie können von der Würfelkarte ausgehend von der Tangente / Bitangente aus mehreren Richtungen abtasten. Für gute Ergebnisse benötigen Sie jedoch möglicherweise viele Beispiele. Dies ist jedoch nicht unbedingt erforderlich, da die Textur und anisotrope Beleuchtung mit mehreren Lichtquellen bereits sehr gut aussieht. Das Endergebnis sieht in meinem Fall so aus:
quelle
Wie Nicol in seinem Kommentar sagte, gibt es eine Menge Dinge, die in einen hochwertigen Metal-Shader einfließen. Für die besten Ergebnisse Ihrer Renderer Bedürfnisse zu Gamma-korrekt und verwenden physikalisch basierten Shading - Modelle (siehe insbesondere die beiden Papiere von Naty Hoffman zu diesem Link).
Unter diesen Umständen besteht der typische Weg, ein Metallmaterial herzustellen, darin, eine sehr geringe oder nicht vorhandene diffuse Farbe und ein hohes spiegelndes Reflexionsvermögen im Bereich von 50% bis 100% (im linearen Farbraum) zu haben. Wie Sie bereits bemerkt haben, ist das Spiegelbild bei einigen Metallen farbig.
Da das Metall nur spiegelnd oder nicht diffus erscheint, ist die Reflexion äußerst wichtig. Wenn es nur spiegelnd Punktlichter reflektiert, erhalten Sie das Aussehen eines schwarzen Materials, da der Rest der Umgebung fehlt (selbst ein sehr raues Metall reflektiert ein unscharfes Bild seiner Umgebung). Eine typische Methode, um mehr Reflexion zu erzielen, ist die Verwendung einer Cubemap. Realistische Reflexion in Echtzeitgrafiken ist jedoch ein großes Thema, und es gibt viele verschiedene Ansätze.
quelle