From BlenderWiki

Jump to: navigation, search
Blender3D FreeTip.gif
IMPORTANT! Do not update this page!
We have moved the Blender User Manual to a new location. Please do not update this page, as it will be locked soon.

Modificateur “Boolean”

Mode: N‘importe quel mode

Panneau: Modifiers (contexte Editing, F9)

Astuce : Cette page décrit les deux manières d’appliquer des opérations booléennes sous Blender : l’“ancienne méthode” (l’outil Boolean) et la “nouvelle méthode améliorée” (le modificateur Boolean). En pratique, le modificateur est beaucoup plus utile de nos jours, grâce aux caractéristiques qu’il partage avec tous les modificateurs (et dont ne dispose pas l’“ancien” outil booléen) :

  • Ils ont une vraie interface utilisateur. Il est très facile de déterminer quel objet est affecté par l’opération, et quel (autre) objet sert de source.
  • Si vous n’aimez pas ce que vous voyez, vous pouvez réarranger les modificateurs dans la pile, et ainsi changer leur ordre d’application. Ou encore les enlever, les désactiver, et ainsi de suite…
  • Comme tous les modificateurs, il peut être sélectivement (dés)activé.

En d’autres termes, les modificateurs (seuls) offrent une édition non-destructive. Quand vous utilisez des modificateurs, vous ne faites rien d’irréversible à votre modèle, tant que vous ne les rendez pas permanent en les “appliquant”.

Description

Ce sous-panneau est affiché dans le groupe de panneaux du contexte Editing (F9, ou clic sur Manual-Part-I-Interface-Context-Editing.png dans la fenêtre Buttons). Il fait partie du panneau Modifiers. Pour plus d’informations sur cet onglet et son contenu, voyez la page sur l’interface de la pile des modificateurs.

L’inconvénient d’utiliser une opération booléenne directe est que, si vous voulez la modifier (déplacer les opérandes, changer l’opération), vous devez supprimer le nouvel objet, et ré-appliquer la commande. Au contraire, l’utilisation du modificateur Boolean permet une grande flexibilité, et une édition non-destructive. En tant que modificateurs, ces opérations booléennes peuvent être activées/désactivées, ou même réarrangées dans la pile pour modifier l’ordre d’application. De plus, vous pouvez déplacer les opérandes et voir ces modifications appliquées en temps réel !

Attention
Si les meshes des objets sont trop complexes vous pouvez avoir à attendre un moment pendant que le système calcule tous les mouvements de souris. Désactiver (temporairement) l’affichage dans les vues 3D de ce modificateur peut alors améliorer les choses.


Pour obtenir un objet “définitif” de ce modificateur (comme avec l’utilisation directe d’une opération booléenne), vous devez l’“appliquer” en cliquant sur son bouton Apply. Pour voir le résultat, vous devez soit déplacer l’opérande restante, soit passer en vue locale (/ NumPad). Tant que vous n’appliquez pas le modificateur, le mesh de l’objet n’est pas modifié. Quand vous appliquez un modificateur Boolean, il vous est notifié que vous perdrez les données de mesh sticky, les clefs d’animation et les groupes de vertices.

Attention
Il existe une différence importante entre utiliser une opération booléenne “directe” et appliquer un modificateur Boolean : la première crée un nouvel objet, alors que le second modifie le mesh de son objet sous-jacent. Cela signifie que quand vous appliquez un modificateur Boolean, vous “perdez” l’une de vos opérandes ! Faites une copie (⇧ ShiftD) de l’objet portant le modificateur, si vous voulez en conserver une “version originale”…


Cependant, vous pourriez ne pas avoir envie d’appliquer votre modificateur Boolean : il s’agit de fait d’un outil remarquable pour effectuer certains effets/déformations animés, puisqu’il est ré-évalué à chaque frame. Cela vous permet par ex. d’avoir une sorte de “champ de force” se déformant autour d’un objet lorsque celui-ci le pénètre (voyez l’exemple ci-dessous…). Notez que vous pouvez rendre des objets invisibles au rendu, ce qui peut être très utile pour l’une des opérandes d’une opération booléenne !

À partir de Blender v2.49, les modificateurs Boolean n’ont plus besoin d’être au sommet de la pile des modificateurs. Il s’agissait d’une limitation relativement contraignante, car cela signifiait que vous ne pouviez utiliser plus d’un modificateur Boolean à la fois sur un même mesh, et que vous ne pouviez travailler que sur les données mesh “brutes” (c-à-d que vous ne pouviez pas utiliser, par ex., le résultat d’un modificateur Subsurf comme opérande booléenne – à moins de l’appliquer d’abord, évidemment…).

Maintenant, vous pouvez placer un modificateur Boolean où vous voulez dans la pile. Vous pouvez aussi en avoir plusieurs sur un même objet. Enfin (et ce n’est pas la moindre des choses), l’objet “deuxième opérande” (celui dont vous entrez le nom dans le champ Ob du modificateur) sera également utilisé “tous-les-modificateurs-appliqués” (par ex., vous pouvez utiliser sa forme sub-divisée…).

Attention
Toutes ces nouvelles possibilités sont géniales. Mais faites attention :les opérations booléennes sont toujours un processus complexe, qui peut prendre beaucoup de temps avec des opérandes comportant beaucoup de vertices. Prenez la peine de vous pencher sur tous les modificateurs placés avant le Boolean, en particulier sur les Subsurf !


Options

Panneau Modifiers avec un modificateur Boolean activé.
Operation
Le type d’opération booléenne à appliquer (Intersect, Union ou Difference).
Ob
Le nom de l’objet à utiliser comme seconde opérande pour ce modificateur.


Exemples

Intersection

Le cube et la sphère ont été déplacés pour révéler le nouvel objet créé (“A”). Chaque face de cet objet a le matériau de la face de l’objet opérande qui lui correspond dans cette opération Intersect.

Avant l’intersection.
Après l’intersection.


Union

Le cube (“A”) et la sphère (“B”) ont été déplacés pour révéler le nouvel objet (“U”). “U” est maintenant un objet mesh comme les autres, chacune de ses faces ayant le même matériau que celle de l’objet opérande qui lui correspond dans cette opération Union.

Exemple d’union.


Différence

La différence de deux objets n’est (comme la soustraction “normale”) pas commutative, car l’objet inactif moins l’objet actif (comportement de cette opération) ne produit pas la même chose que actif moins inactif. Le cube (“A”) – actif – a été soustrait de la sphère (“B”) – inactive –, puis tous les deux ont été déplacés pour révéler le nouvel objet (“D”). “D” est maintenant un objet mesh comme les autres, chacune de ses faces ayant le même matériau que celle de l’objet opérande qui lui correspond dans cette opération Difference. Le volume de “D” est inférieur à celui de “B”, car il a été diminué d’une partie du volume de “A”.

Exemple de différence.


Exemples plus complexes utilisant des modificateurs “Boolean”

Plusieurs modificateurs

Le processus de modélisation de l’objet complexe montré ci-contre.
Un objet complexe modélisé avec plusieurs modificateurs Boolean.

(Le processus de modélisation de l’objet complexe montré ci-contre) illustre comment modéliser un objet mesh relativement complexe, en utilisant uniquement trois formes basiques, et plusieurs modificateurs. Comme d’habitude, cliquez sur l’image pour l’agrandir.

(Un objet complexe modélisé avec plusieurs modificateurs Boolean) est le résultat de ce processus de modélisation. Vous pouvez télécharger le fichier blender de démonstration ici.

Voici une vidéo montrant le nouveau processus sous Blender v2.49 :

Animation

Une déformation booléenne animée.

(Une déformation booléenne animée) montre quelques images-clés de la déformation booléenne d’une sphère “champ de force” pénétrée par une sorte d’hirondelle spatiale. Il essaye d’illustrer les possibilités des modificateurs Boolean dans les animations.

Le schéma de l’effet.

(Le schéma de l’effet) résume les points-clé de l’effet de déformation booléenne. Il y a une petite subtilité, ici : l’une des opérandes booléennes (“SpaceShip_ext”) n’est pas rendue (le troisième contrôle, à droites de la fenêtre Outliner, en affichage Outliner), ce qui nous permet de conserver la surface “FField” légèrement à l’écart du vrai “SpaceShip” (sinon, nous aurions beaucoup d’artefacts !). “SpaceShip_ext” est une copie-liée (AltD) de l’objet “SpaceShip”, simplement légèrement agrandie, et apparenté à l’“original”.

Vous pouvez télécharger le fichier blender ici.

Et voici la vidéo complète de l’anim (Media:manual-modifiers_boolean_exvideo.avi) :


Détails techniques

Normales visibles.

Les opérations booléennes s’appuient fortement sur les normales des faces des deux objets opérandes, il est donc très important que celles-ci soient correctement définies et cohérentes. Cela signifie que toutes les normales devraient pointer vers l’extérieur. Un bon moyen de voir les normales des objets est d’activer leur dessin en cliquant sur Draw Normals dans le panneau Mesh Tools More, contexte Editing (F9) de la fenêtre Buttons. Ce panneau et les normales ne sont visibles qu’en mode Edit. (Normales visibles) est un exemple de cube avec ses normales visibles.

Dans le cas des objets ouverts, c’est-à-dire des objets ayant des trous dans leur surface, l’intérieur est défini mathématiquement en étendant les faces “frontières” de l’objet à l’infini. En conséquence, vous pouvez vous retrouver avec des résultats inattendus si vous utilisez ce type d’objet(s) comme opérande(s). Une opération booléenne n’affecte jamais les objets d’origine, le résultat est toujours un nouvel objet.

Attention
Ceci n’est pas vrai pour les modificateurs Boolean : lorsqu’ils sont appliqués, ils modifient leur objet cible, et n’en créent pas un nouveau !


Certaines opérations nécessiteront que vous déplaciez les opérandes, ou passiez en vue locale (/ NumPad), pour en voir le résultat.

Limitations & Contournements

Le nombre de polygones générés peut être très grand comparé aux meshes d’origine, particulièrement avec des objets concaves complexes. De plus, les polygones générés peuvent être de piètre qualité, par exemple, très longs et fins, ou bien très petits. Essayez d’utiliser le modificateur Decimate (contexte Editing, F9) pour régler ce problème.

Parfois, l’opération booléenne peut échouer avec le message suivant : “An internal error occurred -- sorry” (“Une erreur interne est survenue – désolé”). Si cela arrive, essayez de déplacer ou tourner très légèrement un ou deux des objets opérandes, et réessayez.

Outils Booléens

Mode: Mode Object (meshes uniquement)

Panneau: Modifiers (contexte Editing, F9)

Raccourci clavier: W

Menu: Object » Boolean Operation...

Description

Les opérations booléennes sont des méthodes pour combiner (ou soustraire, ou “intersecter”) deux objets solides pour en créer un troisième. Dans Blender, elles ne s’appliquent qu’à deux objets meshes, de préférence “solides”, ou “fermés”, avec une surface intérieure et une surface extérieure bien définies. Si plus de deux meshes sont sélectionnés, seuls l’objet actif et celui précédemment sélectionné sont utilisés comme opérandes. Les opérations booléennes prennent aussi en compte les matériaux et les textures UV, produisant des objets avec plusieurs matériaux et placages UV.

Ça vaut le coup de le répéter : ces opérations sont appliquées immédiatement et ne sont pas réversibles. Elles étaient “la seule façon de le faire”, mais vous ne voudrez probablement plus faire les choses de cette façon aujourd’hui (considérez donc ces outils comme un petit rappel des améliorations apportées par le modificateurs Boolean !).

Options

Le menu Boolean (W en mode Object) présente les options suivantes :

Opérations booléennes.
Intersect
Crée un nouvel objet dont la surface délimite le volume commun aux deux objets d’origine.
Union
Crée un nouvel objet dont la surface délimite le volume total occupé par les deux objets d’origine.
Difference
La seule opération dans laquelle l’ordre de sélection des opérandes est important, l’objet actif (le dernier sélectionné) étant soustrait de l’autre. Cela crée donc un nouvel objet dont la surface délimite le volume de l’objet inactif moins le volume de l’objet actif.
Add Intersect Modifier
Un raccourci qui ajoute un modificateur Boolean à l’objet actif et y sélectionne Intersect en une seule étape.
Add Union Modifier
Un raccourci qui ajoute un modificateur Boolean à l’objet actif et y sélectionne Union en une seule étape.
Add Difference Modifier
Devinez quoi ? Un raccourci qui ajoute un modificateur Boolean à l’objet actif et y sélectionne Difference en une seule étape.