TerrainData is a highly guarded secret by Unity! All my findings are based on trial and error rather than actual knowledge, but I shall try to answer. I can only guess that the heightmaps are 2^n+1 for using the heightmap vertices as UV coordinates for the splatmap data. Like the picture in my answer, one quad would need 4 vertices for generating the triangles and assigning UVs.
Tile’s Bluetooth trackers can help you find your things fast. Offering the versatile Mate, the wallet-ready Slim, and the stylish and powerful Pro Series, there's a Tile for everyone. Return to reTile. Thanks for being a loyal Tile customer! Click here to return to reTile.
Cgtalk Tile-able Noise Generator For Mac Pro
The noticeable 'seams' are probably the calculations for the normal of each vertex in the terrain. At the edges, the terrain cannot get all of the adjacent vertices (because they don't exist from the perspective of each terrain object), therefore they are calculated as flat rather than in relation to where the adjacent vertices of the next terrain piece are. Regarding your image, this looks like mirroring of the perlin noise. All I can assume is you are assigning your terrain chunks between a negative value and a positive value.
Perlin Noise doesn't continue into the negative axis, rather the results are a mirror of the positive axis, eg: // both of these will return the same value Mathf.PerlinNoise ( 1, 1 ); Mathf.PerlinNoise ( -1, 1 ); // both of thee will return the same value Mathf.PerlinNoise ( 2, 1 ); Mathf.PerlinNoise ( -2, 1 ); // etc etc the only way to compensate for this would be to start your chunks at (0,0), and increment positively. Or add an offset in your PerlinNoise function with a magnitude greater than half of your world size so that all perlin noise values returned are in the values of positive perlin axis.