Wie die meisten Webseiten nutzen wir Cookies. Nähere Informationen dazu, wie wir mit diesen Cookies umgehen, können Sie in unseren Datenschutzbestimmungen lesen.   Einverstanden
 
 

3D Forum > Cinema4d Redshift - Texturen switchen bzw. pro Bild ändern

Cinema4d Redshift - Texturen switchen bzw. pro Bild ändern

03.01.2023 16:22
 
wlmulDi. 03 Jan. 2023, 16:22 Uhr
Hallo,

ich habe bisher kein Redshift verwendet und teste gerade.

Ich muß häufig Bilder in verschiedenen Farbkombinationen rendern.
Dies habe ich bisher über XPRESSO-Nodes gesteuert indem ich mir über animierte Benutzerdaten (Strings) den jeweiligen Texturpfad ausgebe und an das Material weitergebe.

Im Bild (Anhang) mal ein Beispiel wie solch ein Dateipfad zusammengesetzt wird. Die Gehäusefarbe ändert sich bei jedem Bild.

Ich bekomme das mit dem Redshift-Material leider nicht mehr hin.


 
 
wlmulDi. 03 Jan. 2023, 17:19 Uhr
Habe es rausbekommen.
Manchmal sieht man den Wald vor lauter Bäumen nicht.

Einfach die Textur animieren - ohne den Pfad über die Benutzerdaten zu erstellen!
 
georg3dMi. 04 Jan. 2023, 19:23 Uhr
Ist das nicht eine klassische Postanwendung? Also rendern und in der Post einfärben?
 
HerbieMo. 09 Jan. 2023, 15:02 Uhr
Diese XPRESSO-Schaltung interessiert mich, weil ich begierig bin, alles kennenzulernen, was man mit C4D machen kann. Darum habe ich sie (in R13) nachgebaut, aber
1. weiß ich nicht, welche der Nodes du durch Ziehen in den Editor erstellt hast,
2. kann ich bei dem Mathe-Node keinen zweiten Ausgang erzeugen,
3. kann ich mit der Abkürzung RAL nichts anfangen.
 
KullerkeksMo. 09 Jan. 2023, 22:24 Uhr
Da ich mir nicht sicher bin, ob der TE hier noch mal reinschaut und ich XPresso wirklich mag, antworte ich mal:

Die Schaltung erstellt einen Dateipfad, der als Texturname in Material eingetragen wird. Das ist eine recht spezielle Anwendung und die Schaltung lässt sich durchaus auf verschiedene Art und Weise aufbauen

Zuerst einmal müssen die Texturen, deren Namen erzeugt werden, tatsächlich als Bitmapdateien existieren und für C4D erreichbar in einem Pfad abgelegt werden. Fürs Beispiel liegen sie auf Laufwerk C im Verzeichnis "farben" und beginnen alle mit "datei-RAL-". Die erste Datei heißt "datei-RAL-7000.tga", die letzte "datei-RAL-7048.tag".

!Für unsere Testdatei müssen die Texturen natürlich nicht existieren, die Schaltung funktioniert auch so, aber sie weist natürlich keine Texturen zu, wen sie nicht vorhanden sind!

Zu deiner 3. Frage: RAL ist eine Farbnorm, mehr hier: https://de.wikipedia.org/wiki/RAL-Farbe

Dann müssen Nutzerdaten angelegt werden. Einmal sind das die Farbnummer, wir erlauben ganze Zahlen von 7000 bis 7048, als zweites ist das der Text "datei-RAL-", den wir bei den Nutzerdaten "Dateipfad" nennen. Die Nutzerdaten habe ich für das Objekt "Null" erzeugt.

Jetzt kommt die XPresso-Schaltung:
Das Objekt "Null" bekommt ein XPresso-Tag. In dieses Tag ziehen wir das Null-Objekt und erzeugen zusätzlich einen Konstanten-Node, eine Mathe-Node und einen Ergebnis-Node.

Der Konstanten-Node, der Ergebnis-Node und der Mathenode bekommen den Datentyp "String". Der Konstanten-Node erhält als festen Wert den String ".tga".

Die Verdrahtung beginnt:
Wenn wir beim Node von "Null" auf das rechte obere rote Kästchen klicken, bekommen wir eine Auswahl der möglichen Ports angezeigt. Wir erzeugen "Dateipfad" und "Farbnummer" aus den Nutzerdaten.

"Dateipfad" wird mit dem ersten Eingang des Mathe-Nodes verbunden, "Farbnummer" mit dem zweiten und der Ausgang vom Konstante-Node mit dem dritten (den erzeugen wir per Klick auf das linke blaue Viereck im Node).

Der Ausgang vom Mathe-Node wird in den Eingang des Ergebnis-Nodes gestöpselt. Dort sollte jetzt "C:farbendatei-RAL-7000.tga" zu lesen sein. Der Mathe-Node addiert brav unsere drei Bestandteile zum einem gemeinsamen String.

Abschließend muss dieser Dateipfad natürlich noch einer Textur landen. Wir erzeugen ein Objekt, dem die Farbe zugewiesen werden soll, und ein Material. Das Material wird dem Objekt zugewiesen, im Testfile ist das der Würfel. Dem Material weisen wird irgendeine Textur im Farbkanal zu, egal welche.

Wir öffnen das Material im Materialmanager und sehen dort im Farbkanal das viereckige Vorschaubild (unter "Textur" und dem Pfad). Dieses Vorschaubild greifen wir mit der Maus und ziehen es ins XPresso-Fenster. Dort erscheint ein neuer Node, der "Bitmap" heißt. Wir verbinden den Ausgang des Mathe-Nodes (Frage 2: Ausgänge kannst du so oft du willst an andere Nodes weitergeben) mit dem Bitmap-Node (und dort dem Port "Datei", Klick auf das linke obere blaue Kästchen und Auswahl treffen).

Fertig.

Wenn du jetzt in den Benutzerdaten den Farbnummer-Regler bewegst, wird automatisch eine neue Textur im Material zugewiesen.

Fragen? Gerne.

Die Datei hab ich angehängt.

Viel Spaß,
der Keks
 
wlmulDi. 10 Jan. 2023, 07:06 Uhr
Hallo Kullerkeks,

vielen Dank dafür, dass Du meinen Part so toll übernommen hast!
Leider bin ich seit Samstag sehr eingeschränkt unterwegs - Rechner defekt!

Es ist genau so wie Du beschrieben hast!
Ich baue mir über die Mathe-Schaltung und die Benutzerdaten (Farben.1) den Pfad zur Texturdatei (*.tga) für die Gehäusefarbe.

Zur Ergänzung (das sieht man im Bild nicht) gibt es nochnmal diesselbe Schaltung für die Frontenfarbe des Produktes.

Ich baue mir dann über die einzelnen Bilder (0-99) eine definierte Farb-Kombination-Reihe auf.
GF - Gehäusefarbe
FF: Frontenfarbe

D.h.

Bild 0: GH: RAL7035 FF:RAL5010
Bild 1: GH: RAL7035 FF:RAL3000
.
.
.
Bild99: GH: RAL9000 FF: RAL9000

Dazu setze ich bei jedem Bild die entsprechenden Keyframes in den Benutzervariablen Gehäuse- und Frontenfarbe.
Ich lasse dann Bild 0 - Bild 99 rendern und habe als Ergebnis 100 Bilder mit den benötigten Farbkombinationen.


 
KullerkeksDi. 10 Jan. 2023, 10:38 Uhr
Danke wlmul!

Ich bin davon ausgegangen, dass du reichlich zu tun hast - desto schlimmer ist der Rechnerausfall!
Ich hoffe, du bekommst das schnell wieder in Ordnung.

XPresso ist auf jeden Fall ein tolles Werkzeug. Ich ergänze es gern mit rudimentärem Python (weil meine Kenntnisse davon nicht besser sind )

Alles Gute,
der Keks
 
HerbieDi. 10 Jan. 2023, 11:43 Uhr
Wow!! Vielen, vielen Dank! Meine Erwartungen wurden weit, weit übertroffen!
 
KullerkeksDi. 10 Jan. 2023, 14:26 Uhr
Freut mich, wenn es jemand nützt smile

Gleich noch eine Ergänzung, warum Python sich hier als Ergänzung anbietet (der Code ist wirklich gaaanz einfach gehalten). Wir ersparen uns hier das Keyframes-Setzen, indem wir eine Liste mit den Farben erstellen, die wir verwenden wollen. Diese Liste geben wir in Python ein. Vielleicht ist diese Abänderung auch allgemein interessant.

Der gesamte Code lautet:

def main():
global Farbe, Frame

Farbliste = [7000, 7024, 7032, 8000, 8022]
if Frame > len(Farbliste)-1:
Frame = 0

Farbe = Farbliste[Frame]

def main(): ist schon vorgegeben.

global Farbe, Frame macht zwei Variablen "global".

Farbliste ist der eigentliche Knackpunkt. Hier speichern wir alle Farbwerte, die wir verwenden wollen.

Die nächsten zwei Zeilen können wir auch weglassen, sie sind eine Sicherheitsfunktion, falls wir versuchen, einen Frame zu rendern, der "größer" als die Anzahl der verfügbaren Farbdateien ist.

Die XPressoschaltung ändert sich nicht wesentlich, außer dass nun pro Frame eine neue Farbnummer aus der Liste geholt und in den Dateinamen eingesetzt wird.

Mit Farbe =Farbliste[Frame] lesen wir pro Bild einen Wert aus der Liste aus. Bei Bild 0 wäre das 7000, bei Bild 1 7024, bei Bild 3 7032 usw.

Nur so nebenbei
Der Keks


 
KullerkeksDi. 10 Jan. 2023, 15:12 Uhr
@wlmul


Ich weiß nicht, ob du wusstest, dass das alte RS-Material auch mit dem XPresso-Editor zusammenarbeitet,
 
 
 

 


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