Normal Map Generator
Generate professional normal maps from height maps or textures using client-side GPU processing. Features real-time 3D preview, batch processing, and DirectX/OpenGL standards.
About
High-fidelity texturing in modern rendering pipelines relies heavily on normal mapping to simulate surface detail without increasing polygon count. This tool employs the Sobel operator algorithm to calculate surface gradients from grayscale luminosity data. By deriving the partial derivatives of the image intensity with respect to horizontal and vertical axes, we construct a vector field representing surface orientation at every pixel.
Accuracy is paramount when integrating assets into engines like Unreal Engine or Unity. An incorrect normal orientation (specifically the Green channel) results in inverted lighting behavior where bumps appear as dents. This generator provides granular control over channel inversion and intensity scaling. It processes data locally on your device to ensure zero latency and maximum privacy for proprietary assets.
Formulas
The core algorithm calculates the normal vector n for each pixel based on the intensity I of its neighbors. Using a central difference approximation or Sobel kernel, we determine the gradients along the x and y axes.
The unnormalized normal vector v is constructed with a tunable strength parameter s.
Finally, we normalize the vector to obtain the unit normal n and map it to RGB color space.
Reference Data
| Target Engine / Software | Green Channel (Y-Axis) | Coordinate System | Standard Format | Typical Gamma |
|---|---|---|---|---|
| Unreal Engine | FALSE (Inverted / Y-) | Left-Handed | DirectX | Linear (1.0) |
| Unity 3D | TRUE (Standard / Y+) | Left-Handed | OpenGL | Linear (1.0) |
| Blender | TRUE (Standard / Y+) | Right-Handed | OpenGL | Non-Color |
| Godot Engine | TRUE (Standard / Y+) | Right-Handed | OpenGL | Linear |
| CryEngine | FALSE (Inverted / Y-) | Right-Handed | DirectX | Linear |
| Maya | TRUE (Standard / Y+) | Right-Handed | OpenGL | Linear |
| 3ds Max | FALSE (Inverted / Y-) | Right-Handed | DirectX | Linear |
| Source 2 | TRUE (Standard / Y+) | Right-Handed | OpenGL | Linear |
| Substance Painter | Configurable | Both | Both | Linear |