Images & texture design · focused workspace

Heightmap to Normal Map Generator

Generate an RGB normal map from a grayscale heightmap, adjust relief strength and choose a Y-channel convention for your renderer.

Before / after previewEditable projectsLocal processing

Source → inspect → export

Preparing the worked example…

Your source & settings

Settings & options
Start with your images

Drop a still image here. PNG inputs preserve their original RGBA pixel values.

Upload still PNG, JPEG, WebP or BMP images. Source images are limited to 1,048,576 pixels and 4,096 pixels per edge. Multiple selected files must total at most 20 MiB. PNG exports retain computed RGBA values; source metadata and color profiles are not copied.

Inspect your result

PREVIEW & EXPORT

Know what changed

Central-difference normals from luminance, not a 3D scan or physically calibrated surface. Color values are treated as stored values without linear-light conversion. Check the Y convention and texture import settings in your renderer.

    Choose another output above or open Export files.

    Explore the example

    Generate an RGB normal map from a grayscale heightmap, adjust relief strength and choose a Y-channel convention for your renderer.

    What you can inspect

    • The generated image and its dimensions.

    Keep the result you need

    Use the output selector to inspect each generated file, then download it. Save a project to keep source inputs and settings together. Result files and editable projects serve different purposes.

    Processing & file support

    Upload still PNG, JPEG, WebP or BMP images. Source images are limited to 1,048,576 pixels and 4,096 pixels per edge. Multiple selected files must total at most 20 MiB. PNG exports retain computed RGBA values; source metadata and color profiles are not copied.

    Your working session

    Processing runs locally in a worker with a 30-second cancellation limit. Undo and redo keep up to 20 edits in this tab. Project files include imported assets and are limited to 40 MiB. There is no automatic saving.

    Public pages include advertising and optional analytics under our privacy policy. Review the method and any flagged output before sharing files.

    Using Heightmap to Normal Map Generator

    Generate an RGB normal map from a grayscale heightmap, adjust relief strength and choose a Y-channel convention for your renderer.

    1. Try the built-in sample, then choose your own supported files.
    2. Adjust relief strength, y / green convention, boundary sampling, output alpha. Change one setting at a time so you can understand its effect.
    3. Choose “Generate normal map”. Inspect the visual comparison before using the result.
    4. Download the selected output, inspect other files in Export files and save a project if you want to reopen the same inputs.

    Example

    Try the built-in example, inspect the generated image and compare the result after changing one option.

    Questions & answers

    What does Heightmap to Normal Map Generator do?

    Generate an RGB normal map from a grayscale heightmap, adjust relief strength and choose a Y-channel convention for your renderer.

    What are the important limitations?

    Central-difference normals from luminance, not a 3D scan or physically calibrated surface. Color values are treated as stored values without linear-light conversion. Check the Y convention and texture import settings in your renderer.

    Can I save and reopen my work?

    Yes. Save a project JSON file containing your inputs, settings and any imported assets. Projects are limited to 40 MiB. Undo/redo stores up to 20 edits in this session and is not saved in the project. There is no automatic saving.

    How do imports and output previews work?

    Upload still PNG, JPEG, WebP or BMP images. Source images are limited to 1,048,576 pixels and 4,096 pixels per edge. Multiple selected files must total at most 20 MiB. Text previews show up to 150,000 characters; downloads include the complete output. Tables show 50 rows per page; CSV files include all rows.

    Help improve this tool

    Report a problem or suggest an improvement

    Describe the issue without pasting private tool input. Feedback goes to our admin inbox.

    Find another tool · Read practical guides