Arbeiten mit Instanzen: Die letzte Instanz

  • In diesem Tutorial geht es darum, Objekte in einer Szene mehrfach bzw. vielfach erscheinen zu lassen. Das bekommt man beispielsweise hin, indem man das entsprechende Objekt einfach dupliziert oder mehrfach dupliziert. Jedes Duplikat lässt sich dann beliebig posen, in der Größe ändern, umfärben etc. - es ist jeweils ein eigenes Objekt. Diese Technik hat den Nachteil, dass DAZ für jedes Duplikat die Textur- und Geometrieangaben separat in den Arbeitsspeicher lädt.


    Speicherschonender ist es da, eine oder mehrere Instanzen eines Objekts zu erstellen. Bie dieser Technik gibt es ein Ursprungsobjekt, das die Posen, Texturen und Geometrieangaben enthält und die einzelnen Instanzen bilden exakte Klone.


    Schaut Euch zu diesen beiden Anwendungen am besten folgendes Tutorial an: Objekte duplizieren


    Was aber machen wir, wenn wir nicht einfach nur 10 gleiche Instanzen haben wollen - also etwas, was von der Anzahl noch überschaubar wäre, sondern zum Beispiel 3000 Instanzen. Eine gut aussehende Grasfläche ließe sich beispielsweise von Hand unmöglich simulieren.



    In der obigen Szene befinden sich ca. 2500 Instanzen eines eigentlich unscheinbaren Grasprops, die auf eine gewellte Oberfläche aufgetragen wurden. Gerendert wurde unter Iray, 10 Iterations, keinerlei Nachbearbeitung und nicht einmal 5 Minuten für den Aufbau der Szene verwendet.


    Wie funktioniert so etwas? darum soll es hier gehen :)


    Schritt 1: Software und Vorbereitung



    Auf der DAZ-Seite gibt es als kaufbare Software den UltraScatter von Howie Farkes (https://www.daz3d.com/ultrasca…instancing-for-daz-studio).


    Allerdings bin ich mit dem Surface Replicator von Tofusan, welches ich in diesem Tutorial beschreibe, auf ein kostenloses Skript gestoßen, das für den oben genannten Einsatzzweck ebenfalls sehr gut geeignet ist: http://www.sharecg.com/v/77603…replicator-for-daz-studio. Ihr müsst Euch allerdings bei shareCG registrieren und anmelden.



    Entpackt die Zip-Datei und schaut Euch den Inhalt etwas genauer an (Pfad Scripts - Tofusan). Ihr findet hier eine Bilddatei (.png) sowie zwei .dsa-Dateien. Diese enthalten die zwei enthaltenen Skripte, von denen wir nun die Datei Surface Replicate.dsa bearbeiten wollen.




    Markiert die Datei mit einem Linksklick, klickt dann mit der rechten Maustaste darauf und wählt aus dem Kontextmenu Öffnen mit... - Word-Pad aus. (Ich bin mir sicher, dass es für Mac oder Linux entsprechende Anwendungen gibt.)




    Das Skript öffnet sich und ich verstehe eigentlich nur Bahnhof. Ist aber garnicht so schlimm, da wir ohnehin nur an dem Eintrag in der fünften Zeile (hinter nMAX_INSTANCES) interessiert sind.




    Den erhöhe ich von 1000 auf 5000 (größere Werte wären auch möglich, aber mein System macht da irgendwann nicht mehr mit. Für eine gut aussehende Rasenfläche reichen 5000 Instanzen erstmal aus und zur Not kann man auch eine zweite Ladung Instanzen kreieren lassen.




    Beim Schließen der Datei das Abspeichern nicht vergessen. Den Ordner Scripts... habe ich nun in einen Ordner verschoben, den ich bei mir leicht wiederfinde - tatsächlich sogar in zwei Ordner, nämlich unter Scripts und dann noch einmal in meinen Props-Ordner, wo ich ein paar Rasenprops habe.


    Schritt 2: Vorbereitungen in DAZ



    Damit wir das Skript anwenden können, benötigen wir in unserer Szene zwei Objekte. Das erste Objekt spendiert seine Oberfläche, auf der unsere Instanzen angeordnet werden sollen. Das zweite Objekt ist das, was wir vervielfältigen wollen.



    Das zweite Objekt muss nun dem ersten Objekt untergeordnet werden (Befehl parent to...) oder einfach mit gedrückt gehaltener linker Maustaste auf das erste Objekt ziehen. Wie ihr seht, muss das kleinere Objekt (grüner Kegel) nicht auf dem übergeordneten Objekt (weisse Kugel) platziert sein. Es reicht aus, wenn unsere Instanzen hinterher darauf liegen ;)




    Schritt 3: Das Skript

    Markiert das untergeordnete Objekt und ruft dann das Skript Surface Replicate von Tofusan auf (das mit dem Busch-Icon).




    Es öffnet sich eine eigene Oberfläche mit Schiebereglern für Instances (wieviele sollen es sein, sollen die alle gleich aussehen) und für Conditions (Angaben zum Gefälle und zur Höhe, in der Instanzen erzeugt werden).

    Mit den Conditions habe ich mich bisher noch nicht so beschäftigt, interpretiere das aber so, dass man hier angeben kann, dass bei einer bestimmten Neigung (= Slope) der Oberfläche keine Instanzen aufgelegt werden sollen (z.B. steile Felsabhänge) oder auch bei bestimmten Höhen (= Altitude). Könnt Ihr ja mal testen.




    Für mich wichtig sind die Einstellungen zu Instances:


    Number of Instances (1) - Ihr gebt an, wie häufig Euer untergeordnetes Objekt auf der Oberfläche verteilt werden soll. Wenn Ihr das Skript nicht wie unter Schritt 1 beschrieben verändert habt, könnt Ihr hier maximal 1000 Instanzen auswählen. Mit der Änderung jetzt eben 5000 (oder was für einen Maximalwert Ihr eben gewählt habt).

    Minimum / Maximum Scale (2) - Ihr habt die Möglichkeit, eine Größenvarianz anzugeben. Die Schieberegler stehen am Anfang beide auf dem gleichen Wert (muss nicht immer 100% sein!). Wenn Ihr den Min.-Wert jetzt etwas absenkt und den Max.-Wert etwas anhebt, bekommt Ihr beispielsweise etwas natürlichere Größenverteilungen. Für einen Golfrasen hingegen macht es durchaus Sinn, beide Werte gleich zu lassen.


    Oh, und wo ich gerade dabei bin: Wenn es um Natur geht, lasst den Haken bei Random Y Rotate gesetzt. Diese Einstellung sorgt dafür, dass Eure Objektinstanzen um ihre Y-Achse rotieren, sich also drehen. Für einen Truppenaufmarsch hingegen würde ich den Haken rausnehmen, dann marschieren ale zumindest in die gleiche Richtung, wenngleich Chaos durch die zufällig gesetzten Instanzen aufkommt.




    Den Punkt mit der Density Map kann ich leider nicht beantworten. Das bedeutet ja, dass hier eine Map geladen wird, über die die Dichteverteilung der Instanzen gesteuert wird. Leider habe ich keine Ahnung, ob das eine schwarz-grau-weisse Map oder eine farbig-rote sein soll. Teste ich bei Gelegenheit vielleicht mal aus.


    Bestätigt wird das ganze mit dem Klick auf &Accept und die Rechenarbeit beginnt.



    Tadaaa - und plötzlich liegt ein Ergebnis vor. Ihr seht zahlreiche unregelmäßig verteilte, unterschiedlich große, grüne Kegel auf unserer Kugel.




    Das sind ja jetzt Instanzen. Und per Definition (s.o.) nehmen sie das Aussehen des ursprünglichen Objektes an - ich kann jetzt einen Shader auf das eigentliche Objekt legen und sämtliche Instanzen bekommen das automatisch zugewiesen. Habe ich jetzt mal für die Rezeptoren von dem grünen Virus gemacht und schon hat er blaue Gnubbel... ;)



    Na gut - wer will schon irgendwelche Kegel in der Landschaft!? Anstelle eines Kegels funktionieren grundsätzlich auch noch ganz andere Objekte. Zum Beispiel habe ich in meinem Content einen blattlosen Baum gefunden, den ich einfach mal verkleinert habe, dass er auch mehrfach auf meine Kugel passt (links unten). Dann das Instanzen-Skript und schon ist das eine Kugel mit kleinen Bäumen. (So etwas kann ich mit meinem Rechenknecht dann aber eher nciht mehr rendern :( , aber vielleicht Ihr?)




    Schön und gut, sieht ja toll aus und das macht bestimmt auch Sinn, aber: Ich habe einfach kein Gras in meinem Content.


    Das ist Schade, aber kein Grund zum Verzweifeln. Zum Einen gibt es wirklich schöne Pflanzensets bei DAZ zu kaufen oder denGratisschritt 4: kostenloses Gras.


    Hüpft mal in das DAZ Forum zum Eintrag Instanced Grass Kit von Mephoria (https://www.daz3d.com/forums/d…-a-new-landscape-resource).


    Dort klickt Ihr auf den Link the zip file und erhaltet eine Datei mit einer komplett vorbereiteten Ordnerstruktur zum direkten Verschieben in Euren DAZ-Content :D YEAH! Das Gras sieht Bombe aus, ist für 3DL und Iray vorhanden und als Pistazie auf der Kirsche auf der Sahne auf... gibt es auch noch einen über einen Schieberegler verformbaren Boden. Danke Mephoria!




    So, ich denke, Ihr kommt erstmal zurecht.


    Viel Spass beim Experimentieren


    LG SmidA :griendragon:

  • Pam

    Hat den Titel des Themas von „Die letzte Instanz“ zu „Arbeiten mit Instanzen: Die letzte Instanz“ geändert.