Les cartes qu'on ne vous a pas fournies
Les packs de textures livrent rarement toutes les cartes dont un matériau PBR a besoin. Vous recevez une photo et une carte de hauteur, ou une carte de normales cuite pour le mauvais moteur, ou encore une carte de brillance alors que votre moteur de rendu attend de la rugosité. Cet outil en ligne gratuit transforme ce que vous avez en ce dont vous avez besoin, directement dans le navigateur.
De la carte de hauteur à la carte de normales
Une carte de hauteur stocke l'élévation sous forme de luminosité ; une carte de normales stocke une direction par pixel. Convertir revient à prendre le gradient du champ de hauteur et à en construire la normale de surface : N = normalize(-dh/du, -dh/dv, 1).
Le gradient est estimé avec un noyau de Sobel 3x3 plutôt qu'avec une simple différence entre pixels, car les cartes de hauteur en 8 bits quantifient mal et une différence brute transforme cette quantification en facettes visibles. La force met le gradient à l'échelle avant sa normalisation : les valeurs faibles donnent une surface discrète, les valeurs élevées exagèrent le relief. Ajoutez un pré-flou si votre source forme des bandes sur les pentes douces.
Inverser le vert : le problème OpenGL contre DirectX
Le bug de carte de normales le plus répandu en 3D, et il se corrige en une ligne. L'espace tangent a son axe V dirigé vers le haut, mais les images sont stockées de haut en bas, et deux conventions sont nées de ce désaccord :
- OpenGL / glTF / Blender / Unity / Godot — le vert vaut +Y, dirigé vers le haut. Aussi appelé Y+.
- DirectX / Unreal Engine / 3ds Max — le vert vaut -Y, dirigé vers le bas. Aussi appelé Y-.
Choisissez la mauvaise et rien ne signale d'erreur. La surface est simplement éclairée depuis la mauvaise direction verticale : les bosses se lisent comme des creux et les têtes de vis semblent enfoncées. Cela paraît plausible, et c'est pour cela que le défaut survit jusqu'au rendu final.
Le correctif tient dans g = 255 - g — inverser le canal vert et rien d'autre, ce que fait exactement Inverser le canal vert. L'opération est sa propre réciproque, elle convertit donc dans les deux sens.
Des normales à la hauteur, honnêtement
Retrouver la hauteur à partir d'une carte de normales revient à résoudre une équation de Poisson : cet outil intègre le champ de pentes puis effectue des passes de relaxation pour supprimer la dérive. Augmentez le nombre de passes si des dégradés doux apparaissent là où la surface devrait être plate. Seule la profondeur relative est récupérable, le résultat est donc normalisé.
Rugosité, brillance et occlusion
Désaturer en rugosité utilise la luminance perceptuelle plutôt qu'une moyenne des canaux ; corrigez ensuite sa plage avec les niveaux. Inverser la carte convertit la rugosité en brillance ou en lissé, et inversement. Occlusion ambiante depuis la hauteur balaie vers l'extérieur dans plusieurs directions depuis chaque pixel et l'assombrit selon l'horizon le plus raide rencontré — le curseur d'échelle de hauteur fournit la profondeur qui manque à une image en niveaux de gris.
Tout s'exécute sur votre appareil via les API canvas du navigateur ; aucune texture n'est envoyée.
Tiny Online Tools







