Adaptive Subdivision

Technique de subdivision dynamique qui ajuste automatiquement le niveau de détail selon la distance à la caméra, optimisant le rendu des displacements.

Adaptive Subdivision : la densité du maillage s'adapte à la distance de la caméra.
Adaptive Subdivision : la densité du maillage s'adapte à la distance de la caméra.

L’Adaptive Subdivision est une technique de subdivision intelligente qui ajuste automatiquement la densité du mesh en fonction de la distance à la caméra. Les zones proches reçoivent plus de polygones, les zones éloignées moins. Idéal pour le Displacement sans exploser la mémoire.

Le principe

Avec une subdivision classique, tout le mesh reçoit le même niveau de détail, même les parties invisibles ou lointaines. C’est du gaspillage de ressources.

L’Adaptive Subdivision résout ce problème :

  • Près de la caméra → subdivision élevée, beaucoup de détails
  • Loin de la caméra → subdivision basse, peu de polygones
  • Hors champ → minimum de géométrie

Le calcul se fait au moment du rendu, pas dans le viewport.

Pourquoi l’utiliser

L’Adaptive Subdivision est essentielle pour :

  • Terrains avec displacement (montagnes, sols)
  • Océans et surfaces d’eau
  • Gros plans sur des surfaces détaillées
  • Scènes massives avec beaucoup de géométrie
  • Micro-détails visibles uniquement de près

Sans elle, un terrain réaliste avec displacement demanderait des milliards de polygones.

Subdivision classique vs Adaptive

ClassiqueAdaptive
Même densité partoutDensité variable
Défini manuellement (niveaux)Calculé automatiquement
Gourmand en mémoireOptimisé
Viewport + RenduRendu uniquement
Tous les moteursPrincipalement Cycles

Paramètres clés

  • Dicing Rate : taille cible des polygones en pixels à l’écran (plus bas = plus de détails)
  • Max Subdivisions : limite haute pour éviter les calculs infinis
  • Distance : peut aussi se baser sur la distance caméra en mètres

Dans les logiciels 3D

  • Blender Cycles : Experimental Feature Set + Subdivision Modifier en Adaptive
  • Pixar RenderMan : inventeur du concept (micropolygon rendering)
  • Arnold : Adaptive Subdivision intégrée
  • V-Ray : Displacement avec subdivision adaptive
  • Houdini/Karma : Adaptive subdivision native

Focus Blender

L’Adaptive Subdivision dans Blender nécessite quelques étapes :

1. Activer le Feature Set Experimental

  1. Va dans Edit → Preferences → Render
  2. Ou dans Render Properties → Feature Set
  3. Change de Supported à Experimental

2. Configurer le modifier Subdivision

  1. Ajoute un Subdivision Surface Modifier
  2. Change le type de Catmull-Clark à Simple (si displacement pur)
  3. Coche Adaptive Subdivision

3. Configurer le Dicing

Dans Render Properties → Subdivision :

  • Dicing Rate Render : taille en pixels (1px = très détaillé, 4px = standard)
  • Dicing Rate Preview : pour le viewport (plus haut pour la fluidité)
  • Offscreen Scale : multiplicateur pour les zones hors champ
  • Max Subdivisions : limite de sécurité (12 par défaut)

4. Ajouter le Displacement

Dans le shader :

  1. Ajoute une texture (Image ou Noise)
  2. Connecte-la à un node Displacement
  3. Connecte le Displacement au Material Output → Displacement
  4. Dans Material Settings → Surface, mets Displacement sur « Displacement Only » ou « Displacement and Bump »

Dicing Rate : quelle valeur ?

  • 0.5 px : ultra détaillé, très lent, gros plans extrêmes
  • 1 px : haute qualité, rendu lent
  • 2 px : bon compromis qualité/temps
  • 4 px : rapide, détails moyens
  • 8 px : preview, peu de détails

Commence à 2-4 px et ajuste selon le résultat.

Exemple : terrain avec displacement

Setup complet pour un terrain réaliste :

1. Plan simple (1 seul quad)
2. Subdivision Modifier → Adaptive coché
3. Texture de heightmap → Displacement Node
4. Material Settings → Displacement Only
5. Dicing Rate → 2 px
6. Max Subdivisions → 12

Résultat : un terrain avec des millions de polygones générés uniquement au rendu, là où c’est nécessaire.

Limitations

Cycles uniquement

  • Eevee ne supporte pas l’Adaptive Subdivision
  • Pour Eevee, utilise le Bump ou un mesh pré-subdivisé

Viewport

  • L’adaptive ne fonctionne qu’au rendu
  • En viewport, tu vois une version simplifiée

Motion Blur

  • Peut causer des artefacts sur les animations
  • Augmente Max Subdivisions si problème

Mémoire

  • Même optimisé, les très gros Dicing Rates consomment beaucoup
  • Surveille la VRAM avec des textures 8K+

Adaptive vs Multiresolution

Adaptive SubdivisionMultiresolution
Calculé au renduStocké dans le fichier
Basé sur la caméraUniforme partout
Idéal pour displacementIdéal pour sculpt
Pas de viewport previewPreview temps réel

Utilise Adaptive pour les terrains/environnements, Multiresolution pour le sculpt de personnages.

Erreurs courantes

Rien ne se passe

  • Vérifie que tu es en Experimental Feature Set
  • Vérifie que Adaptive Subdivision est coché dans le modifier

Mesh tout noir ou bizarre

  • Displacement trop fort : réduis le Scale du node Displacement
  • Normales inversées : Shift+N en Edit Mode

Rendu très lent

  • Dicing Rate trop bas : monte à 2-4 px
  • Max Subdivisions trop haut : limite à 10-12

Cracks/trous dans le mesh

  • Assure-toi que les UVs sont corrects
  • Vérifie que la texture est bien tileable

Pour aller plus loin