Heightmap viewer and converter: check a 16-bit heightmap for Unreal
Drop a heightmap (16-bit PNG, R16, RAW or 8-bit PNG) to see it in 3D with its resolution, bit depth, lowest and highest value and how much of the 16-bit range it uses. The viewer says whether the size is a valid Unreal Landscape size, converts to 16-bit PNG or R16, resamples to the nearest valid size if you ask, and gives the Z scale for your height. Free, no account needed.
Your heightmap stays on your device: this browser tab reads and converts it, and nothing is uploaded.
Need the terrain itself? WorldWeaver builds a sculptable Landscape pack (PNG16 heightmaps with exact import values)
Describe the terrain in a short brief and WorldWeaver generates it. The Unreal World Pack holds a 16-bit PNG heightmap at a valid Landscape size and a README with the section setup and the X, Y and Z scale for that world, so the import needs no math. A world costs 6 credits, and a new account starts with 50 free credits.
What it checks
- Bit depth: the file's own, and whether the data really has more than 256 height levels. A 16-bit file made from an 8-bit image keeps the terraces.
- Range: the lowest and highest value, and the share of the 0 to 65,535 range between them. A narrow range wastes precision; the export can stretch it to the full range and the Z scale follows.
- Size: whether width x height is a valid Unreal Landscape size, with the section setup, and the nearest valid sizes. Epic's recommended sizes are 127 x 127, 253 x 253, 505 x 505, 1009 x 1009, 2017 x 2017, 4033 x 4033 and 8129 x 8129.
- Z scale: for the real height of your terrain, Z = metres x 100 / 512 over the range the file uses, and the Location Z that puts the lowest point at 0.
Unreal's Landscape import reads 16-bit grayscale PNG, 8-bit r8 and 16-bit r16, and RAW with a JSON file that gives its size (Epic's Landscape Technical Guide). For the import panel itself, see Epic's heightmap import page.
Questions
Is my heightmap uploaded?
No. This page reads the file in your browser tab, and the converted file is made there too. Nothing is sent or stored, and no account is needed. If you accepted analytics, the page counts the format, the pixel size and whether the size is valid, never the file name or the heights.
How do I convert a PNG heightmap to R16?
Drop the PNG here and choose Download R16. R16 is the same 16-bit heights with no header, two bytes per sample, low byte first, the way Unreal and World Machine write it. Unreal assumes an .r16 file is square, so resample a rectangular map or use the 16-bit PNG.
Is my heightmap really 16-bit?
The viewer counts the distinct height values. A real 16-bit terrain has thousands; one with 256 or fewer is 8-bit data in a 16-bit file, and Unreal will show steps on slopes whatever the file type says. Export the heightmap again at 16 bits from the tool that made it.
Which files can it open?
PNG in 16-bit or 8-bit grayscale (colour PNGs are read from the red channel), R16, and RAW in 8 or 16 bits with a size you enter, up to 8192 pixels a side and 200 MB. A square RAW or R16 is sized from its byte count.
What Z scale should I use in Unreal?
At Z scale 100 the full 16-bit range spans 512 m. Enter the real height between your lowest and highest point and the viewer works out the Z scale for this file, counting the share of the range it uses. The Landscape size calculator does the same from a world size.
What does the resample do?
It reads the heights between samples with bilinear filtering, keeping the four corners where they are, so the terrain keeps its extent and only gains or loses a few rows. Nothing new is invented: a resample cannot add detail the map never had.