Wir arbeiten an einem Projekt für iPhone und Windows Phone 7, bei dem wir Teeblätter am Boden einer Tasse erzeugen möchten. Es muss nicht fotorealistisch aussehen, und tatsächlich ist Cartoon-y in Ordnung.
Welche Techniken sollten wir erforschen, um dies zu erreichen? Gibt es Bibliotheken (vorzugsweise in C, aber wir können übersetzen), die hilfreich wären?
Hier sind einige Beispiele aus einer Google Bildsuche
Antworten:
Wie ich es wahrscheinlich machen würde, damit ich etwas Kunstkontrolle behalten und möglicherweise nicht lange versuchen kann, eine prozedurale Methode zu optimieren, um sie genau richtig zu machen ...
Erstellen Sie zunächst manuell eine Reihe von Sprites aus Teeblattklumpen als Ihren "Kunstpool" - nicht als Teeblätter einer ganzen Tasse, sondern eher als kleinere Gruppierung. Sagen wir, 20 von ihnen oder so?
Dann platzieren Sie eine zufällige Anzahl von ihnen an zufälligen Koordinaten auf der "Cup" -Basis. Geben Sie jeweils eine zufällige Drehung und Skalierung sowie eine zufällige horizontale und / oder vertikale Spiegelung. Dies sollte zu einem guten Ergebnis führen.
Dieser Ansatz gibt Ihnen die künstlerische Freiheit, die einzelnen Klumpen so zu gestalten, dass sie das gewünschte Aussehen haben, und ermöglicht gleichzeitig eine Vielzahl von Ergebnissen (vorausgesetzt, Sie haben genügend Sprites zur Auswahl).
Darüber hinaus können Sie mit dieser (und jeder zufälligen Methode, die auf Perlin-Rauschen basiert) den Zufallszahlengenerator zu Beginn des Prozesses mit einem bekannten Startwert setzen, um reproduzierbare Ergebnisse zu erzielen. Wenn Sie den Startwert speichern, können Sie genau das gleiche Muster erneut erstellen, indem Sie kurz vor Beginn der Sequenz erneut säen. Sie könnten sogar lustige Dinge tun, wie jemanden seinen Namen eingeben lassen, die Buchstaben in eine Zahl umwandeln (Summe ASCII usw.) und diese dann als Keim für eine Art "dieses für SIE angepasste Teeblattmuster" verwenden! Sache.
Hier ist ein Pseudocode für das, was ich meine, wenn das hilft ...
Unter http://mathworld.wolfram.com/DiskPointPicking.html finden Sie eine großartige Diskussion darüber, wie Sie einen zufälligen Punkt auf einer Festplatte auswählen und warum ich diese ganze Sache mit sqrt / sin / cos verwende.
quelle
Versuchen Sie es mit Perlin-Rauschen mit einem binären Grenzwert von 0,8 oder so?
Beispielbild auf http://imgur.com/a/Ydc4y hochgeladen . Das erste ist das zweite Bild mit einem angewendeten Schwellenwert. Das zweite ist das grundlegende Perlin-Rauschen, für das Sie mehrere gute Referenzen finden können, z. B. http://en.wikipedia.org/wiki/Perlin_noise und http://http.developer.nvidia.com/GPUGems2/gpugems2_chapter26.html .
Sie können ein wenig mit der Anzahl und Skala der Oktaven im Perlin-Rauschen spielen, um zu variieren, wie flüssig die Ausgabe aussehen wird, sowie mit dem Schwellenwert, um zu bestimmen, wie viel (im Durchschnitt - wie es Rauschen ist) Teeblätter vorhanden sind.
quelle