Making heightmaps with World Machine
Posted: 28 Feb 2009, 10:33
i like to start my maps off with an ancient art called "drawing"
after manipulating in paint shop pro i have my template on which to paint heightmap layers
i've used 5 inputs for Tundra, the map from which this faq is centered around. here's my worldmachine view, which you can follow along with:
looks complicated, but its not. starting with 1, i input my base heightmap file. here it is:
take notice that my river and mountains are not part of this heightmap. anyway, all i do is apply a mild gaussian blur (2), before combining. now i'll jump to input 2.
here's input 2:
mountains. i immediately run four sequential gaussian blurs of high power, then use a very strong erosion filter. this erosion is so strong it would completely rape any meticulous heightmap detail.
notice that this heightmap is asymmetric - it only has half of the hills of the map. well, the next triangle you see there on the roadmap is a little trick of mine i use to create symmetry. i duplicate the heightmap with a splitter, apply an X + Y flip to one of the copies, then recombine using the ADD method. i do this a few times.
now we are back and ready to combine with 1, the base heightmap. the combiner used here is called MAX, and it takes the highest value for every pixel from either heightmap it is combining. on a usefulness scale of 1 to 100, thats pretty motherfuckin useful.
the next step is another combine, so we will jump to input 3. here it is:
as i was testing the heightmap in-game, i noticed i could build LLT-sized structures on the tops of my mountains. i didn't want this, so i went back and created this heightmap, which is simply running down the spines of my mountains.
after a gaussian blur, mild erosion, and the flip X + Y trick, these little mountain caps are ready to prevent porc. i use the ADD combiner to add to the chain. on this ADD, i don't use full power, i scaled to ~30% so they were sharp enough to disallow building, but not too steep for kbots to climb.
NOW i finally run the big erosion on my map. this erosion was the first component i ever made in the chain. the settings are pretty mild to preserve my detail work, but it really smooths out all the different added components and makes them mesh.
now we are ready for the river, input 4.
here's input 4:
rivers and lakes tend to fill up with worldmachine's various erosion parameters, so i like to separate them as well. here i've drawn the river inverted, as if it was a ridge. i blur it, give it mild erosion, then SUBTRACT it from my main heightmap.
the next step is a splitter, which is just to obtain a mask. masks are useful as fuck. i use "select height" on my split in order to select underwater and beach-level heights. now its an alpha layer which i use as an input to the mask layer of a powerful gaussian blur. this simulates underwater erosion.
input 5 is different from my other inputs, as it is used simply to be converted in to a mask. here it is:
i run a gaussian blur on it, use the X + Y flip trick, then use select height, this time starting at height 255 with full fuzziness. now its a mask which i use for another powerful gaussian blur to smooth out ramps.
we are almost to the end!! the heightmap is basically done. this last flip trick i've done just for shits and giggles is different in one slight way from the rest - the recombination uses AVERAGE. this makes the heightmap perfectly symmetrical.
go make maps~!!!!!!!!!!!
after manipulating in paint shop pro i have my template on which to paint heightmap layers
i've used 5 inputs for Tundra, the map from which this faq is centered around. here's my worldmachine view, which you can follow along with:
looks complicated, but its not. starting with 1, i input my base heightmap file. here it is:
take notice that my river and mountains are not part of this heightmap. anyway, all i do is apply a mild gaussian blur (2), before combining. now i'll jump to input 2.
here's input 2:
mountains. i immediately run four sequential gaussian blurs of high power, then use a very strong erosion filter. this erosion is so strong it would completely rape any meticulous heightmap detail.
notice that this heightmap is asymmetric - it only has half of the hills of the map. well, the next triangle you see there on the roadmap is a little trick of mine i use to create symmetry. i duplicate the heightmap with a splitter, apply an X + Y flip to one of the copies, then recombine using the ADD method. i do this a few times.
now we are back and ready to combine with 1, the base heightmap. the combiner used here is called MAX, and it takes the highest value for every pixel from either heightmap it is combining. on a usefulness scale of 1 to 100, thats pretty motherfuckin useful.
the next step is another combine, so we will jump to input 3. here it is:
as i was testing the heightmap in-game, i noticed i could build LLT-sized structures on the tops of my mountains. i didn't want this, so i went back and created this heightmap, which is simply running down the spines of my mountains.
after a gaussian blur, mild erosion, and the flip X + Y trick, these little mountain caps are ready to prevent porc. i use the ADD combiner to add to the chain. on this ADD, i don't use full power, i scaled to ~30% so they were sharp enough to disallow building, but not too steep for kbots to climb.
NOW i finally run the big erosion on my map. this erosion was the first component i ever made in the chain. the settings are pretty mild to preserve my detail work, but it really smooths out all the different added components and makes them mesh.
now we are ready for the river, input 4.
here's input 4:
rivers and lakes tend to fill up with worldmachine's various erosion parameters, so i like to separate them as well. here i've drawn the river inverted, as if it was a ridge. i blur it, give it mild erosion, then SUBTRACT it from my main heightmap.
the next step is a splitter, which is just to obtain a mask. masks are useful as fuck. i use "select height" on my split in order to select underwater and beach-level heights. now its an alpha layer which i use as an input to the mask layer of a powerful gaussian blur. this simulates underwater erosion.
input 5 is different from my other inputs, as it is used simply to be converted in to a mask. here it is:
i run a gaussian blur on it, use the X + Y flip trick, then use select height, this time starting at height 255 with full fuzziness. now its a mask which i use for another powerful gaussian blur to smooth out ramps.
we are almost to the end!! the heightmap is basically done. this last flip trick i've done just for shits and giggles is different in one slight way from the rest - the recombination uses AVERAGE. this makes the heightmap perfectly symmetrical.
go make maps~!!!!!!!!!!!