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 > Blender - Farben zufällig zuweisen

Blender - Farben zufällig zuweisen

04.05.2016 20:07
 
bluedxca93Do. 05 Mai. 2016, 06:38 Uhr
Hallo,
erstmal nach Tiles erstem link .

Falls du es mit irgendeiner Textur versuchen möchtest benötigst du auch 2D Programme.

Für Windows gibt es zb. Paint.Net, Gimp als kostenlose Programme.Falls viel Hauptspeicher vorhanden ist gibt es auch noch das Malprogramm krita. Kommerzielle Programme gibt es natürlich auch.

Zum indizieren (Reduzieren der Farben) benutze ich meistens gimp.
Danach die 10 Farben noch auf den gewünshten Farbton ändern.( das geht in dem exotischrn Programm gafx2 sehr schnell)

Es gibt auch prozedurale Ansätze in Blender und unity.Tiles hat das mit splatmap gemeint.
Je nach Einstellung brauchst du dort aber auch Texturbilder.

https://m.youtube.com/watch?v=yc0b5GcYl3U



Erklärt wie man eine Kugel mit einem Bild texturiert. Das Problem ist allerdings die Auflösung der Textur.Da ist wohl eine splatmap oder blender node Lösung besser.




 
TilesDo. 05 Mai. 2016, 08:46 Uhr
Hui, ganz bei Null? Da hast du ja noch einiges vor ^^

Zum Thema indizieren, das ändert das Bildformat. Das ist nicht was du haben willst. Du willst einige wenige Farben. Das geht am einfachsten über das Posterisieren Tool. Farben -> Posterisieren

Ein Bild mit zufälliger Farbverteilung bekommst du über Filter -> Render -> Wolken -> Plasma

Das passt aber so dann in der Regel nicht auf dein Terrain. Du willst ja dass im Tal zum Beispiel Gras ist, und die Berge aus Stein. Und da kommst du eigentlich fast nicht drum rum das von Hand zu malen. Das wäre zumindest die einfachste und schnellste Methode. Etwas komplizierter wäre eine Technik über die Graustufenmap, falls selbige vorhanden.

Bevor wir hier jetzt weiter machen, was genau willst du tun? Wie hast du denn die Kugel erstellt? Hat die Kugel ein UV Mapping? Ist die Kugel texturiert? Oder willst du in Unity doch Vertexfarben verwenden? Hast du sie über eine Graustufentextur mittels Displacement erzeugt, sprich existiert schon eine Graustufentextur? Hat die überhaupt Berge und Täler, oder ist das doch nur eine glatte Kugel?

Das Problem ist halt, es gibt hier einige mögliche Ansätze. Und es nutzt dir ja nix wenn wir hier Ansatz A erklären und du mit Ansatz B bastelst smile

Es gibt auch prozedurale Ansätze in Blender und unity.Tiles hat das mit splatmap gemeint.


Narp smile

Texture splatting ist eine Technik mit der man verschiedene Texturen mixen kann. Das geht über einen speziellen Shader. Das hat aber nichts mit prozedural zu tun. Prozedural heisst computererzeugt. Du brauchst aber Texturen für diese Technik. Der Shader mixt die nur zusammen. Deswegen ist diese Methode nicht prozedural. Natürlich könnte man da jetzt noch prozedurale Texturen einhängen. Aber das ist dann eben wieder was ganz anderes. Texture splatting an sich ist erst mal nicht prozedural.

In der Regel ist die sogenannte Splatmap (ein einfaches Bild) in den drei Grundfarben Rot, Grün und Blau. Und bei Rot zeigt es dann zum Beispiel deine Gras Textur an, bei Blau deine Steintextur, etc. Und in den Übergängen wird zwischen Rot und Blau wird dann das Gras mit der Steintextur gemixt. Bei der Farbe Lila hättest du 50% Rot und 50% Blau, die zwei Texturen würden sich also zu 50% mischen.

Das Unity Terrainsystem verwendet intern diese Technik. Da malst du allerdings gleich direkt mit deinen Texturen drauf rum, deswegen siehst du da erst mal nichts von einer Splatmap. Intern ist da allerdings schon was zu sehen. Die Splatmaps sind mit etwas Suche im Inspektor zu finden. Allerdings ist da schwer ranzukommen, das ist fest ins Terrainsystem integriert. Und ist auch noch in einem ogaddigen Format eingebaut. Das Unity Terrain System versteckt diese Farben in der Transparenz. Und es ist in einem Format mit dem Gimp nicht klar kommt, da braucht es Photoshop für. Und an den Shader kommt man gar nicht ran. Und das funktioniert eben nur fürs Terrain, und nicht für eine Kugelgeometrie. Deswegen der Hinweis dass du da einen eigenen Shader verwenden müsstest.

Aber ich gehe mal davon aus dass du noch eine Weile brauchen wirst bis du wirklich an Unity Shadern rumflicken kannst. Also vergessen wir den Teil am Besten erst mal wieder ^^

 
bluedxca93Do. 05 Mai. 2016, 10:26 Uhr
Danke für die Erklärung Tiles, als Anfänger kenn ich mich in 3d noch nicht hundertprozentig aus.
in einem Punkt muss ich aber teilweise wiedersprechen:
Indizieren reduziert nur den Farbraum und Bild -> Modus kann man indexed und rgb, und graustufen in gimp auswählen. Bilder mit einer selbst erstellten Palette indizieren und dann nach rgb zurück umformen ist häufig qualitativ wesentlich besser als die posterisieren Option und hat auf das Format definitiv den gleichen Effekt.
Möglich dass das in Photoshop anders ist.

Denke ,das es für den Threadersteller uninteressant ist, aber was für ein Bildformat ist das?.( Bin jetzt nur mal kurz neugierig geworden, da ich schon relativ viele Bildformate wies und Gimp ( und falls nicht image/graphiscmagick) fast alle unterstützt.)

Vllt. kann der Threadersteller ja erstmal ein paar 2d texturen malen und diese Zufallsbilder in 2d erstellen und überlegen ob die Kugel ungewrappt und texturiert,mit vertexfarben bemalt oder später mit splat mapping gestaltet werden soll. Das Beispielbild sah teilweise wie Vertexfarben aus.
 
TilesDo. 05 Mai. 2016, 11:03 Uhr
Och, ich weiss auch nicht alles. Da gibts sogar noch verflucht viel das ich nicht weiss. Und das wird jeden Tag mehr smile

Mit dem indizieren veränderst du aber das Format. Man kann natürlich auch ein indiziertes Bild als Png speichern, aber es ist dann eben nicht mehr Png RGB mit 24 Bit (oder besser gesagt RGBA mit 32 Bit. Von wegen transparenz), sondern PNG indiziert mit nur noch 8 Bit. Mit RGB hast du 16 Millionen Farben. Mit indiziert maximal 256.

Klar kann man das Problem der Farbreduzierung auch über eine Indexierung lösen. Und dann auch gleich zurückkonvertieren. Der Grund weshalb es imho aber in diesem Falle geschickter ist übers Posterisieren zu reduzieren dürfte auf der Hand liegen. Hier kann man recht einfach die Farbe nachträglich manipulieren. Und neue Farben dazumachen. Und weiche Übergänge zwischen den Farben gehen so auch. Ohne dauerndes hin und her konvertieren. Ist ja noch 16 Millionen Farben.

Letztenendes ist erlaubt was funktioniert.

Das Format nach dem du frägst ist OpenExr wenn ich mich noch recht erinnere. Ich habe Unity im Moment nicht mehr installiert.

Und ja, im Moment fehlen noch zu viele Infos um wirklich handgreiflich helfen zu können. Wie gesagt gibts da einige Wege die zum Ziel führen können smile
 
bluedxca93Do. 05 Mai. 2016, 17:08 Uhr
test test. just for fun.
nur um mal zu schauen wie eine uv map wäre. 2024x2024
Eindeutig zu unscharf.
Verrtexfarben oder splitmapping würde ich dem threadersteller empfehlen.

 
 
TilationFr. 06 Mai. 2016, 06:47 Uhr
wie wäre das?
 
 
TilesFr. 06 Mai. 2016, 08:15 Uhr
Ja. Viele Wege führen nach Rom. Das müsstest du halt dann auf eine Textur backen. Unity kann mit den prozeduralen Shadern aus Blender nichts anfangen.

Vielleicht sollten wir mal zu dem eigentlichen Problem zurückkommen. Und das lautet, auch wenn der Titel des Threads anders ist: Wie verpasse ich einer Kugel in Unity eine brauchbare Terrainbemalung. Das Unity Terrainsystem fällt dafür ja wortwörtlich flach. Das kann nur eine Ebene, das ist Heightmap basiert.

Leider warten wir hier immer noch auf ein paar wichtige Details. Zu allererst: Sollen es Texturen sein, oder langen eventuell Vertexfarben? Das sind zwei komplett unterschiedliche Ansätze. Der Shot aus dem ersten Beitrag würde ja Richtung Vertexfarben deuten.

Auch ganz wichtig: wie detailliert soll es denn sein? Langt eine verwaschene Textur über den ganzen "Planeten"? Oder soll da eine gute Bodentextur zu sehen sein. Ist eventuell sogar detailliertes animiertes Gras erwünscht?

Superschade ist halt dass es das Unity Addon T4M nicht mehr gibt. Das ging nur mit und bis Unity Version 4. Damit hättest du die Kugel fast wie das Unity Terrain texturieren können. Inklusive Texturesplatting und allem was dazugehört. In Version 5 gibts meines Wissens keinen Ersatz dafür. Das musst du da also alles von Hand machen. Inklusive Bepflanzung.

Bzw. , es gibt inzwischen wenigstens Splatmapshader im Asset Store. Kost dann halt eine Kleinigkeit: http://www.assetstore.unity3d.com/en/#!/content/17334
Oder
http://www.assetstore.unity3d.com/en/#!/content/41837
Und wie gesagt im Unity WIKI geistert auch noch irgendwo ein kostenloser Mixshader rum.
 
GarzecMo. 09 Mai. 2016, 19:45 Uhr
Ich habe jetzt erstmal eine simple Sphere genommen, der ein Material zugewiesen und werde gucken was ich daraus noch mache smile

Aber mal die nächste Frage, ich habe die Figur als fbx von Blender in Unity importiert. Die Figur sieht jetzt echt nicht mehr so schön aus .. Wodran kann das liegen?

Habe noch ein Foto dazu gepackt wo mein Problem hoffentlich gut sichtbar ist smile

http://imgur.com/rARyzZo
 
GarzecMo. 09 Mai. 2016, 19:55 Uhr
Habe es schon gelöst, es fehlte ein Directional Light smile
 
TilesMo. 09 Mai. 2016, 21:46 Uhr
Genau. Da fehlte einfach eine gute Beleuchtung smile
 
 

 


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