Nenuf


Utiliser Néo-lsystem

Comme on le voit sur l'image ci-dessous. Il y a un bouton [Seed] (Graines en français). Il sert à bloquer la fonction de cyclage hasardeux et permet donc le choix d'une graine particulière pour générer la plante. Il faut savoir que les valeurs de ce bouton ne sont pas sauvegardées dans les fichiers de définition à l'extension .def qui sont créés lorsqu'on utilise le bouton [Save] après avoir entré un nom dans le champ concerné.

L'interface graphique utilisateur
retour


La zone de travail
On divise l'écran principal de blender en au moins trois fenêtres.
UNE VUE DE HAUT des objets feuilles / UNE VUE CAMERA du végétal / UNE FENETRE éditeur de texte avec la partie Application.py du script.
On peut, si on en éprouve le besoin, ajouter une fenêtre additionelle. Soit une fenêtre Boutons pour travailler les matériaux soit une fenêtre UV/Image éditeur pour le placage de textures.
Ecran de travail retour vers le haut

Prérequis
Avant tout, il faut vérifier que les objets que l'on veut accrocher à la structure végétale sont prêts à être utilisé par le script, ce qui signifie :
  • Que l'on a les objets maillages que l'on désire ( Attention à ne pas ajouter trop de sommets à vos modèles de maillage).
  • Que ces objets sont correctement UVmappés avec une image qui contient une couche transparente dite couche Alpha, comme celle que l'on peut voir ci-dessous.

Fig.3) Image TGA chargée dans l'éditeur UV/Image de Blender.
(le fond coloré sera traité comme étant transparent).
back to the top

Si cela n'est pas déjà fait on doit s'en occuper avant de commencer. Pour cela on peut suivre les indications de la section "Préparer les éléments".


Préparer les éléments
On commence par préparer les objets maillages qui seront dupliqués par le script. Pour cela on peut, soit transformer les modèles existants ; soit ajouter ses propres créations.
Pour transformer les maillages existants on passe en mode édition touche [Tab] dans Blender. Une fois en mode édition, on peut ajouter des sommets, les déplacer pour changer les formes mais aussi sélectionner tous les sommets d'un objet, touche [A] et opérer une rotation de tout le "maillage/feuille" par rapport à son centre.
Attention :
Des sommets trop nombreux peuvent entraîner un plantage du script ou des résultats anarchiques.

Fig.4) Retravailler les objets en mode édition.
back to the top
Quoi qu'il en soit, il faut effectuer ces opérations avec modération car c'est le centre du modèle qui détermine l'emplacement des duplicatas par rapport aux branches. On veillera donc à ce que l'attache des feuilles fruits ou autre ai toujours des sommets placés sur le centre du maillage.
Si on respecte ces règles le résultat doit être correct. Si ce n'est pas le cas il suffit de repasser en mode édition et de corriger. Pour les tests il est préférable de choisir de créer un petit nombre de feuilles. On choisit le type "Active point" et un facteur de multiplication [Repeat] égal à 1.
Une fois les maillages achevés on réalise l'UV Mapping de ces objets.
Fig.5) Faire l'UV mapping, en mode édition également.


Créer un fichier modèle
On place le pointeur souris au-dessus de la fenêtre éditeur de texte et on lance le script avec la combinaison [ALT]+[P]. La fenêtre devient de type script et l'interface graphique s'affiche.
  • Pour créer un végétal, on utilise le bouton [GENERATE]. Tant que la valeur de [Seed] est à zéro le script fait cycler les valeurs. Chaque fois que l'on appuie sur [GENERATE] il en choisit une au hazard (un peu comme une roulette de casino) pour générer le végétal.
  • L'idéal est de commencer par choisir une graine, de faire les réglages des options ( voir première partie: L-System ) et de cliquer sur [GENERATE] pour lancer le calcul de la structure végétal. Mais si on a oublié de choisir la graine et que l'on a déjà commencé à modifier les options cela n'est pas grave. On peut très bien terminer de construire le végétal puis choisir la graine et cliquer sur [GENERATE]. La seule différence c'est que le végétal sera encore modifié une dernière fois lors de l'appui sur [GENERATE].
  • Lorsqu'on est satisfait du résultat. On sauvegarde les réglages qui ont permis de l'obtenir.
  • On entre un nom "name.def" dans le champ qui se trouve entre [LOAD] et [SAVE]. On conseille d'indiquer le numéro de la graine dans le nom du fichier. Par exemple, Pommier_Graine6.def.
  • Enfin on clique du bouton gauche sur [SAVE]. back to the top
Le modèle particulier généré par une graine particulière, la graine 6, est maintenant enregistré.
On ne perd pas de vue l'objectif : conserver une forme particulière pour la structure du végétal afin d'y ajouter des fruits, des fleurs etc, en plus des feuilles.


Créer l'arbre et ses feuilles
  • On charge le fichier de définition .def (On entre le nom avec extension à la fin du chemin) et on clique du bouton gauche sur [LOAD].
  • On place la valeur de [Seed] sur celle que l'on a utilisé pour créer le modèle, dans l'exemple c'est la graine [Seed 6].
  • On clique sur [GENERATE] et on obtient exactement le même végétal.
  • On peut alors activer la création des feuilles en cliquant sur [Add Leaves], le bouton s'enfonce, on choisit un modèle de feuille qui doit être utilisé en entrant simplement le nom du maillage concerné dans le champ [leafobj:].
    LeafChoice
  • On clique sur [GENERATE].
  • Un arbre apparaît dans la fenêtre Vue Caméra.
    Il est construit grâce au fichier de définition *.def que l'on a sauvegardé, la graine [Seed 6] et le modèle de feuille qui a été choisi.

    generating leaves
retour vers le haut On sélectionne le maillage du feuillage que l'on vient de créer, on en fait une copie avec [Maj+D]. On la déplace immédiatement dans un autre calque avec la touche [M]. On peut renommer ce maillage "feuillage". Ne jamais faire de copie avec (Alt+D) qui partage les données de mailllage des objets. On aurait alors la mauvaise surprise de découvrir, après avoir accompli l'étape 2, que le feuillage que l'on a placé dans un autre calque c'est transformé en fruits.

Créer l'arbre et ses fruits
Il suffit de choisir un autre modèle d'objet, dans l'exemple une pomme. On entre le nom de ce nouvel objet dans le champ [leafobj:], ce qui remplace le précédent, le nom du nouvel objet est "Pom".
Il est fortement recommandé de ne rien changer d'autre. En effet, même si la valeur de [Seed] est bloquée sur une graine particulière, les différentes options continuent à influencer la structure du végétal (de façon plus ou moins importante selon l'option) et par conséquent les objets additionnels (fruits) ne seront pas placés correctement par rapport aux branches.
Pour les besoins de la démonstration, j'ai changé le type d'organisation des feuilles (fruits) en choisissant un modèle dans le menu ouvert avec ce bouton :
LeafChoice
mais celà affecte légèrement l'orientation des branches.
J'ai également changé la valeur de [Repeat], mais plus on augmente le nombre de feuilles plus la dimention de l'arbre diminue.
Par conséquent dans votre cas, vous ne changez absolument rien à l'exception du modèle d'objet [leafobj:].
On appuie à nouveau sur [GENERATE].
Attention : le script mettra certainement plus de temps à générer les pommes car il y a plus de sommets.

Il peut arriver que les maillages générés ne soient plus liés a leur matériau, ils s'affichent alors en gris lorsque la fenêtre vue 3D est en mode solide (voir ci-dessous). Cela arrive si on a dupliqué le maillage ou si on a créé un nouveau matériau pour les fruits. Ce qui est le cas ici.
PerteMat

La solution consiste à se rendre dans le contexte Ombrage [F5] pour renouer le lien. On déroule le menu dans le panneau lien et Pipeline et on choisit le matériau adéquoit.
LienMat

Le maillage des fruits s'affiche dans la vue 3D.
Il est construit avec le fichier *.def déjà utilisé pour le feuillage, la graine [Seed 6] (valeur également utilisée pour les feuilles) et le modèle d'objet appelé "Pom".

generating fruits
Dès que l'on a le maillage final des fruits, on peut lui assigner un modificateur Subsurf (ci-après à droite) pour le lisser. On se souvient que ce maillage a été obtenu à partir d'un modèle Low-poly c'est à dire avec un minimum de sommets. Par conséquent le résultat est plutôt anguleux (ci-après à gauche) et il faut le lisser.
fruits just smoothed fruits Subsurf
On peut également renommer ce maillage, par exemple "Pommes".
Pour finir le travail on renomme aussi la structure (tronc/branches) on l'appelle "Pommier".
La dernière chose à faire est de rapatrier le feuillage qui est dans un autre calque.
On ne l'a pas modifié, il est toujours à l'endroit ou il a été créé.
On a maintenant un arbre chargé de fruits. On peut effectuer un rendu avec [F12].
L'image ci-après montre parfaitement ce qui arrive si on change la valeur des autres options après avoir choisi le nouvel objet.
Pour le feuillage, [Repeat 3] et le type d'organisation [2+2Perpend.].
Pour les pommes, [Repeat 1] et type d'organisation [EndPoint].
On voit clairement que le feuillage n'est plus correctement placé.
Final

On peut également ouvrir une autre instance de Blender, créer un nouveau fichier blend, et depuis ce nouveau fichier importer les différents mailages arbre nu, feuillage et fruits. On comprends alors l'utilité d'avoir renommé les différents maillages dans le fichier d'origine. On utilise la combinaison [MAJ+F1], commande usuelle de Blender pour importer des données se trouvant dans un autre fichier blend. On choisit le fichier d'origine on descend dans le répertoire Objet on sélectionne les maillages "Pommier", "Pommes" et "Feuillage".
apples+Leaves zoom
Dernières précisions.
Si juste quelques éléments du maillage qui a été généré ne sont pas correctement placés autour des branches. On peut toujours les ajuster manuellement. En mode édition, on sélectionne ceux que l'on désire déplacer avec la touche [L] et on utilise la touche [G] pour les déplacer. neo adjust fruits
© MF Soler - Pour l'ensemble de ce didacticiel.
Livre en français
Starter Kit Blender

Blender Starter Kit