3D Forum > Qualitätsunterschiede zwischen Substance und UE4

Qualitätsunterschiede zwischen Substance und UE4

26.11.2014 12:06
 
GastMi. 26 Nov. 2014, 12:06 Uhr
Ich habe diesen Thread schon mal in einem Unreal Forum gepostet, jedoch ist das Forum recht tot und Ihr hattet ja neugierde bekundet, daher mach ich mal nen CopyPaste, hoffe das jemand nen Plan hat was ich da machen könnte.


Moin,

ich spiele schon seit Tagen mit dem Import von Texturen in UE4 rum und bin da nicht so ganz zufrieden mit.
Als Beispiel habe ich eine Plattform in Substance texturiert (Linkes Bild).

Diese Plattform habe ich dann mit Hilfe des Substance Plugin als sbsar Datei in UE4 importiert (auf zwei verschiedene Arten, rechtes Bild Plattform rechts und oben)

Dann habe ich noch mal die Texturen einzeln aus Substance exportiert und in die Diffuse Map mit Photoshop noch eine extra erzeugte Cavity Map mit eingebunden,
diese Texturen habe ich dann in ein Material eingebunden. (Rechtes Bild Plattform links)

Ich finde die Qualitätsunterschiede zwischen Substance und Unity ziemlich extrem, gerade bei der sbsar Datei, die bearbeitete geht grad noch so.
Voher hatte meine Plattform noch mehr Rost, da sah dann das Ergebnis noch verherender aus, leider habe ich grad kein Bild davon, aber wenn es gewollt ist kann ich die gerne Nachreichen.

Nun Frage ich mich, ist es normal das es so große Qualitätsunterschiede gibt ? Oder kann ich Einstellungen vornehmen die meine Darstellung verbessern ?


 
GastMi. 26 Nov. 2014, 16:14 Uhr
Doppelpost ^^

Ich habe da so ne tolle Idee wie ich meine Texturqualität enorm verbessern könnte und dabei noch schön flexible bleibe.
Vielleicht ist das System schon allseits bekannt aber wenn, dann wusste ich davon so nichts.

Vielleicht kennt sich ja jemand hier sehr gut mit Nodebasierenden Materialien aus.

Meine Idee ist folgende, würde mich mal interessieren was ihr davon haltet.

Und zwar würde mein neuer Texturworkflow wie folgt aussehen :

1. Ich bemale mein Modell mit gewissen Grundfarben wie bei einer Colormap, nur das ich mir mehrere Farben auswähle. (Rot, Blau, Gelb, Grün, Lila usw.) jede Farbe wird dann genau wie bei einer Colormap ein Material darstellen. Metal und Roughness werde ich ganz normal auftragen als wäre es mein Endmaterial.
2. Meine Normalmap wird ganz normal erzeugt, durch nen HighPoly oder direkt durch Alphas die ich auftrage.
3. Aus dem LowPoly und der Normalmap erzeuge ich dann eine Curviture Map
4. Aus der Normalmap erzeuge ich eine Ambient Occlusion Map
5. Aus der Curviture Map erzeuge ich dann eine Cavity Map
6. Aus der Cavity und der AO Map erzeuge ich dann die neue AO Map.
7. Mit der AO Map und der Curviture Map erstelle ich dann meinen Grunge der auch eine Farbe bekommt.

Jetzt exportiere ich alle Maps. AO, Normal, Metal, Roughness und die Colo/Diffusermap

In UE4 baue ich mir dann ein Vorlagenmaterial wo ich in Zukunft einfach meine Maps rein schieben kann.
Normal, Metal, Roughness und AO werden dabei 1 zu 1 übernommen,

Meine Color/Diffusemap wird dann nach Farben in meinem Material aufgesplittet.
Jede Farbe wird aus der bunten Diffusemap extrahiert und in Grayscale umgewandelt.
Der Output ist dann nichts anderes als eine Maske, die ich mit einer Tile-Textur kombinieren werde. somit wird die Textur nur dort aufgebracht wo die weißen Flächen sind.
Neben der Textur kommt noch nen Multiplikator für eventuelle leuchtene Bereiche.
Das ganze wiederhole ich für jede Farbe auf der Color/Diffusemap, so das ich am Ende jeden farbigen Bereich theoretisch mit einer Tiletextur belegen könnte.

Das Ganze wird dann am Ende im Material zusammen gefügt und ich habe ein einziges Material mit allen Elementen, je nachdem wie detailiert ich es haben möchte, brauche ich nur die Tiles hoch zu drehen.
Wenn ich das Material dann mein Objekt einfach mal gerne in anderen Farben haben möchte muss ich nur die Texturen austauschen und alles sieht weiterhin TOP aus.

Man muss halt einmal den Aufwand für die Vorlage in kauf nehmen aber danach sollte man dafür um so besser klar kommen bzw. super Ergebnisse erzielen können.


Was meint Ihr ?? nen alter Hut ?? oder tatsächlich ne tolle Idee ?? Skepsis ??? Kritik ?? Vorschläge ???
 
SleepyMi. 26 Nov. 2014, 16:51 Uhr



1. Ich bemale mein Modell mit gewissen Grundfarben wie bei einer Colormap, nur das ich mir mehrere Farben auswähle. (Rot, Blau, Gelb, Grün, Lila usw.) jede Farbe wird dann genau wie bei einer Colormap ein Material darstellen. Metal und Roughness werde ich ganz normal auftragen als wäre es mein Endmaterial.


Das ist doch eigenlich ein normaler Substance Workflow und somit ein alter Hut.

Du kannst dein modell doch in deinem 3D Programm mit verscheiden Materallien versehen. Du brauchst diese nicht einmal verschieden einfärben. Einfach Blinn1 Blinn2 usw.

Wenn du das gemacht hast kann du dein Modell als FBX nach Substance Exportieren.

Dort Bakst du die SVG und stellst unten from Material ID ein. Rechts kannst du nun für jedes einer Blinn Texturen eine Farbe zuweisen.

Somit hast du genau das was du hier beschreibst.

Diese SVG kannst du mit der Multi-Material-Blend node als Maske du vergibst nun jeder deiner Farben der SVG ein Material Input.

Im Multi Material Blend kannst du nun deine Texturen dem entsprechenden Input zuweisen.

Fertig.

2. Meine Normalmap wird ganz normal erzeugt, durch nen HighPoly oder direkt durch Alphas die ich auftrage.


Ich Würde die Bend Normal rausbaken und diese mit der Texturnormal mischen.

Aus dem LowPoly und der Normalmap erzeuge ich dann eine Curviture Map


Die Curviture kannst du doch auch aus der Diffuse erzeugen es gibt extra eine Curviture Node.

Was du aber machen kannst ist:
Bake die Curviture aus deinem High oder Lowpoly Modell und vermische diese am Anfang deiner Nodes mit der Diffuse somit hast du die Kanten der Curviture in deiner Textur als Basis Textur.

5. Aus der Curviture Map erzeuge ich dann eine Cavity Map
6. Aus der Cavity und der AO Map erzeuge ich dann die neue AO Map.
7. Mit der AO Map und der Curviture Map erstelle ich dann meinen Grunge der auch eine Farbe bekommt.


Die AO kannst du doch auch aus der Diffuse bzw der Grayscale Conversion zauber.
Ich wiede die AO eh am schluss mit der Diffuse via Blend (Multiply) mischen. Damit du deine Ao gleich in der Textur drine hast.


In UE4 baue ich mir dann ein Vorlagenmaterial wo ich in Zukunft einfach meine Maps rein schieben kann.
Normal, Metal, Roughness und AO werden dabei 1 zu 1 übernommen,


Das funktioniert ganz gut ja kannst du machen wenn du deine Exposen in Substance gut eingestellt hast,

Wenn du PBR haben willst könntest du aber auch aus deinen Output Maps mit dem Bitmap2Material tool die Roughness, Metallic usw generieren. Also deine Textur in PBR convertieren sozusagen.

Mit der Switchnode kannst du dir auch schaltungen bauen wo du zb in Unity oder Unreal zwischen Normalmap und Bumpmap hin und herschalten kannst. Oder du kannst zwei Input Texturen verwenden wo du entweder die eine oder die andere nehmen kannst aber in Unity oder Unreal beide als Input hast.

Dein Workflow ist definitiv nicht falsch aber ich finde es geht auch einfacher.

 
GastMi. 26 Nov. 2014, 18:53 Uhr
Ja das klingt alles ganz toll Sleepy nur gibt es da 2-3 Probleme.
Das erste Problem ist, das ich in Max nur Materialien auf Geometrie legen kann und bei nem LowPoly gibt es nicht all zu viel davon.

Dann ist es so das ich nur den Painter habe und nicht den Designer, der ganze Designer Workflow ist somit nicht umsetzbar, das ist aber ok da ich ja eh die Materialien malen will / muss.

Somit geht mein Workflow direkt vom LowPoly zum Painter.

Das ganze Node gedöns mache ich dann direkt in UE4.
Von der Sache her finde ich meinen erdachten Workflow ziemlich einfach sofern die Vorlage steht.

1. Ganz normal malen
2. Die Maps baken
3. Die Maps in meine Materialvorlage werfen und Materialtexturen wählen
4. Bei Bedarf etwas anpassen (Licht, Normal der Textur) sofern gewollt

Fertig
 
SleepyMi. 26 Nov. 2014, 20:00 Uhr
Aso das du die Nodes in UE zusammensteckst ist mir entgangen.
Da du von Substance geredet hast hab ich angenommen du willst diesen Workflow im Desgier bauen und als Expose exportieren.

Wie gesagt du kannst das so machen.
 
GastMi. 26 Nov. 2014, 21:36 Uhr
Klingt auf jeden Fall interessant, mal ich denke ich werde das mal ausprobieren und dann mal schauen was dabei raus kommt.

Danke dir auf jeden Fall Sleepy für die ausführliche Antwort smile
 
GastDi. 09 Dez. 2014, 11:17 Uhr
So ich hab nun mal etwas rumexperimentiert und sehr schöne Ergebnisse bekommen.

Jedoch habe ich immer noch Qualitätsunterschiede zwischen Level und Menüansicht (sogar innerhalb der Engine)

Das witzige ist, wenn ich an mein Modell ranzoome wird die Qualität besser, Zomme ich weiter weg wird die Quali verschwommen.
Ich denke es hat etwas mit irgendwelchen Post Einstellungen zu tun oder aber es hängt mit dem Skylight zusammen.

Mein Problem ist halt nur grad, das Unreal 20 Millionen Einstellungsmöglichkeiten hat und ich nicht weiß an welchem Rädchen ich drehen muss,

Jemand ne Ahnung ????
(Siehe Bilder, einmal das Bild in der Testmap mit den zwei Mechs und dann das Bild direkt aus dem Objektblueprint wo ich den Mech zusammengesetzt habe)







 
defraggerDi. 09 Dez. 2014, 11:34 Uhr
Das liegt am Texture Streaming von UE4.
"Streaming Distance Multiplier" Setting im Mesh Window verändern. Probier mal einen Wert von 1000.

Du wirst mit UE4 aber nie richtig 100% crispe Ergebnisse bekommen. In der AO Buffer Visualization sieht man, dass das AO ziemlich grob körnig ist. Damit das später nicht auffällt und um die Kanten zu verbessern kommt im Renderer ein minimaler Pixel Blur drauf.

Und man darf nicht vergessen, dass die meisten Viewer im Post noch Scharfzeichnen.

Also ein minimaler Unterschied zwischen Viewer und UE4 wird sich nicht vermeiden lassen.
 
GastDi. 09 Dez. 2014, 12:03 Uhr
Erstmal danke defragger .. werde den Wert mal verändern und sehen was passiert.

Dann muss ich mal ganz doof Fragen was ist Crispe ??
Dann habe ich keine Ahnung wo die AO Buffer Visualization ist, wenn du einfach den Screen von der Level meinst, dann liegt das körnige daran das die Lichterqualität nur auf Preview steht und nicht auf Produktion.

Besseres Licht, also bessere Qualieinstellungen vom Licht bringen aber auch keinen Unterschied (ausser nen besseren Schatten) bei der Textur.

Meinst du mit Viewer die Blueprintansicht ??
Hätte jetzt nicht gedacht das UE4 da Unterschiede hat, ist etwas blöd wenn es im Viewer besser aussieht als im Game.

Eigentlich ist es nicht wirklich schlimm weil man später eh kaum was von den Details sehen wird aber wenn mans weiß und man es bei der Entwicklung sieht möchte man ja schon das beste Ergebnis raus holen.


Danke auf jeden Fall, bin gespannt was passiert wenn ich den Wert auf 1000 drehe... hoffe ich sehe nen Unterschied.
 
GuyGoodDi. 09 Dez. 2014, 12:16 Uhr
Was Defragger nur sagen wollte:

UE4 hat ein Texture Streaming, was standardmäßig aktiviert ist. Und mit dem Multiplikator kannst du der Engine sagen, dass das höher aufgelöste Mip-Level früher genutzt werden soll. Dadurch wird es etwas schärfer -> engl. crisp

Zusätzlich meinte er noch, dass verschiedene Post-Processing Effekte einen Blur haben, und wenn diese dann über den Bildschirm gelegt werden, wird das bild auch etwas "vermatscht".
 
 

 


 
 
© 3D-Ring - deutsche 3D Software Community, Archiv 2001 - 2006