Qu’est-ce qu’un Layer dans Mari ?
Les Layers de Mari sont assimilables aux calques Photoshop. Ce sont des couches sur lesquelles il est possible de peindre, d’appliquer une texture, d’ajouter un masque,…
Les Layers constituent donc la source de vos textures.
Les Layers sont créés dans ce qui s’appelle un Layer Stack (littéralement: « empilement de couches ») appartenant à un Channel. En effet, chaque Channel contient un empilement différent de différents Layers.
Vous pouvez créer 4 types de Layers:
- Paintable Layer
- Adjustment Layer
- Procedural Layer
- Group Layer
- Ainsi que des masques pour ces derniers
Les Layers au sommet de l’empilement priment sur les Layers plus bas.
Lister les layers du channel courant d’un objet
1 2 3 | obj = mari.geo.current() # Objet courant channel = obj.currentChannel() # Channel courant layerList = channel.layerList() # Liste des layers |
Créer un Layer
1 2 3 4 5 6 7 8 9 10 | obj = mari.geo.current() # Objet courant channel = obj.currentChannel() # Channel courant # Paintable Layer newLayer = channel.createPaintableLayer("New Layer Name") # Adjustment Layer* newLayer = channel.createAdjustmentLayer("New Layer Name", "Filter/Brightness") # Procedural Layer* newLayer = channel.createProceduralLayer("New Layer Name", "Basic/Color") # Group Layer newLayer = channel.createGroupLayer("New Layer Name") |
*Cf: liste des types de layers d’ajustements et de procédures
Mettre un layer dans un groupe
1 2 3 4 5 6 7 8 9 | # Objet courant obj = mari.geo.current() # Objet courant # Création du channel channel = obj.createChannel("Mon Channel", 2048, 2048, 16) # Création du groupe (group layer) et de son "empilement" group = channel.createGroupLayer("Mon groupe") groupStack = group.layerStack() # Création d'un layer dans le groupe layer = groupStack.createPaintableLayer("Mon layer") |
Changer le mode de fusion d’un layer
1 2 | # Avec "value" un int entre 1 et 30* layer.setBlendMode(value) |
*Cf: liste des modes de fusion des layers
Créer un masque sur un layer
1 2 3 4 5 6 | # Création du masque mask = layer.makeMask() # Création de la couleur du masque color = mari.Color(0, 0, 0) for image in mask.imageSets(): image.setUniformColor( color ) |
Modes de création
- Reveal all
Le mode Reveal All rempli le masque de blanc.
- Hide all
Le mode Hide All fait un Fill Color avec du noir.