Heightmaps-ஐ tangent-space normal maps-ஆக மாற்றுங்கள்
எந்த heightmap அல்லது grayscale படத்தையும் உங்கள் browser-லேயே tangent-space normal map-ஆக மாற்றுங்கள். சரிசெய்யக்கூடிய strength, smoothing மற்றும் OpenGL/DirectX Y-axis conventions-உடன் luminance channel-ல் Sobel gradient operator பயன்படுத்துகிறது. game engines, shader வேலை மற்றும் procedural material design-க்கு aukimi Matter module-உடன் இயல்பாக இணைந்து செயல்படுகிறது. aukimi Matter-இன் ஒரு பகுதி.
இந்த கருவியை பகிரவும்
மற்றவர்கள் கண்டுபிடிக்க உதவுங்கள்
நீர்முத்திரைகளை அகற்ற இலவச கணக்கை உருவாக்கவும்
உங்கள் பணியை சேமியுங்கள், முழு படைப்பு தொகுப்பை அணுகுங்கள் மற்றும் நீர்க்குறி இல்லாமல் ஏற்றுமதி செய்யுங்கள்.
அதிக ஆற்றல் வேண்டுமா?
நிகழ்நேர 3D மதிப்பாய்வுடன் PBR மெட்டீரியல்களை உருவாக்க நோட்-அடிப்படை நடைமுறை அமைப்பு திருத்தி.
Turn a grayscale heightmap into a tangent-space normal map using Sobel gradient detection, entirely in your browser.
Drag a PNG/JPG onto the workspace. The image is auto-downscaled to 1024 px max edge for real-time preview.
Higher Strength deepens the surface slope — good for subtle inputs, too high for already-contrasty ones.
A 1–3 px box blur removes single-pixel noise that would otherwise create speckles in the normal map.
Unity/Godot/Blender → OpenGL. Unreal → DirectX.
The output is a standard tangent-space normal map that any PBR material slot accepts.
A heightmap stores elevation at each pixel (single-channel grayscale). A normal map stores a 3D surface direction (X, Y, Z) encoded in the RGB channels. GPUs can compute lighting far more cheaply from a normal map than by re-integrating a heightmap every frame.
Both. The Convention selector switches the Y axis: OpenGL (Y+) is the default, used by Unity, Godot, Blender Cycles/Eevee. DirectX (Y-) is used by Unreal Engine and older Direct3D titles. If your lighting looks inverted in Unreal, flip to DirectX.
Only luminance. We compute Rec. 601 luminance (0.299·R + 0.587·G + 0.114·B) then run a Sobel gradient on that single channel. Feeding a color image works, but grayscale heightmaps give the cleanest result.
Sobel convolves two 3×3 kernels over the luminance to estimate the gradient dx/dy at each pixel. We treat that gradient as the surface slope, build the normal vector (−dx·s, −dy·s, 1), normalize, and pack into RGB as (n·0.5 + 0.5)·255. Strength scales the gradient before normalization.
Yes. Drop the PNG into your material's Normal slot. In Unity and Blender keep OpenGL; in Unreal switch to DirectX (or flip Y with the "Flip Green Channel" import option).
Real heightmaps often have 1-pixel noise that becomes amplified by Sobel. A mild box blur (1–3 px) removes that noise without losing large-scale detail. Zero is fine for clean procedural inputs.