How to draw surface normals from surface normal maps?
Typically the normal vector, which has XYZ components in [−1, 1] is linearly mapped to the RGB range [0, 255]. You can retrieve the normal vector by reversing this mapping.
For completeness, the encoding is:
$$
r = \text{round}((0.5x + 0.5) \cdot 255) \\
g = \text{round}((0.5y + 0.5) \cdot 255) \\
b = \text{round}((0.5z + 0.5) \cdot 255)
$$
Decoding is:
$$
x = (r/255) \cdot 2 - 1 \\
y = (g/255) \cdot 2 - 1 \\
z = (b/255) \cdot 2 - 1
$$