Normal Map Generator
Convertissez des heightmaps en normal maps tangent-space
A propos de cet outil
Convertissez n'importe quelle heightmap ou image en niveaux de gris en normal map tangent-space directement dans votre navigateur. Utilise un opérateur de gradient Sobel sur la luminance, avec force, lissage et conventions OpenGL/DirectX ajustables. Idéal pour les moteurs de jeu, le travail shader, et s'associe naturellement avec le module aukimi Matter pour le design de matériaux procéduraux. Fait partie d'aukimi Matter.
Fonctionnalites
- Détection de gradient Sobel sur la luminance
- Conventions OpenGL (Y+) et DirectX (Y-)
- Force et lissage ajustables
- Inversion indépendante des canaux X / Y
- Aperçu côte-à-côte heightmap et normal
- Vos images ne quittent jamais votre navigateur
Cas d'utilisation
Partager cet outil
Aidez d'autres à le découvrir
Créez un compte gratuit pour supprimer les filigranes
Sauvegardez vos créations, accédez à la suite créative complète et exportez sans filigrane.
Besoin de plus de puissance ?
Essayez aukimi Matter
Éditeur de textures procédurales par nodes pour créer des matériaux PBR avec aperçu 3D temps réel.
Comment convertir une heightmap en normal map
Transforme une heightmap en niveaux de gris en normal map tangent-space via un gradient Sobel, directement dans ton navigateur.
- 1
Dépose ta heightmap sur l'outil
Glisse un PNG/JPG n'importe où sur l'espace de travail. L'image est auto-redimensionnée à 1024 px max pour le preview temps réel.
- 2
Ajuste Strength
Une force plus élevée accentue la pente — bien pour des inputs subtils, trop fort pour des images déjà contrastées.
- 3
Ajoute du Smoothing si nécessaire
Un box blur 1–3 px enlève le bruit 1-pixel qui créerait sinon des tavelures dans la normal map.
- 4
Choisis OpenGL ou DirectX
Unity/Godot/Blender → OpenGL. Unreal → DirectX.
- 5
Télécharge le PNG
Le résultat est une normal map tangent-space standard, acceptée par tout slot de matériau PBR.
Questions fréquentes
Quelle est la différence entre heightmap et normal map ?
Une heightmap stocke l'altitude à chaque pixel (niveaux de gris). Une normal map stocke une direction de surface 3D (X, Y, Z) encodée en RGB. Le GPU peut calculer l'éclairage bien plus vite depuis une normal map que depuis une heightmap.
C'est la convention OpenGL ou DirectX ?
Les deux. Le sélecteur Convention inverse l'axe Y : OpenGL (Y+) par défaut, utilisé par Unity, Godot, Blender. DirectX (Y-) est utilisé par Unreal Engine. Si ton éclairage paraît inversé dans Unreal, passe en DirectX.
La couleur de la source compte-t-elle, ou seulement la luminance ?
Seulement la luminance. Nous calculons la luminance Rec. 601 (0.299·R + 0.587·G + 0.114·B) puis appliquons un gradient Sobel. Une image couleur fonctionne, mais une heightmap en niveaux de gris donne le meilleur résultat.
Comment fonctionne l'opérateur Sobel ici ?
Sobel convolue deux kernels 3×3 sur la luminance pour estimer le gradient dx/dy par pixel. Ce gradient est traité comme la pente de surface, puis le vecteur normal (−dx·s, −dy·s, 1) est construit, normalisé et encodé en RGB via (n·0.5 + 0.5)·255.
Puis-je utiliser ce résultat dans Blender / Unity / Unreal ?
Oui. Colle le PNG dans le slot Normal de ton matériau. Unity et Blender : OpenGL. Unreal : DirectX (ou activer "Flip Green Channel" à l'import).
À quoi sert le slider Smoothing ?
Les heightmaps réelles contiennent souvent du bruit 1-pixel qu'un Sobel amplifie. Un box blur léger (1–3 px) enlève ce bruit sans perdre le détail de grande échelle. Zéro convient pour des inputs procéduraux propres.