I'm modeling a topographic map, imported by GIS Blender.

I'd like to create edge lines, similar to topographic maps. Things I've tried and reasons I think that they haven't worked:

  • Use bevels to find the difference between normals and highlight when the difference is large: doesn't work because even a maxed out bevel radius is tiny compared to mountains.

  • Use cel shading or anime outlines: don't seem to show lines on front of objects, only towards back. Maybe I'm doing things wrong.

  • Use ambient occlusion differences: once again, distance is too large

How can I highlight my edges when my model is so big? I'd rather not reduce the size because I value the accurate measurements.

enter image description here

Also, I'm pretty sure my model is huge. But I am confused because my layers have an offset of 0.1m while my model has a height of 1600m. enter image description here


1 Answer 1


This was so much harder of a project than expected. Bottom line up front, the solution:

enter image description here

(only one solidify)

enter image description here enter image description here enter image description here

Now to explain. Firstly, the array -> array -> solidify -> boolean section. Having solidify makes boolean work better (it should be set to something greater than zero). The second array exists to clean up issues with the "fast" boolean. Sometimes it just doesn't work at very specific points, so having a second face offset by a small amount will usually lead to at least one of the boolean operations working. Setting boolean to exact will solve this issue as well, but render times are much longer.

After that, there are two steps: the first is do delete all faces except the topmost one (boolean doesn't work on planes, but we want to get back to there). The second is to extrude the plane and also draw a wireframe.

In the "Top Face Only" modifier, it is deleting all faces with a Z-normal other than 1 (upwards)

In the solidify and wireframe modifier, there are two paths. The top one outputs both the current plane and an offset of it. The offset distance is driven by (use drivers) the array offset.

On the bottom path, the first step is to delete all edges that touch two faces. The reason for this is that "jump lines" exist in faces because no face is supposed to have a hole. Once those jump lines are deleted, adding the wireframe is done with the Curve to Mesh node.

Final product: enter image description here


You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .