Here's a shot of a terrain mesh with normals obtained via analytical derivatives. It uses rotated 3D Value noise. Analytical derivatives for Perlin noise is the next step.