---
title: Matériaux et shaders
description: Comprendre et gérer les matériaux GS Framework dans Blender.
---

import { Aside, Steps, Tabs, TabItem } from '@astrojs/starlight/components';

L'addon gère les matériaux GS Framework à deux niveaux : l'**import** (conversion des fichiers NMM en matériaux Blender) et l'**édition** (configuration des shaders et textures via le panneau **GS Material** pour l'export).

---

## Comment les matériaux NMM sont convertis

Lors de l'import d'un fichier NMM, l'addon crée un matériau Blender utilisant le shader **Principled BSDF** et configure ses paramètres :

| Donnée NMM | Résultat dans Blender |
|---|---|
| Couleur diffuse | Base Color |
| Couleur spéculaire | Specular |
| Glossiness | Roughness (inversé : glossiness haute = roughness basse) |
| Self-illumination | Emission Color + Strength |
| Opacité | Alpha |
| Texture diffuse | Connectée à Base Color |
| Texture normal | Connectée via un nœud Normal Map |
| Texture AO | Multipliée avec Base Color |
| Texture metallic | Connectée à Metallic |
| Double-sided | Backface culling désactivé |
| Shadeless | Matériau en émissif pur |
| Alpha blend | Mode blend Alpha activé |

Toutes les données originales restent accessibles dans les **propriétés custom** du matériau (préfixe `nmm_`), permettant un export fidèle.

---

## Le panneau GS Material (Shader Editor)

Le panneau de gestion des matériaux se trouve dans la **sidebar du Shader Editor**, onglet **GS Material**. Voir la [présentation complète du panneau](/blender/interface/shader-panel/).

Il permet de configurer toutes les données GS du matériau :

- **Couleurs** (diffuse, spéculaire, émissive, ambiante) et **attributs** (glossiness, opacité, réflexion…)
- Le **shader NSA** associé
- Les **canaux de texture** et leurs fichiers
- Le **matériau physique**

<Aside type="tip">
Toutes les modifications sont **enregistrées automatiquement** dans les propriétés custom du matériau — il n'y a plus de bouton *Save*. Un bouton **Reload** permet de recharger les dernières valeurs stockées si besoin.
</Aside>

---

## Canaux de texture disponibles

L'addon reconnaît 13 types de canaux de texture :

| Canal | Usage |
|---|---|
| `diffuse` | Couleur de base / albedo |
| `normal` | Carte de normales pour le relief |
| `specular` | Intensité de la réflexion spéculaire |
| `glossiness` | Brillance de la surface |
| `roughness` | Rugosité de la surface (inverse de glossiness) |
| `opacity` | Transparence |
| `reflection` | Réflexion environnementale |
| `selfillum` | Auto-illumination / émission |
| `light` | Lightmap (éclairage précalculé) |
| `ao` | Occlusion ambiante |
| `metallic` | Caractère métallique |
| `colormask` | Masque de couleur |
| `custom` | Canal personnalisé (vous choisissez le nom) |

---

## Assigner un shader et des textures manuellement

<Steps>

1. **Sélectionnez** un objet avec un matériau dans le viewport.

2. **Ouvrez le Shader Editor** (passez un éditeur en mode Shader Editor, ou utilisez le layout Shading).

3. Ouvrez la **sidebar** du Shader Editor (touche `N`) et allez dans l'onglet **GS Material**.

   {/* ![Onglet GS Material](../../../assets/placeholder-select-nsa.png) */}

4. Dans la section **NSA Shader**, cliquez sur **Select NSA Shader** et naviguez jusqu'au fichier `.nsa` souhaité.

5. Dans la section **Texture Channels**, cliquez sur le bouton **+** pour ajouter un canal.

6. Sélectionnez le canal ajouté dans la liste. Dans le détail :
   - Choisissez le **type** (ex: `diffuse`)
   - Cliquez sur le bouton de parcours pour sélectionner le **fichier texture**

7. Répétez pour chaque canal nécessaire (normal, specular, etc.).

</Steps>

<Aside type="tip">
Chaque modification est **enregistrée automatiquement** dans le matériau. Le bouton **Reload** (en haut du panneau) recharge les valeurs stockées — utile pour annuler une modification non voulue.
</Aside>

---

## Supprimer les données GS

Le bouton **Clear All GS Data** supprime :
- La référence au shader NSA (`nmm_shader_path`)
- Tous les canaux de texture (`nmm_textures`)

Le matériau retrouve un comportement GLTF standard. Cette action est utile si vous voulez exporter le matériau en GLTF pur sans les métadonnées GS Framework.

<Aside type="caution">
Cette suppression est irréversible. Les données GS originales seront perdues.
</Aside>

---

## Formats de texture supportés

Le sélecteur de fichiers textures accepte les formats suivants :

- **PNG** (.png)
- **JPEG** (.jpg, .jpeg)
- **TGA** (.tga)
- **BMP** (.bmp)
- **TIFF** (.tif, .tiff)
- **DDS** (.dds)

---

## Bonnes pratiques

<Aside type="tip">

- **Importez d'abord**, éditez ensuite : les matériaux NMM importés ont déjà leurs canaux correctement configurés. Ils s'affichent automatiquement dans le panneau dès que vous sélectionnez le matériau.
- **Un canal par type** : évitez de mettre deux canaux du même type (ex: deux `diffuse`). Le dernier écrasera le premier lors de l'export.
- **Chemins relatifs** : configurez le [dossier projet](/blender/getting-started/configuration/) pour que les chemins de textures soient stockés de manière relative et portable.
- **Vérifiez dans le Shader Editor** : les nœuds Principled BSDF de Blender vous montrent le résultat visuel des textures connectées, indépendamment des données GS stockées.

</Aside>
