🌀 Distorsion de Domaine — Plier le Bruit en Flux
La distorsion de domaine réinjecte le bruit dans ses propres coordonnées — f(p + f(p + f(p))) — transformant un fBm ordinaire en champs tourbillonnants, marbrés, en forme de nuages. Ajustez la force de distorsion et les octaves pour sculpter un flux organique.
À propos de la Distorsion de Domaine
La distorsion de domaine est une technique de texture procédurale dans laquelle les coordonnées d'entrée d'une fonction de bruit sont déplacées par le résultat d'une autre évaluation de bruit avant l'échantillonnage. Concrètement, au lieu d'échantillonner f(p) on échantillonne f(p + a·f(p + b·f(p))), réinjectant le champ dans ses propres coordonnées. Le résultat transforme un simple champ de mouvement brownien fractionnaire (fBm) en motifs tourbillonnants, marbrés, en forme de nuages, qui paraissent bien plus complexes et organiques que le bruit sous-jacent seul.
La distorsion de domaine est largement utilisée dans la génération procédurale pour les jeux vidéo, les effets visuels et l'art génératif afin de créer des cartes de hauteur de terrain, des matériaux marbrés, des coulées de lave et des rendus de nuages atmosphériques convaincants sans aucune texture réalisée à la main.
Questions Fréquemment Posées
Qu'est-ce que la distorsion de domaine en infographie procédurale ?
La distorsion de domaine consiste à distordre les coordonnées d'entrée d'une fonction de bruit ou de texture à l'aide d'un autre champ de bruit avant de l'évaluer. Au lieu de rechercher le bruit à la position p, on le recherche à p plus un décalage qui provient lui-même du bruit, ce qui fait plier et tourbillonner le champ en motifs organiques. L'idée clé est qu'en appliquant cela de manière récursive, on amplifie la complexité sans augmenter la résolution du bruit de base.
Comment utiliser les contrôles de cette simulation ?
Utilisez le curseur Force de Distorsion pour contrôler à quel point les coordonnées sont déplacées — zéro donne un fBm ordinaire, des valeurs plus élevées produisent un enroulement et un marbrage plus prononcés. Le curseur Octaves ajoute ou retire des couches de détail au bruit fBm sous-jacent. Le bouton Passes bascule entre une itération de distorsion et deux itérations imbriquées, deux passes produisant une turbulence bien plus riche. Basculez entre les vues Déformée et fBm Simple pour voir exactement ce qu'ajoute la distorsion.
Quel changement visuel produit une augmentation de la force de distorsion ?
À faible force de distorsion (0–1), le champ ressemble à un fBm légèrement ondulé. À mesure que la force monte vers 3–5, des veines marbrées fluides et des tourbillons en forme de nuages apparaissent. À très haute force (6–8), le champ devient fortement déformé avec des enroulements serrés et un flux presque turbulent. Il n'existe pas de seuil unique où l'effet se déclenche — la transition est progressive, ce qui explique pourquoi les curseurs en temps réel sont si utiles pour explorer l'espace des paramètres.
Quelle est la mathématique derrière la formule f(p + f(p + f(p))) ?
La formule représente deux couches de distorsion des coordonnées. Le f(p) le plus interne est une évaluation fBm standard qui produit un vecteur de décalage 2D. Ce vecteur est mis à l'échelle par un facteur de force et ajouté à p pour créer une coordonnée déformée, qui alimente un second fBm pour produire un second vecteur de décalage. Le f le plus externe évalue ensuite p plus ce décalage doublement déformé. Chaque couche est régie par la formule fBm : somme sur les octaves de amplitude_i * bruit(fréquence_i * p), où l'amplitude est divisée par deux et la fréquence doublée à chaque octave.
Où la distorsion de domaine est-elle utilisée en production réelle ?
Le bruit à distorsion de domaine est le fondement d'innombrables matériaux procéduraux dans les effets visuels de production et les moteurs de jeu. Les shaders de nuages dans le rendu cinématographique (utilisés dans des titres de grands studios) reposent sur la distorsion de domaine itérée pour obtenir une turbulence réaliste. Les générateurs de terrain l'utilisent pour les motifs d'érosion de canyons fluviaux. Dans des moteurs de jeu comme Unreal et Unity, le fBm à distorsion de domaine est un bloc de construction par défaut pour les nœuds de graphe de matériaux produisant des détails de surface d'eau, de lave, de fumée et de roche.
La distorsion de domaine est-elle la même chose que le bruit de turbulence ?
Non, bien qu'ils soient liés. Le bruit de turbulence prend la valeur absolue du bruit signé à chaque octave avant la sommation, créant des plis en forme de crêtes. La distorsion de domaine est une distorsion de l'espace des coordonnées appliquée avant ou autour de l'évaluation du bruit plutôt qu'une modification de la sommation. Les deux techniques peuvent être combinées : on peut appliquer une distorsion de domaine au bruit de turbulence, ou appliquer la turbulence à un champ déjà déformé, produisant des motifs encore plus complexes.
Qui a introduit la distorsion de domaine et quand a-t-elle été popularisée ?
L'idée générale de la distorsion des coordonnées dans les textures procédurales précède l'usage moderne, apparaissant dans l'article original de Ken Perlin de 1985 au SIGGRAPH sur les textures procédurales comme une forme de perturbation des coordonnées. Cependant, la distorsion de domaine utilisant le fBm réinjecté dans lui-même a été explorée et popularisée systématiquement par Inigo Quilez dans ses articles de 2002–2013 et ses expériences ShaderToy, devenues des références incontournables pour les artistes procéduraux. Sa formulation q = fBm(p), r = fBm(p + q), résultat = fBm(p + r) est aujourd'hui la recette canonique.
Quels autres phénomènes ou simulations sont liés à la distorsion de domaine ?
La distorsion de domaine est étroitement liée aux champs de flux, où un champ de bruit définit des vecteurs de vitesse que suivent les particules dans le temps. Elle est aussi liée au bruit de rotationnel (curl noise), qui dérive un flux sans divergence à partir d'un champ de bruit potentiel pour simuler un mouvement de particules de type fluide. Le bruit de Worley (cellulaire) peut être déformé par distorsion de domaine pour des motifs de roche fissurée ou de cellules organiques. Plus largement, la distorsion de domaine est un cas particulier du displacement mapping, utilisé dans toute l'infographie pour ajouter des détails de surface sans augmenter la résolution de la géométrie.
Comment la distorsion de domaine est-elle utilisée en programmation de shaders aujourd'hui ?
Dans les shaders GLSL et HLSL modernes, la distorsion de domaine s'implémente en quelques lignes : échantillonner un décalage vec2 à partir de deux appels fBm avec des coordonnées de graine décalées (par ex. fBm(p + vec2(0.0, 5.2)) pour x, fBm(p + vec2(1.3, 8.7)) pour y), mettre à l'échelle par la force, puis évaluer un fBm final à la position déformée. L'exécution sur GPU rend même la distorsion en deux passes temps réel à pleine résolution d'écran. Des plateformes de shaders comme Shadertoy et les éditeurs de matériaux à base de nœuds dans les moteurs de jeu exposent ces paramètres sous forme de contrôles conviviaux pour les artistes.
Quelles sont les directions de recherche actuelles qui étendent la distorsion de domaine ?
Les chercheurs explorent la distorsion de domaine différentiable pour la synthèse de textures neuronales, où une optimisation basée sur le gradient apprend des champs de distorsion correspondant à des statistiques d'apparence cibles. Un autre domaine actif est la distorsion informée par la physique, où le champ de déplacement est contraint de satisfaire des équations de fluide (Navier-Stokes ou Euler), produisant des textures non seulement plausibles visuellement mais physiquement cohérentes. Les représentations neuronales éparses telles que NeRF et le 3D Gaussian Splatting utilisent aussi des déformations de coordonnées apprenables qui sont conceptuellement des extensions de la distorsion de domaine appliquées à des champs de radiance volumétriques.
La distorsion de domaine réinjecte le bruit dans ses propres coordonnées — f(p + f(p + f(p))) — transformant un fBm ordinaire en champs tourbillonnants, marbrés, en forme de nuages. Ajustez la force de distorsion et les octaves pour sculpter un flux organique.
3D · Moteur de rendu Three.js / WebGL · Cible 60 FPS · fonctionne entièrement côté client, sans installation