heightmap questions

As I understand it, the heightmap is stored in TerrainData and a 2D float array. The values of the array range from 0.0-1.0. The terrain width and terrain length fields in the inspector reflect the dimensions of the heightmap. It appears that Unity uses the terrain height field to scale the heightmap data to world coordinates.

Question 1: is my understanding accurate?

Question(s) 2: what exactly is the heightmap resolution? why must it be n**2+1 in size? Why does 33 seem to be the smallest I can make this?

Question 3: height maps seem to usually be 513x513. Is it dangerous to change these dimensions? Must they be rectangular? What constraints affect these dimensions?

Question 4: Can anyone outline the process the process of rendering the terrain? Does Unity use the heightmap to create a mesh, etc.?

Heightmaps must be power of 2 plus 1 because the heights are the vertices of the resulting meshes. They must be square. The size can be whatever you want as long as it conforms to those requirements, and is not too large (or too small apparently, but 33x33 is very small). Unity uses the heightmap to create meshes depending on distance, amount of variation in an area, etc.

–Eric