RGB-Kanaele-fuer Maskengrafik

  • Hi,
    Weil ich für VR Content erstelle, versuche ich zwanghaft Ressourcenschonend zu entwickeln.


    Mein Workflow basiert ähnlich auf diesen Beitrag der Wissensdatenbank:
    RGB Kanäle für Maskengrafiken nutzen


    Ich arbeite bei Blender mit dem Cycles Render!


    1. Ich erstelle mein Objekt in Blender und versehe es nur mit einem einzigem Material.
    2. wähle das Objekt unwrape es. (Mesh / UV Unwrap / Smaprt UV Project) (Island Margin auf 0.03 ?)
    3. Wechsle zu UV Editing und klicke Unten auf das + Icon - vergebe Objekt-Namen mit "_id" Endung, wähle Auflösung und deaktiviere Alpha ?.


    4. Kopiere das Objekt und zerteile die Oberfläche in gewünschte Flächen (LoopCut, Insert Face, zerteile die Oberflächen
    beliebig mit dem Knife tool oder Schneide die Oberfläche (Bool) mit anderen Körpern.
    5. Erstelle 1-6 verschiedene Materialien mit direkter Eingabe der RGBA werte (Blau: 0.0, 0.0,1.0,1.0), (Rot: 1.0, 0.0, 0.0, 1.0), (Orange: 0.5, 0.5, 0.0, 1.0) usw.
    6. Wähle die jeweilige Faces aus und Assigne die jeweilig Materialien.
    7. Klicke auf ein Material und wechsle zur Compositing Ansicht und wähle in der mittleren Leiste das erste Icon (Kugel: Shader nodes)
    worauf sich Diffuse BSDF und Material Output einblenden.
    8. Aus dem Menü ziehe ich von Add / Texture / Image Texture neben dem Diffuse BSDF Fenster.
    9. Klicke auf das kleine Bildchen neben dem Open Icon und wähle aus der kleinen Liste das in 3. erstelle Bild mit der _id Endung.
    10. nun wähle ich das nächte Material wie in 7. beschrieben bis alle Materialien ihre Image Textur mit der _id Bild haben.


    11. Klicke Rechts (Properties) auf den Reiter mit dem Fotoaparat und Stelle bei Sampling von Preview auf Final
    12. Ganz unten findet man Bake - Bake Type: Diffuse Color - Maring: 8 px (Wie weit er über den Rand weiterzeichnet und hoffentlich nicht in etwas anderes
    reinzeichnet - Selected to Active aktivieren - Cage aktivieren und erhöhe Extrusion auf 0.010. (Mit dem Cage fängt man kleine Unterschiede zwischen beiden
    Objekten ein.)


    13. Wechsle zur Default Ansicht. Klicke auf das Objekt mit den vielen Farben und wähle zusätzlich mit Shift+Mausklick das Objekt mit nur einer Farbe. Alles Grau? Unten Viewport Shading auf "Material" setzen.
    14. Schalte alle Lichtquellen aus. Nun klickt man während noch beide gewählt sind bei Bake auf "Bake".
    15. Oben erscheint nun entweder ein Laufbalken oder eine Fehlermeldung. Wenn da eine Fehlermeldung erscheint, was bei den ersten Versuchen nicht selten
    geschehen wird, hat man irgend etwas anderes gemacht als wie beschrieben. Ausprobieren ist angesagt-Übung macht den Meister.


    16. Wechsle zur UV Editing Ansicht worauf das hoffentlich mehrfarbige Bild angezeigt wird und klickt auf Image / Save as Image und speichert es damit ab.


    Wie man das nun in Unreal einfügt? Das kommt gleich.

  • Und die Frage lautet ?


    Geduld du haben musst 8)


    1. Exportieren des einfarbigen Objektes Export / *.fbx


    UE4
    2. Über Import die *fbx Datei auswählen und damit importieren
    3. Über Import das "Objekt"_id Bild importieren.
    4. Importiertes Bild doppelklick, rechts unter Texture / sRGB deaktivieren, Reimport und dann auf Save klicken.
    5. Über Add New / Material ein neues Material erstellen.
    6. Material doppelklicken das importierte Bild hinein ziehen und wie hier beschrieben verbinden
    7. Imprtiertes Objekt doppelklicken und rechts das soeben erstellte Material einfügen.
    8. Wie aus der Wissendatenbank beschrieben die einzelnen Kanäle verbinden.
    RGB Kanäle für Maskengrafiken nutzen


    Frage: :whistling:
    Meine Objekte besitzen nur ein einziges Image - diese zum Teil großen 2048x2048 Colormap.
    Diese weißt den jeweiligen Flächen Farbe und Parameter zu (z.B. Roughnes).
    Was wäre wenn ich alle Werte und auch die Colormap parametisiere und aus dieser Materialklasse
    für jedes neue Objekt eine Instanz erzeuge.


    1. Würde durch diese Flut an parametern (Anstatt über eine z.B. eigenen "Roughnessmap") Ladezeiten,
    FPS erhöhen oder der ShaderCache aus dem Ruder laufen?


    2. Laut Epic sollte man auch den Alpha Kanal verwenden wenn man mehr als 3 Materialen verwendet - es soll
    aber auch "damit nicht übertrieben werden" - was immer das auch heißen mag. In welchem Fall könnte die
    Verwendung des Alphakanals sich dann doch negativ auswirken, außer dass man ihn weg lassen könnte?


    3. Normals erzeugen im VR Darstellungsfehler und desshalb sollte man notgedrungen zur Displacementmap,
    Tesselationshader greifen.
    Hat jemand damit schon Erfahrung gesammelt? In VR Projekten von Epic werden trotzdem Normalmaps verwendet.


    3. Gäbe es weitere Möglichkeiten die Performance noch weiter zu verbessern?


    4. Wo kann man am besten die Performance eines einzelnen Objektes ablesen? Außer dass man davon ein paar Hundert
    generiert und die FPS betrachtet. Gibt es etwas so ähnliches wie SizeMap für die Größe des Texturenspeichers.