[Projekt] CuHe - Mesh erstellen aus einem Bild
Verfasst: 07.08.2014, 19:51
Inzwischen Final. Siehe hier: http://www.reinerstilesets.de/programme/2014-cuhe/
--------------------------------------------------------------------------------------------------------------
Um nicht ganz aus der Übung zu kommen habe ich mich ein wenig mit der Mesherstellung in Unity beschäftigt. Nichts grosses also, eher was Nettes Kleines. Eine Fingerübung.
Als ich die Terrainmeshes für Alister erstellt habe war ich immer eine ganze Weile damit beschäftigt die Terrains passend zurechtzuextrudieren um diese geraden Abhänge zu erstellen. Diesen Job nimmt mir nun CuHe ab. Alles was ich brauche ist eine Heightmap. Und ein Klick konvertiert das Bild dann in ein Mesh. Das spart Zeit.
Was ist CuHe? CuHe ist ein One Trick Tool. Es erstellt aus einem Bild sowas wie ein Heightmap Mesh. Aber nicht für jeden Pixel ein Vertice. Sondern für jeden Pixel einen Würfel. Also sowas wie eine würfelige Heightmap. Daher der Name. CUbic HEightmap. Anmerkung: Graustufenbilder sind natürlich ideal. Es werden aber auch farbige Bilder genommen. Gearbeitet wird intern mit dem roten Channel.
Ich dachte mir dass das Projekt auch für den einen oder anderen interessant sein könnte. Deswegen habe ich entschieden das Projekt Open Source zu machen. Die Scripts sind in Unity’s Javascript geschrieben. Sollten sich aber auch leicht nach C# konvertieren lassen. So viel Code ist da gar nicht dran.
Gebrauch:
Gebrauch: Klicke auf den Load Image Button und lade dein gewünschtes Bild. Derzeit sind nur Png und Jpeg möglich.
Wenn benötigt kannst du die Heightvalue einstellen. Neuen Wert in die Editbox eingeben und auf Apply klicken.
Als Nächstes einfach auf den Convert Image to 3D Mesh klicken und warten bis alles fertig erstellt ist. Unten links seht ihr wieviele Tiles das Programm noch abzuarbeiten hat.
Als letzten Schritt klickst du nun auf den Save as Obj Button und speicherst dein 3D Objekt.
Obacht mit der Grösse des Bildes! Ein 64×64 grosses Bild erstellt im ungünstigsten Fall schon ein Mesh mit 50.000 Vertices. Ein Bild mit 256×256 erstellt mühelos ein Mesh mit über 600.000 Vertices …
Bekannte Limits:
- Es gibt noch keinen Filebrowser. Die Pfade muss man selber tippen.
- Das Tool arbeitet intern mit Bildteilen in der Grösse von 32×32 Pixeln. Das erstellte Mesh wird somit auch ein Vielfaches von 32 haben.
- Das Mesh sollte unbedingt nachbearbeitet werden. Unity erstellt Tris, und für jedes Tri eigene Vertices. Mit Remove Doubles in z.B. Blender lässt sich da also so einiges einsparen.
- Die UI ist aus gutem Grunde so scheusslich. Die ist schlicht noch nicht entwickelt. Das ist Programmers Art um die Features zum Funktionieren zu kriegen.
To Do:
- Grafische UI – Das muss bis Unity 4.6 warten da ich das mit der neuen GUI Lösung machen will.
- Optional weil wohl doch was Grösseres: File Browser – Auch dafür benötige ich die neue GUI Lösung.
Shot:
--------------------------------------------------------------------------------------------------------------
Um nicht ganz aus der Übung zu kommen habe ich mich ein wenig mit der Mesherstellung in Unity beschäftigt. Nichts grosses also, eher was Nettes Kleines. Eine Fingerübung.
Als ich die Terrainmeshes für Alister erstellt habe war ich immer eine ganze Weile damit beschäftigt die Terrains passend zurechtzuextrudieren um diese geraden Abhänge zu erstellen. Diesen Job nimmt mir nun CuHe ab. Alles was ich brauche ist eine Heightmap. Und ein Klick konvertiert das Bild dann in ein Mesh. Das spart Zeit.
Was ist CuHe? CuHe ist ein One Trick Tool. Es erstellt aus einem Bild sowas wie ein Heightmap Mesh. Aber nicht für jeden Pixel ein Vertice. Sondern für jeden Pixel einen Würfel. Also sowas wie eine würfelige Heightmap. Daher der Name. CUbic HEightmap. Anmerkung: Graustufenbilder sind natürlich ideal. Es werden aber auch farbige Bilder genommen. Gearbeitet wird intern mit dem roten Channel.
Ich dachte mir dass das Projekt auch für den einen oder anderen interessant sein könnte. Deswegen habe ich entschieden das Projekt Open Source zu machen. Die Scripts sind in Unity’s Javascript geschrieben. Sollten sich aber auch leicht nach C# konvertieren lassen. So viel Code ist da gar nicht dran.
Gebrauch:
Gebrauch: Klicke auf den Load Image Button und lade dein gewünschtes Bild. Derzeit sind nur Png und Jpeg möglich.
Wenn benötigt kannst du die Heightvalue einstellen. Neuen Wert in die Editbox eingeben und auf Apply klicken.
Als Nächstes einfach auf den Convert Image to 3D Mesh klicken und warten bis alles fertig erstellt ist. Unten links seht ihr wieviele Tiles das Programm noch abzuarbeiten hat.
Als letzten Schritt klickst du nun auf den Save as Obj Button und speicherst dein 3D Objekt.
Obacht mit der Grösse des Bildes! Ein 64×64 grosses Bild erstellt im ungünstigsten Fall schon ein Mesh mit 50.000 Vertices. Ein Bild mit 256×256 erstellt mühelos ein Mesh mit über 600.000 Vertices …
Bekannte Limits:
- Es gibt noch keinen Filebrowser. Die Pfade muss man selber tippen.
- Das Tool arbeitet intern mit Bildteilen in der Grösse von 32×32 Pixeln. Das erstellte Mesh wird somit auch ein Vielfaches von 32 haben.
- Das Mesh sollte unbedingt nachbearbeitet werden. Unity erstellt Tris, und für jedes Tri eigene Vertices. Mit Remove Doubles in z.B. Blender lässt sich da also so einiges einsparen.
- Die UI ist aus gutem Grunde so scheusslich. Die ist schlicht noch nicht entwickelt. Das ist Programmers Art um die Features zum Funktionieren zu kriegen.
To Do:
- Grafische UI – Das muss bis Unity 4.6 warten da ich das mit der neuen GUI Lösung machen will.
- Optional weil wohl doch was Grösseres: File Browser – Auch dafür benötige ich die neue GUI Lösung.
Shot: