
watawatabou
5043
23
2


Step 1: Generate a map. Disable "River", "Coast" and "Farms" options for easier roofs selection. Export as PNG.

Step 2: Open the exported PNG and name the only layer as "Original".

Step 3: Select the Magic Wand tool. Check "Anti-alias" and uncheck "Contiguous". Set "Tolerance" to some reasonable value, in my case it's 8. Click any roof (orangish in my case) region to select all the roof pixels.

Step 4: Create a new empty layer and name it "Roofs". While the new layer is selected and the roofs selection is still on choose "Edit > Fill". You can fill the selected pixels with any color; I chose the original orangish color of the roofs. Deselect.

After the last two steps we have a separate layer with building shapes extracted from the original image. There are other ways to achieve it (e.g. Selection > Color Range...), use whatever is more comfortable for you.

Step 5: Add the "Bevel & Emboss" style to your "Roofs" layer (for that click a small button at the bottom of the "Layers" panel with "fx" on it and choose "Bevel & Emboss" from the menu). This style has a number of parameters of which 2 are the most important for this tutorial: set "Style" to "Inner Bevel" and "Technique" to "Chisel Hard". Set "Size" to a big enough value (it's 185 in my case), otherwise large buildings will get flat tops. For the rest of the parameters you can either keep default values or set them to whatever looks best for you. For example don't ignore highlight and shadow colors: by changing them you can achieve interesting lighting effects.

You can notice weird artifacts on our beveled roofs, lighter and darker lines running from top to bottom. If they bother you, you can remove them by applying the "Smart Blur" filter to the "Roofs" layer ("Rasterize Layer Style" first!)

And we are done. You can either keep the "Original" layer or replace it with something else as on this image.
whitebozo
Link to the generator, for those wondering: https://watabou.itch.io/medieval-fantasy-city-generator
Promethianfire
hip and groovy