Normalmap aus einer Höhenkarte

Erzeugt eine Normalmap mit einem eigenen 3×3-Sobel-Operator über einer Höhenkarte: zwei Kerne liefern die Neigungen Gx und Gy, daraus entsteht ein Normalenvektor, der normalisiert und als (n·0.5+0.5)·255 in RGB kodiert wird. Ränder lassen sich beschneiden oder umbrechen. Rastergröße, mittlere und maximale Neigung, Anzahl flacher Pixel, der Mittelpunktpixel, das Histogramm des Blaukanals und die ersten Kartenzeilen werden angezeigt, die Karte selbst kommt als PPM P3.

Builds a normal map with an own 3×3 Sobel operator over a height map: two kernels give the Gx and Gy slopes, a normal vector is formed from them, normalised and encoded into RGB as (n·0.5+0.5)·255. Edges can be clamped or wrapped. The grid size, average and maximum slope, flat pixel count, the centre pixel, the blue-channel histogram and the first map rows are shown, and the map itself is returned as PPM P3.