Ich mache ein kleines Spiel in Unity und einige Modelle zeigen sehr hässliche Schattierungen. Die Schattierung sieht normalerweise entlang der Kanten zwischen Dreiecken funky aus. Ich bin ziemlich neu in der Arbeit in 3D; Ich wette, dies ist ein Artefakt der Scheitelpunktbeleuchtung, aber ich bin mir nicht sicher und ich bin mir nicht sicher, wie ich es beheben soll.
Hier sehen Sie das schlimmste Beispiel für dieses Problem:
In dieser Aufnahme ist eine Lichtkarte von geringer Qualität sichtbar, aber ich frage nach den sichtbaren Bändern und seltsamen Formen, die auf der Oberfläche des orangefarbenen Netzes im Vordergrund sichtbar sind. Das Netz wurde in Blender erstellt und UV-abgebildet und verwendet einen standardmäßigen diffusen Shader. Hinter und über der Kamera leuchtet ein Licht. Alle anderen Lichter in der Szene sind ziemlich weit weg. Was mache ich falsch und wie kann ich es besser machen?
BEARBEITEN: Unten ist das Drahtmodell für dieses Modell in Blender.
Antworten:
Es sieht so aus, als ob Ihre Scheitelpunktnormalen durcheinander geraten könnten. Die Normalen jedes Scheitelpunkts sollten senkrecht zu seiner Fläche sein (parallel zu den Flächennormalen, die in Ihrem Drahtgitterbild angezeigt werden), und Sie benötigen separate Scheitelpunkte für die Ecken, einen für jede Fläche, die sich an einer Ecke trifft.
quelle
Das sieht nach einem normalen Scheitelpunktproblem aus. Ich habe Blender nicht verwendet. Ich bin mir nicht sicher, welche Optionen Sie haben, um die Normalen direkt auf der Scheitelpunktebene anzuzeigen / zu ändern.
Das erste, was ich zum Testen tun würde, ist, die Vorderseite vom Rest des Objekts abzubrechen und zu prüfen, ob es richtig leuchtet. Wenn das funktioniert, können Sie es einfach als 2 Teile exportieren, Vorder- und Rückseite als ein Objekt und dann Seitenteile als ein anderes.
quelle
Ich weiß, dass dies ein alter Thread ist, aber ich bin darüber gestolpert, sodass möglicherweise jemand anderes von dieser Antwort profitieren kann: Das Problem ist: Sie versuchen, Normalen (glatte Schattierung) über einen Winkel von 90 ° zu interpolieren, was die meiste Zeit dazu führt Probleme.
Hierfür gibt es mehrere Lösungen: 1. Stellen Sie die Schattierung auf flach (T-Menü). 2. Wählen Sie alle Kanten mit einem Winkel> 50 aus (oder höher, spielen Sie ein bisschen herum) und drücken Sie STRG E -> Markieren Sie scharf. Unity kann diese Informationen lesen. Es wird die Vert teilen. Normalen an den markierten Kanten, anstatt zu versuchen, sie zu interpolieren. 3. Verwenden Sie einen Kantenaufteilungsmodifikator, um das Netz tatsächlich in dem von Ihnen angegebenen Winkel zu teilen (ich würde in diesem Fall den oberen empfehlen). 4. Verwenden Sie einen Abschrägungsmodifikator mit einer Tiefe von 2 oder höher. Ich würde diese Option empfehlen, sie macht das Netz etwas höher poly, aber auch realistischer. Markieren Sie entweder die Kanten, die abgeschrägt werden sollen, oder wählen Sie den Winkel als Begrenzungsmodus.
quelle
Wenn Sie tatsächlich Lightmapping verwenden, verfügt Unity über eine Modellimporteinstellung zum Generieren von Lightmap-UVs, die wahrscheinlich Ihr Problem lösen würde.
quelle