   XNA Island
  Hello,I have successfully created a XNA camera engine, along with a Sky Dome with a nice sky texture and a realistic ocean. My next challenge create a sand textured island in the shape of a letter i but I am struggling to build the island as I don't have experience in that area.I was thinking about using a XNA terrain editor but if I create the terrain using the model I will struggle to import that into my code and make it appear above sea level.Andrew   
  I can think of 3 ways to do this:1) Model the terrain, which will probably take some time.2) Generate terrain from a height map3) Procedurally generate the terrain (using multiple layers of perlin noise for example)Riemers has nice XNA tutorials on height maps:http://www.riemers.net/eng/Tutorials/XNA/Csharp/series1.phphttp://www.riemers.net/eng/Tutorials/XNA/Csharp/series4.phpHe also shows how to project different textures onto the terrain iirc.   ;  Hi,For the heightmap, black is for minimum height and white for maximum height. I was wondering would would I create the shape of the heightmap and what programs allow me to create a XNA heightmap for the terrain.Thanks you.   ;  That's the beauty of heightmaps, they are just simple pictures, there are no special tools involved.You could just get one off the net to get started:http://www.google.com/images?q=heightmap&oe=utf-8&rls=org.mozilla:en-US:official&client=firefox-a&um=1&ie=UTF-8&source=og&sa=N&hl=en&tab=wiOr you could create your own, for example using the cloud filter in photoshop/gimp, or just draw one on your own in any program.Usually, with a simple height map, each pixel on your heightmap corresponds to 1 vertex point of your map (actually a few vertex points in the same location).This means that the complexity of your geometry is directly related to the resolution of your heightmap.;  Thanks you for explaining clearly on how to use them it was a very useful to me. How would I make the terrain just sit above the ocean.;  There's a few tricks to achieve this.Personally I don't bother during the geometry creation. (it's possible though)I just set black to height 0.0f and white to 1.0f.You can space every vertex apart by 1.0f, for some reason I usually do 0.1f though, but it really doesn't matter, you'll have to rescale it later on anyways.What I suggest you do is transform it at render time using a world matrix.In this case it'll be Scale * Translation (don't do it the other way around!)Usually, you want to scale the terrain up quite a bit, especially on the Y axis, to get some nice mountains.Play with the values until you're satisfied.Matrix.CreateScale(2.0f, 20.0f, 2.0f);Finally setup the translation matrix to get it to the correct position.This would move it down by 10 units for example:Matrix.CreateTranslation(0,0f, -10.0f, 0.0fPass the world matrix to your shader and you're all set :)   