Stained Glass in GIMP and Inkscape

I’ve been making these fascinating stained glass window drawings in Inkscape and GIMP for a while, and I had another go at it. It’s been a while, though, and I didn’t entirely remember the process this time around — but it was fun to rediscover the process, and document it.

Hence, a tutorial.

Note that this isn’t a complete step-by-step tutorial because every drawing done using this process needs a little bit of manual futzing. I’d love to turn this into a GIMP script if the process was anything close to straightforward, but it isn’t. So toward the end, I recommend you go crazy and experiment a little bit. Run filters. Tweak sliders. Put layers on top of one another.

I’ve been writing a fantasy novella set in the Avarthrel world. The protagonist is Auria Gustawynde, youngest member of Gustawynde-Sandbrook line of wind-witches… who ends up among the Order of Dried Petals, a group of assassins. With a weird penchant for making stained-glass windows. In underground cathedrals. I believe this evokes a certain level of weirdness.

(Note: Text on the article is CC-BY 3.0. Images are CC-BY-ND 3.0. Of course, I make no legal claims whatsoever on whatever you do with the ideas presented here. =)

Starting from the basics

It all begins with a sketch, of course.

The actual drawing has to be simplified and stylised, because we add a ton of tiles and unnecessary detail later on. Here we have the long-haired witch being carried on the wind, her unsuspecting victim undoubtedly getting some daggers in their back. The background things are just symbolic doodles. The five-petaled flower with two petals falling off is highly symbolic to the Order. Two and three. Five. Top-notch secret society material, right here.

Inkscape: for your Illustrated Mangle-o-script needs

Next up, I plopped the scanned drawing to Inkscape and traced the outlines, adding a bunch of details and settling on the final layout. I also decided on the flat-shaded colours.

The font in the banner is Unifraktur Cook. (I highly recommend visiting their website. These guys display an unprecedented level of dedication to the cause of awesome frakturisation. Live by fraktur, die by fraktur. Such is the Tradition.)

On top of the outlines, I added the net of smaller lines:

The actual outlines use thicker lines and the net uses narrower lines. You may want to fiddle with the outline widths to get it just right. These were all just drawn on another layers in Inkscape using the freehand drawing tool.

Unfortunately, Inkscape could be best described as a little bit finicky when drawing with Wacom tablets (I knew this was true in Linux, but doing this drawing, I noted this also holds true for Windows). Lines start, lines end — ah, sometimes where that happens is anyone’s guess, alas and cry. For clearing up the lines, I suggest turning on snapping nodes to paths - you can just move the end points to the intersecting lines easily.

GIMP makes things awesome

That’s that for Inkscaping! For actual graphical processing, we need to import the flat-shaded and fully meshed versions to the GIMP.

The basic idea is that we need to produce several things for this picture:

Black-and-white version of the outline mesh.

Bump map.

Colours with inner glow.

Highlight map.

B&W outline

The B&W outline mesh is easy to produce. Just take the mesh version and run Threshold on it. Possibly 1px Gaussian Blur to get some smoothing.

This B&W outline is best used for ensuring that the “lead” in the window is actually black, and not cabbage-coloured or something. (…there I go again, spouting about secret societies that have nothing to do with the issue at hand.) You can slap this layer on top of things, set it to Multiply, and whoosh, black edges are black.

Bump map

Ah, secret societies! Mysteries within mysteries. Secrets within secrets. …well, the Petals are actually fairly forthcoming and cooperative among themselves, so all they get is bump maps within bump maps.

Bump map plugin has brought sheer awesomeness to the GIMP since its early incarnations. Master it. Lear it. And here, we do something that is unprecedented in its awesomeness: We put a bump map on a bump map.

(…or you can run bump map on the original layer with two separate bumpmaps, but where’s the fun in that?!)

What we need is a bumpmap that highlights the edges and gives the tiles a little bit of 3D look. The plugin for that? Wind. The problem with Wind is that it’s limited to horizontal smudging, so you may want to rotate the layer temporarily to put the recession to some other place. Here’s what it looks like when the layer was rotated 30 degrees:

Add a bit of blur, and you have an edgebump right there.

Render in some relatively turbulent Plasma, and apply that as a bump map to this bump map to make the glass surface not too smooth:

Colour map

You need to tweak the colours to suit your needs. The reason I retained the flatshaded layer without the small net lines is that the Softglow plugin really does wonders here:

You get nice edge effect on the flats this way.

Now, all you need to do is to make a copy of this layer and apply the bump map on this layer.

Highlight map and further lighting

Producing the highlight map is where the futzing gets futzy.

I took the bumped softlow layer and the edges, and made a flattened copy of the layer. I added some gradients from transparent to black. Flattened some more. Desaturated on highlights. Increased contrast to hell and back.

There are multiple techniques. What you want to end up like looks like this:

Stick that on top of the original with Lighten Only, and you have some highlights.

I also used my Bloom script to render blooms of varying intensity (30px and 5px at least) and add them to the image.

Final futzing

Then, I flattened the thing. Because the colours still ended up kind of blah, I just filtered and tweaked and further messed with the picture to end up with something that has bright, interesting colours.

I also added some blurring to the edges (a simple trick with a blurred copy of the layer and some layer masking).