Le README français devient README.fr.md (historique conservé) ; README.md est sa
traduction anglaise. Les fiches du site lisent les deux (contrat apc-spec §4.2).
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-20 18:16:21 +02:00
7 changed files with 271 additions and 116 deletions
Slice Wrap, Envelope, Regenerate et Despike affichent d'abord un message : le calcul peut être long, Blender
ignorera les clics pendant ce temps (il n'est pas planté), Échap annule. Case « Show this message next time »
(aussi dans *Preferences > Add-ons > Slice Wrap > Confirm Long Operations*).
Pendant le calcul (ainsi que Freeze et Analyze) : **barre de progression** avec l'étape en cours et le temps écoulé,
dans la barre d'état en bas de la fenêtre et en haut du panneau. **Échap** annule : rien n'est créé ni modifié.
Limite : quelques opérations internes de Blender (subdivision Multires, Multires Reshape, Voxel Remesh) sont d'un
seul tenant. Sur un maillage lourd, l'affichage reste figé quelques secondes sur cette étape, puis la progression
reprend.
### Nom et rangement du résultat
- **Suffix** (défaut `_slicewrapped`) : nom du maillage créé = nom de la source + suffixe.
- **Numérotation automatique** : si le nom existe déjà, `.001`, `.002`… comme Blender — **aucun objet existant
n'est jamais écrasé** (même avec un suffixe vide, la source reste intacte).
- **Collection** (case + nom, défaut `SliceWrapCollection`) : le résultat y est rangé ; si la collection existe,
elle est simplement réutilisée (son contenu n'est pas touché), sinon elle est créée et liée à la scène.
Case décochée : le résultat va dans les collections de la source.
- **Regenerate** est le seul bouton qui recalcule un objet existant : l'enveloppe active, sur place.
### Sous-panneau « Steps » (replié) — chaque étape séparément
| # | Bouton | Ce qu'il fait |
|---|--------|---------------|
| 1 | **Envelope** | Sur l'objet actif (la source, jamais modifiée) : voxels → fermeture des trous → remplissage par tranches → surface fermée (Voxel Remesh sur volume déjà plein, sans fuite) → plus grande pièce → lissage de Taubin. Crée `<source><suffixe>` (numéroté si le nom existe). |
| | ↻ **Regenerate** | Recalcule l'enveloppe active depuis sa source avec les réglages actuels (pseudo-modificateur). Refusé si l'enveloppe est déjà wrappée. |
| 2 | **Wrap Setup** | Gonfle l'enveloppe le long des normales (pour qu'elle soit entièrement *au-dessus* de la peau), ajoute **Multires** (N niveaux) puis **Shrinkwrap** : *Project*, le long des normales, **vers l'intérieur seulement**, avec une distance limite. |
| 3 | **Freeze** | Fige la projection **dans les niveaux du Multires** (Multires Reshape) et retire le Shrinkwrap. Avec **Repair Missed Rays**, les sommets dont la projection a raté — rien touché (aiguilles) ou trop loin (creux sur une paroi interne) — sont détectés exactement (comparaison avant / après) et reconstruits depuis leurs voisins. |
Astuce : pour couper le socle / les épaules avant la projection, faites **Envelope**, coupez (Bisect), puis
**Wrap Setup** et **Freeze**.
### Sous-panneau « Despike » — outil manuel
Filtre anti-pointes résiduel : un sommet n'est corrigé que s'il est **isolé**, nettement plus loin de la moyenne
de ses voisins que ceux-ci ne le sont des leurs ; le relief normal (oreilles, paupières) n'est pas lissé.
- **Distance** : écart minimal pour être une pointe (0 = automatique : longueur moyenne d'arête).
- **Strength** (0–1) : part du chemin vers la moyenne des voisins.
- **Iterations** : nombre de passes. **Isolation** : la pointe doit dévier N fois plus que ses voisins.
- **Vertex Group Filters** : liste (+ / − / vider) des groupes de sommets à traiter. Le **poids** du groupe module
la force (fondu possible en bordure). **Liste vide = toute la surface.** Si la liste contient des groupes
dont aucun n'existe, le Despike refuse de s'exécuter (pour ne jamais traiter toute la surface par erreur).
Les groupes de la base sont propagés aux niveaux du Multires.
- **Protect Detail** : atténue le Despike en proportion du détail (analyse de forme recalculée à la volée), pour
ne jamais aplatir paupières, narines ou oreilles.
### Sous-panneau « Analyze » — optionnel, ne modifie jamais la géométrie
Analyse la forme de l'objet actif (Multires compris) : pour chaque sommet, la répartition des normales sur un
voisinage (tenseur de covariance) et la courbure moyenne signée. Résultat écrit sur le maillage de base :
| Donnée | Type | Contenu |
|--------|------|---------|
| `sw_detail` | attribut float 0–1 | densité de détail (la surface « tourne » beaucoup) — carte de densité pour une retopo |
| `SW_Detail`, `SW_Bulge`, `SW_Hollow`, `SW_Ridge`, `SW_Fold`, `SW_Saddle` | groupes de sommets | filtres Despike, masques, ou carte de densité d'un remailleur |
Slice Wrap, Envelope, Regenerate et Despike affichent d'abord un message : le calcul peut être long, Blender
ignorera les clics pendant ce temps (il n'est pas planté), Échap annule. Case « Show this message next time »
(aussi dans *Preferences > Add-ons > Slice Wrap > Confirm Long Operations*).
Pendant le calcul (ainsi que Freeze et Analyze) : **barre de progression** avec l'étape en cours et le temps écoulé,
dans la barre d'état en bas de la fenêtre et en haut du panneau. **Échap** annule : rien n'est créé ni modifié.
Limite : quelques opérations internes de Blender (subdivision Multires, Multires Reshape, Voxel Remesh) sont d'un
seul tenant. Sur un maillage lourd, l'affichage reste figé quelques secondes sur cette étape, puis la progression
reprend.
1. Select the (holey) source mesh in Object Mode.
2. Adjust the **Envelope** and **Wrap** sections if needed, then click **Slice Wrap** (one click):
Envelope → Wrap Setup → Freeze, plus **Despike** if **Despike After** is checked.
3. The result `<source><suffix>` (by default `<source>_slicewrapped`) is ready to sculpt (light base + Multires
levels). The source is hidden.
### Nom et rangement du résultat
- **Suffix** (défaut `_slicewrapped`) : nom du maillage créé = nom de la source + suffixe.
- **Numérotation automatique** : si le nom existe déjà, `.001`, `.002`… comme Blender — **aucun objet existant
n'est jamais écrasé** (même avec un suffixe vide, la source reste intacte).
- **Collection** (case + nom, défaut `SliceWrapCollection`) : le résultat y est rangé ; si la collection existe,
elle est simplement réutilisée (son contenu n'est pas touché), sinon elle est créée et liée à la scène.
Case décochée : le résultat va dans les collections de la source.
- **Regenerate** est le seul bouton qui recalcule un objet existant : l'enveloppe active, sur place.
### Long computations: confirmation, progress, cancel
Slice Wrap, Envelope, Regenerate and Despike first show a message: the computation can take a while, Blender will
ignore clicks meanwhile (it has not crashed), Esc cancels. "Show this message next time" checkbox (also in
*Preferences > Add-ons > Slice Wrap > Confirm Long Operations*).
During the computation (as well as Freeze and Analyze): a **progress bar** with the current step and the elapsed
time, in the status bar at the bottom of the window and at the top of the panel. **Esc** cancels: nothing is
created or modified.
Limitation: a few internal Blender operations (Multires subdivision, Multires Reshape, Voxel Remesh) run in one
go. On a heavy mesh, the display stays frozen on that step for a few seconds, then progress resumes.
### Sous-panneau « Steps » (replié) — chaque étape séparément
| # | Bouton | Ce qu'il fait |
|---|--------|---------------|
| 1 | **Envelope** | Sur l'objet actif (la source, jamais modifiée) : voxels → fermeture des trous → remplissage par tranches → surface fermée (Voxel Remesh sur volume déjà plein, sans fuite) → plus grande pièce → lissage de Taubin. Crée `<source><suffixe>` (numéroté si le nom existe). |
| | ↻ **Regenerate** | Recalcule l'enveloppe active depuis sa source avec les réglages actuels (pseudo-modificateur). Refusé si l'enveloppe est déjà wrappée. |
| 2 | **Wrap Setup** | Gonfle l'enveloppe le long des normales (pour qu'elle soit entièrement *au-dessus* de la peau), ajoute **Multires** (N niveaux) puis **Shrinkwrap** : *Project*, le long des normales, **vers l'intérieur seulement**, avec une distance limite. |
| 3 | **Freeze** | Fige la projection **dans les niveaux du Multires** (Multires Reshape) et retire le Shrinkwrap. Avec **Repair Missed Rays**, les sommets dont la projection a raté — rien touché (aiguilles) ou trop loin (creux sur une paroi interne) — sont détectés exactement (comparaison avant / après) et reconstruits depuis leurs voisins. |
### Naming and placing the result
- **Suffix** (default `_slicewrapped`): name of the created mesh = source name + suffix.
- **Automatic numbering**: if the name already exists, `.001`, `.002`… like Blender — **no existing object is ever
overwritten** (even with an empty suffix, the source stays intact).
- **Collection** (checkbox + name, default `SliceWrapCollection`): the result is placed in it; if the collection
exists it is simply reused (its content is not touched), otherwise it is created and linked to the scene.
Unchecked: the result goes into the collections of the source.
- **Regenerate** is the only button that recomputes an existing object: the active envelope, in place.
Astuce : pour couper le socle / les épaules avant la projection, faites **Envelope**, coupez (Bisect), puis
**Wrap Setup** et **Freeze**.
### "Steps" sub-panel (collapsed) — each step separately
| # | Button | What it does |
|---|--------|--------------|
| 1 | **Envelope** | On the active object (the source, never modified): voxels → hole closing → slice filling → closed surface (Voxel Remesh on an already full volume, no leak) → largest piece → Taubin smoothing. Creates `<source><suffix>` (numbered if the name exists). |
| | ↻ **Regenerate** | Recomputes the active envelope from its source with the current settings (pseudo-modifier). Refused if the envelope is already wrapped. |
| 2 | **Wrap Setup** | Inflates the envelope along the normals (so that it lies entirely *above* the skin), adds **Multires** (N levels) then **Shrinkwrap**: *Project*, along the normals, **inwards only**, with a limit distance. |
| 3 | **Freeze** | Freezes the projection **into the Multires levels** (Multires Reshape) and removes the Shrinkwrap. With **Repair Missed Rays**, vertices whose projection missed — nothing hit (needles) or too far (hollow on an inner wall) — are detected exactly (before / after comparison) and rebuilt from their neighbours. |
### Sous-panneau « Despike » — outil manuel
Filtre anti-pointes résiduel : un sommet n'est corrigé que s'il est **isolé**, nettement plus loin de la moyenne
de ses voisins que ceux-ci ne le sont des leurs ; le relief normal (oreilles, paupières) n'est pas lissé.
- **Distance** : écart minimal pour être une pointe (0 = automatique : longueur moyenne d'arête).
- **Strength** (0–1) : part du chemin vers la moyenne des voisins.
- **Iterations** : nombre de passes. **Isolation** : la pointe doit dévier N fois plus que ses voisins.
- **Vertex Group Filters** : liste (+ / − / vider) des groupes de sommets à traiter. Le **poids** du groupe module
la force (fondu possible en bordure). **Liste vide = toute la surface.** Si la liste contient des groupes
dont aucun n'existe, le Despike refuse de s'exécuter (pour ne jamais traiter toute la surface par erreur).
Les groupes de la base sont propagés aux niveaux du Multires.
- **Protect Detail** : atténue le Despike en proportion du détail (analyse de forme recalculée à la volée), pour
ne jamais aplatir paupières, narines ou oreilles.
Tip: to cut the base / shoulders before projecting, run **Envelope**, cut (Bisect), then **Wrap Setup** and
**Freeze**.
### Sous-panneau « Analyze » — optionnel, ne modifie jamais la géométrie
Analyse la forme de l'objet actif (Multires compris) : pour chaque sommet, la répartition des normales sur un
voisinage (tenseur de covariance) et la courbure moyenne signée. Résultat écrit sur le maillage de base :
### "Despike" sub-panel — manual tool
Residual anti-spike filter: a vertex is only corrected if it is **isolated**, clearly further from the average of
its neighbours than they are from theirs; normal relief (ears, eyelids) is not smoothed.
- **Distance**: minimum deviation to count as a spike (0 = automatic: average edge length).
- **Strength** (0–1): fraction of the way towards the neighbours' average.
- **Iterations**: number of passes. **Isolation**: the spike must deviate N times more than its neighbours.
- **Vertex Group Filters**: list (+ / − / clear) of the vertex groups to process. The group **weight** modulates
the strength (fade-out possible at the border). **Empty list = the whole surface.** If the list contains groups
none of which exist, Despike refuses to run (so as never to process the whole surface by mistake).
The groups of the base are propagated to the Multires levels.
- **Protect Detail**: attenuates Despike in proportion to the detail (shape analysis computed on the fly), so as
never to flatten eyelids, nostrils or ears.
| Donnée | Type | Contenu |
|--------|------|---------|
| `sw_detail` | attribut float 0–1 | densité de détail (la surface « tourne » beaucoup) — carte de densité pour une retopo |
| `SW_Detail`, `SW_Bulge`, `SW_Hollow`, `SW_Ridge`, `SW_Fold`, `SW_Saddle` | groupes de sommets | filtres Despike, masques, ou carte de densité d'un remailleur |
### "Analyze" sub-panel — optional, never modifies the geometry
Analyses the shape of the active object (Multires included): for each vertex, the spread of the normals over a
neighbourhood (covariance tensor) and the signed mean curvature. Result written on the base mesh:
sys.exit(1iffailselse0)# code de retour lu par « a2m validate --tests » et « a2m release »
Reference in new issue
Block a user
Blocking a user prevents them from interacting with repositories, such as opening or commenting on pull requests or issues. Learn more about blocking a user.