LSYSTEM
Introduction



Remerciements à NaN(Les auteurs de Blender) pour ce superbe logiciel gratuit.
Lsystem est un script qui a été développé par Armagan Yavuz : www.geocitie.ws/blenderdungeon
QUELQUES EXEMPLES TELECHARGEABLES
ARBRES                   PLANTES




INTRODUCTION

Ce qu'on peut obtenir
pommier
Pour tous les tests de ce didacticiel, j'ai utilisé la dernière version en date du script Neo-lstseed, maintenu par JM SOLER.
Ce script a été testé pour les versions 2.46, 2.47, 2.48, et la toute dernière version 2.49b de Blender.
(Un fichier ". blend" qui contient le script est disponible ici :
NeoLsys.blend)


Qu'est-ce que Lsystem ?
C'est un script de génération automatique de végétaux qui à besoin de Blender pour fonctionner
Apparence de l'écran de Blender lors du chargement d'un fichier.blend qui contient le script Lsystem
Lsystem au lancement
Comme on peut le voir sur l'image ci-dessus, il y a un échantillon de feuilles déjà texturées inclu dans le fichier.
Vue de l'interface Graphique neo-lstseed 
Vue de L'interface neo-lstseed
Code couleur pour les explications qui suivent.
Vue de L'interface neo-lstseed
PRINCIPE GENERAL
Le principe du script d'origine est de générer une plante différente à chaque fois que l'on appuie sur le bouton [Generate]. En fait, le script crée deux maillages, un pour la structure (tronc et branches comprises) et un autre pour les feuilles. Sur cette structure (tronc/branches), on ne peut mettre qu'un seul type d'élément à la fois (soit des feuilles, soit des fruits, ou tout autre objet que l'on veut accrocher aux branches). Avec la version Neo-lstseed de JM SOLER, on a la possibilité de retrouver une forme identique lorsqu'elle nous plaît afin de pouvoir sur la même structure de base ajouter autant d'éléments différents que l'on veut, des fruits, des objets divers (en gardant un nombre modéré de sommets pour les modèles d'objets/feuilles que l'on crée). Cela est possible grâce au bouton [Seed] et à la faculté de conserver dans un fichier, l'ensemble des réglages d'une forme choisie.

PREMIERE PARTIE : L-System de A.YAVUZ


L-SYSTEM
Le fonctionnement de base
    Avant tout, en bas à gauche de l'interface, on trouve les deux boutons les plus importants. Voir l'interface ci-dessus
  • [Generate] pour créer les maillages.
  • [Iterations] qui détermines le nombre de niveaux de branches qui seront créés.
    [Iterations:1] crée juste le tronc, [Iterations:2] crée le tronc plus le premier niveau de branches, [Iterations:3] un autre sous-niveau, etc.
    StemNone
Branches et Stem : ces deux paramètres sont liés et servent à définir la structure du végétal, tronc et branches.
Si [Stem] est sur NONE
StemNone donc non-activé, alors la section Branches contrôle entièrement les formes du tronc et des ramifications (branches et sous-branches comprises). Si [Stem] est activé avec [Branches] , alors la section Stem contrôle tronc et branches principales et  la section Branches contrôle les sous-branches.

Branches Ce bouton leaves que l'on trouve à droite du titre de section permet de choisir le modèle de ramification qui sera répété de manière récursive pour construire les branches.
Deux types de modèles sont disponibles :
"split N"
et
"arm N"
modele1

modele2
Pour chacun de ces deux types, plusieurs choix sont proposés lorsqu'on déroule le menu avec le bouton double flèche.
BranchesModels

Résolution V : Cette valeur détermine le nombre de tronçons qui vont composer chaque branche.
Exemple avec Resolution V= 2
Exemple avec Resolution V= 4
resolution2
resolution4
En augmentant le paramètre "ResolutionV" on obtient un maillage plus lissé et de meilleure allure mais cela augmente le nombre de sommets (vertices). De plus, ce paramètre en affecte d'autres comme Shorten, ThinDwn, Twist et Force .
On clique à droite sur le bouton ResolButtonpour augmenter la valeur et à gauche pour la diminuer.


Repeat : Est un facteur de multiplication. Il n'ajoute aucun niveau de subdivision supplémentaire. Le nombre de subdivisions reste le même tel que définit par la valeur du bouton [Iterations]. Dans l'exemple ci-dessous, on a 4 niveaux de subdivision, du plus élévé le tronc jusqu'au niveau le plus inférieur, les plus petites branches. Pour chaque niveau, l'option [repeat] prend les segments existants, les multiplie par la valeur de repeat et ajoute le nombre de segments nécessaires aux segments déjà présents, avant de passer au niveau inférieur. En fait, ce facteur multiplie les segments présents le nombre de fois nécessaire pour que chaque niveau est un nombre d'intersection correspondant à la valeur de repeat. Pour [repeat 1], chaque niveau diverge une fois, pour [repeat 2] chaque niveau diverge deux fois, etc. Voir l'exemple ci-dessous, 4 niveaux de subdivisions pour chacune des structures (celle de droite et celle de gauche), mais celle de gauche à une valeur de repeat à 1 et celle de droite une valeur de repeat à 2.
Repeat

Spin : Torsion/rotation, chaque branche (branche mère et sous-branches) subit une rotation par rapport à l'axe central du cylindre qu'elle forme.
Exemple de Rotation -187.01
rotation

Curve : Courbure en français, courbe la branche mère et les sous-branches vers le sol.
curve

SubSlope (0 à 180) : détermine l'angle que forment les sous-branches avec le tronc (ou branche mère),
subslope
subslope
curseur curseur
Plus le curseur tend vers 0 plus l'extrémité des sous-branches tend vers le haut du tronc.
Plus le curseur tend vers 180 plus l'extrémité des sous-branches tend vers le sol.

SubOrient : Orientation des sous-branches, tenant compte du modèle de branche (armN ou splitN)
suborient
suborient
suborinet
curseur
curseur
curseur

SubLen : contrôle la longueur de branche des niveaux inférieurs qui sont produits par le bouton [Iterations]. Ce paramètre va de 0.0 à 1.0. Pour 1.0 les sous branches auront exactement la même longueur que leur segment parent (voir ci-dessous).
SameLength

Les valeurs en dessous de 1.0, signifie que les sous branches n'auront qu'un pourcentage de la longueur du segment parent. Par exemple 0.5 donnera la moitié de la longueur du segment parent. En descendant les niveaux, chaque segment sera plus court que le précédent (voir l'image ci-dessous). Avec [iteration 1] on obtient le tronc seul, [Iterations 2] un premier niveau de sous-branches qui aura une longueur de 0.5% de 1.0, [Iteration 3] on obtient un second niveau, les branches de ce second niveau auront une longueur de 0.5% de 0.5% etc, jusqu'au niveau le plus bas.

SubLength
SubThickness :
contrôle le diamètre des sous-branches, relativement au diamètre du segment parent. Cette option fonctionne de la même manière que [SubLen].


Leaves :  ce bouton active la création des feuilles, seul les deux derniers niveaux de branches portent de feuilles.
Leaf Pattern Menu : leaves permet de sélectionner un type de disposition pour les feuilles.
resolutionV : ce bouton ne fait rien.
Repeat : facteur de multiplication qui détermine le nombre de feuilles par segment.
LengthMul : longueur supplémentaire qui n'affecte que les branches portant des feuilles.
ExtraSpin : torsion supplémentaire n'affectant que les branches qui portent des feuilles.
ExtraCurve : courbure supplémentaire pour les branches qui portent des feuilles uniquement.
LeafSlope : inclinaison des feuilles en fonction de la branche, affecte légèrement l'orientation des branches.
LeafOrient : orientation de la feuille l'effet du changement est fonction du modèle de feuille choisit, affecte légèrement l'orientation des branches.
Add leaves : active ou désactive la génération des feuilles.
LeafObj : assigne un objet en tant que feuille. Les objets "a" à "o" existent déjà dans le Layer 3 mais vous pouvez en créér d'autres voir l'exemple ci-dessous :
Quoi qu'il en soit, lorsqu'on créé un nouvel objet pour l'utiliser comme feuille, on essaye de minimiser le nombre de sommets..
Etape 1 :
Créer un objet aligné avec les maillages déjà présents. Ci-dessous, en rose, un objet "Sphere" a été créé.
leafobj1
Etape 2 :
On clique le bouton [AddLeaves] il s'enfonce, on inscrit dans le champ [leafobj:] le nom de l'objet maillage à utiliser celui que l'on vient de créer.
bouton
dans mon exemple une icosphère (4,4).

leaf0
On clique sur [GENERATE] et on obtient le résultat ci-dessous :
resultat
L'objet maillage Sphere a été utilisé comme feuille.
LeafScale : permet d'indiquer la taille des feuilles.


Force buttons :
UseThickness: Utilisez ce bouton si vous voulez que la force affecte plus les branches fines que les branches épaisses.
Bearing : qui signifie porter.
Elevation: Hauteur.
Magnitude: Valeur, ordre de grandeur, d'importance.
Contrôlent la direction et la magnitude de la force. Varie en fonction de resolutionV.
Exemples ci-dessous : à droite, seul resolution V a été changé par rapport aux réglages de gauche.
forcev0
forceV6
forceButton
forcebuttonV6
Prune buttons : Taille les sous-branches au hazard avec la valeur inscrite dans "Prob".
PruneFirst: "Prune" qui signifie tailler/élaguer, élague les sous-branches créées dans les premières N itérations.
Prob : de 0 à 0.500, valeur de probabilité.



General buttons :
Scale : Hauteur totale de l'arbre tel qu'il est définit par les section Branche et Stem, sans les feuilles.
Radius : épaisseur/diamètre globale de l'arbre..

Shorten : Contrôle de combien plus court sera le prochain segment. Dépend de resolutionV.
ThinDwn : Contrôle de combien plus étroit sera le prochain segment. Dépend de resolutionV.

Redir : change au hasard la direction des sous-branches.
Twist : applique une torsion au hasard le long de chaque branche. Dépend de resolutionV.

LOD : (Level Of Detail = Niveau de Détail) Fait décroître ResolutionU proportionellement à la décroissance ThinDwn.
Autrement dit : plus les branches sont fines moins elles sont définies/lissées.
ResolutionU : Nombre de points qui constituent le diamètre d'un anneau.

Iterations : Une itération correspond à un cycle de génération de sous-branches, On augmente cette valeur pour générer des sous-niveaux de branches supplémentaires. Pour chaque itération supplémentaire les sous-branches des niveaux inférieurs seront elles-mêmes subdivées en sous-branches plus petites.

genButEx regGenBut

Livre en français
Starter Kit Blender

Blender Starter Kit