Nous travaillons sur un projet pour iPhone et Windows Phone 7 où nous aimerions pouvoir générer des feuilles de thé au fond d'une tasse. Il n'a pas besoin d'avoir l'air photo-réaliste, et en fait le dessin-y est ok.
Quelle sorte de techniques devrions-nous rechercher pour y parvenir? Existe-t-il des bibliothèques (de préférence en C, mais nous pouvons traduire) qui seraient utiles?
Voici quelques exemples extraits d'une recherche Google Image
Réponses:
Comment je le ferais probablement pour que je puisse garder un certain contrôle de l'art et ne pas passer potentiellement beaucoup de temps à essayer de modifier une méthode procédurale pour bien faire les choses ...
Tout d'abord, créez manuellement un certain nombre de sprites de touffes de feuilles de thé comme votre "pool" artistique - pas chacun comme une tasse entière de feuilles de thé, mais plutôt comme un plus petit groupe. Dites, 20 d'entre eux ou plus?
Ensuite, placez un nombre aléatoire d'entre eux à des coordonnées aléatoires sur la base "cup". Donnez à chacun une rotation et une échelle aléatoires ainsi qu'une mise en miroir horizontale et / ou verticale aléatoire. Cela devrait créer un bon résultat.
Cette approche vous donnera la liberté artistique de créer les blocs individuels pour avoir le look que vous voulez, tout en permettant une grande variété de résultats (en supposant que vous aurez le choix entre des sprites suffisants).
De plus, avec cela (et toute méthode aléatoire incluant le bruit Perlin), vous pouvez réellement amorcer le générateur de nombres aléatoires au début du processus avec une graine connue pour obtenir des résultats reproductibles. Si vous enregistrez la graine, vous pouvez recréer exactement le même motif à nouveau en réensemencant juste avant le début de la séquence. Vous pouvez même faire des choses amusantes comme demander à quelqu'un de taper son nom, transformer les lettres en un nombre (somme ASCII, etc.), puis l'utiliser comme graine comme une sorte de "ce motif de feuille de thé personnalisé pour VOUS!" chose.
Voici un pseudocode pour ce que je veux dire, si cela aide ...
Consultez http://mathworld.wolfram.com/DiskPointPicking.html pour une excellente discussion sur la façon de choisir un point aléatoire sur un disque et pourquoi j'utilise tout cela sqrt / sin / cos.
la source
Essayez le bruit perlin avec une valeur de coupure binaire de 0,8 ou plus?
Exemple d'image téléchargée sur http://imgur.com/a/Ydc4y . La première est la deuxième image avec un seuil appliqué. Le second est le bruit perlin de base, pour lequel vous pouvez trouver plusieurs bonnes références telles que http://en.wikipedia.org/wiki/Perlin_noise et http://http.developer.nvidia.com/GPUGems2/gpugems2_chapter26.html .
Vous pouvez jouer un peu avec le nombre et l'échelle d'octaves dans le bruit perlin pour varier la fluidité de la sortie, ainsi que le seuil pour déterminer la quantité (en moyenne - car c'est du bruit) de feuilles de thé.
la source