Ich suche nach Texturen für Unity3d und stecke in einer scheinbar einfachen Phase fest. Mein Ziel ist es, ein RGBA-Bild mit Farbinformationen für jedes Pixel und einem separaten Alphakanal zu erstellen. Diese beiden Komponenten werden als Grundfarbe bzw. Reflexionsstärke in Unity eingespeist. (Verwenden von "Reflective / Bumped Diffuse" -Material.)
Wenn ich in Photoshop Maskierungswerkzeuge verwende, kann ich Teile des Ausgabebildes löschen (Transparenz). Ich möchte jedoch die ursprünglichen RBG-Farbinformationen bei der Ausgabe beibehalten und nicht nur "leere" Bereiche haben. Es wäre auch schön, wenn ich es zerstörungsfrei machen könnte, dh. Der endgültige Alphakanal ist abhängig von einer Standardebene oder wird aus einem Pfadobjekt usw. erstellt.
Ich habe das gleiche Problem mit The Gimp.
Jede Hilfe hierzu wäre sehr dankbar.
(Wenn Photoshop / Gimp nicht die Werkzeuge für den Job sind, kann jemand bitte ein besseres empfehlen?)
Ich finde den besten Weg, dies in The GIMP zu tun, eine Ebenenmaske zu verwenden (Rechtsklick auf eine Ebene und Maske erstellen).
Der Ebene sind dann zwei "Bilder" zugeordnet - das RGBA-Bild und eine Graustufen-Ebenenmaske, die als zusätzlicher (multiplikativer) Alphakanal fungiert. Sie können auf eines dieser Bilder klicken, um auszuwählen, welches bearbeitet werden soll.
Wenn Sie die STRG-Taste gedrückt halten und auf die Ebenenmaske klicken, wird nur das RGBA-Bild angezeigt (dadurch wird die Maske deaktiviert). Wenn Sie ALT gedrückt halten und auf die Ebenenmaske klicken, wird nur die Ebenenmaske angezeigt.
Wenn Sie ein Bild mit einer aktiven Ebenenmaske exportieren, behält das exportierte Bild die Farbinformationen auch aus Bereichen bei, die die Maske vollständig transparent macht.
Für Ihre Zwecke ist es möglicherweise effektiv, Ihren Alphakanal auf einer separaten Ebene (RGBA) zu erstellen. Wenn Sie fertig sind, können Sie diese Ebene einfach in die Ebenenmaske der ursprünglichen Ebene kopieren.
quelle
Im GIMP besteht eine Möglichkeit darin, das Bild für jeden Kanal in Ebenen aufzuteilen. Wählen Sie "Farben-> Komponenten-> Zerlegen" und wählen Sie RGBA oder die Kanäle, die Sie in Ebenen aufteilen möchten. Bearbeiten Sie dann Ihre individuellen Alpha- und Farbkanäle nach Belieben (sie sollten Graustufen sein), wählen Sie unter "Farben-> Komponenten-> Komponieren" das gewünschte Kanallayout und die für jeden Kanal zu verwendenden Ebenen.
Sie können auch den Dialog "Kanäle" verwenden. Es sollte Teil der Standard-Toolbox sein, aber wenn nicht, können Sie "Windows-> Dockable Dialogues-> Channels" auswählen. Sie können die Sichtbarkeit jedes Farbkanals umschalten und durch Klicken und Hervorheben der Kanalnamen auswählen, welche einzeln bearbeitet werden sollen (es sieht so aus, als würde die Farbe mit Alpha beibehalten, obwohl ich keine Möglichkeit sehe, das Alpha währenddessen zu "verbergen" Bearbeiten ohne das gesamte Bild auszublenden ...).
quelle
Wenn Sie einen eigenen Inhaltsprozessor (wie von @Andrew Russell vorgeschlagen) für Unity3D schreiben möchten, platzieren Sie dieses Skript in Ihrem
Assets/Editor
Ordner. Dabei wird jedes Bild*-Base.*
mit einer*-Alpha.*
Datei mit ähnlichem Namen kombiniert und die ursprüngliche Textur geändert :Passen Sie die Namenskonventionen für Asset-Dateien an.
quelle
Eine Alternative besteht darin, einen eigenen Inhaltsprozessor zu schreiben, um den gewünschten Vorgang auszuführen. Auf diese Weise können Sie Ihrer "Reflektivitäts" -Ebene (oder sogar mehreren Reflektivitätsschichten) einfach einen speziellen Namen geben und diese Daten vom Inhaltsprozessor in den Alphakanal einfügen lassen. (Oder implementieren Sie tatsächlich einen beliebigen Prozess.)
Wenn Sie XNA und The GIMP verwenden (dies ist das, was ich verwende und mit dem ich vertraut bin), ist es für Sie sehr einfach, diesen XCF-Importer zu Ihrer Inhaltspipeline hinzuzufügen und die erforderlichen Änderungen vorzunehmen, um speziell benannte Ebenen zu verarbeiten.
Da Sie Unity und nicht XNA verwenden, bin ich nicht mit den verfügbaren Optionen für die Inhaltspipeline vertraut. Aber vielleicht können Sie den verknüpften Code so anpassen, dass er in Ihrem Inhaltsprozess funktioniert.
quelle