Takes a 2D heightmap stored in an ndarray and generates a matching normal map.
Uses a method that is fast, but less accurate - I believe this approach works best :)
Generates a normal map.
-
heightmap
should be a 2D ndarray, where each value corresponds to the height at that point. -
options.output
is an optional 3D ndarray to output to. If not supplied, one will be created. It's essentially the same size as the heightmap but with an added dimension for X/Y/Z rotation values. So the shape of this ndarray should be equivalent to:[heightmap.shape[0], heightmap.shape[1], 3]
-
options.xzscale
The scale of the horizontal planes. Defaults to 1. -
options.yscale
The scale of the vertical plane. Defaults to 1. -
options.wrap
a boolean for whether the heightmap is tiling and the normal map should wrap around the edges. Defaults to true.