How is the 'Skyward Sword' impressionist art style done?

Started by
16 comments, last by brebarth221 2 months, 3 weeks ago
impressionist art style of The Legend of Zelda: Skyward Sword

How is this texture art style actually achieved? I'm talking about the painterly, slightly watercolor-like rock and grass textures. Some refer to it as impressionist, anyway it looks great.

Did they use special brushes in f.e. gimp? Or the smudge tool? Or any other tools or other software?

I'm basically looking for any tips or tutorials to help me achieve a similar style, preferably with gimp, but open to suggestions.

Thanks for any advice.

Advertisement

It looks like low resolution hand-painted textures with a heavy dither effect applied on top (not in texture).

>heavy dither effect

Yes! It could be some kind of filter applied to, I'm thinking a high resolution hand-painted texture.

I experimented in gimp and found that the 'oilify' filter might come close to how they did it for Skyward Sword.

But, it also looks as if they retouched by hand for high detail sections after the filter. For example the relatively high detail ornament carvings in the Skyward Sword stone walls look like they might not make it through such a filter and need retouching after the filter was applied.. maybe

so the process would then be:

1 make a high-resolution naturalistic image by hand

2 use oilify filter (or some other filter)

3 retouch by hand for high detail level areas

left: original hi-res, right: oilify filter

brebarth221 said:
anyway it looks great.

But it makes some problems worse: The low poly edges conflict with the style, and texture seams become easier to spot.

So i wonder: Do you want to apply this just to the textures, or do you want to make a post process filter applied to each frame, so it looks like the Tomb Raider image and avoids the problems i've mentioned?

If it's the former, your already happy i guess. But for the latter i could try to come up with some specultaions… From Photoshp i remember there likely is some dilation going on. Likely darker colors win over brighter ones, but there is some thresholding on detected edges too i guess. Whatever, it's surely doable for realtime and would be some new look.

brebarth221 said:
left: original hi-res, right: oilify filter

The “oilify” filter looks like a median filter. Not easy to implement efficiently.

@JoeJ I was thinking of baking it to texture, preferably. I can see the seams problem, but it didn't distract me all that much while playing Skyward Sword (assuming here that they have everything pre-baked). For now I'll take the path of off-loading as much as possible to pre-runtime.

JoeJ said:

If it's the former, your already happy i guess.

well, having to re-touch by hand after filtering is not great. So if you have any ideas of how to get away from that, I'm all ears.

For comparison, here is the tomb raider image passed through a median filter code I have written, with 10px filter radius. It took 19 seconds to process this image using 1 thread, though my code is using a naive algorithm and it could be much faster.

Aressera said:

For comparison, here is the tomb raider image passed through a median filter code I have written, with 10px filter radius.

It seems to preserve edges and perhaps details a little better. Is your implementation for cpu or gpu?

brebarth221 said:
It seems to preserve edges and perhaps details a little better. Is your implementation for cpu or gpu?

It's a CPU implementation. It's slow because it sorts all 20x20 values to find the median for each pixel. There are faster ways that use histograms and spatial coherence but I haven't implemented those (mostly because they don't work well for floating point data). It would probably be possible to write a GPU implementation that uses histograms but I haven't done this so I can't say how fast it would be. Photoshop probably uses a histogram+compute shader approach if I was to guess, to make it fast.

brebarth221 said:
well, having to re-touch by hand after filtering is not great. So if you have any ideas of how to get away from that, I'm all ears.

Some example workflow i might have used when i worked as an artist…

Photoshop has a built in tool to record steps to automate them, called ‘Actions’.
For your given steps:

2 use oilify filter (or some other filter)

3 retouch by hand for high detail level areas

The process would be something like:
Do edge detection, plus eventually detect bright features which actually get lost, and use the result as a mask.
Do one ‘oilify’ pass over the image using a larger filter filter kernel.
Do a second pass using a small kernel (assuming it preserves the details).
Blend the two results using the mask.

Using actions, you could do all this just once to record the action, then you could apply the action to all images in a given folder to a batch process them all while drinking a coffee.

If Gimp lacks such automation feature, it might be worth to consider Photoshop. Idk if Adobe currently offers free trials for their software, and it surely requires some time to figure all this out, and then it takes even more time to decide if automation is worth it at all or if you end up doing a lot of manual retouche anyway.

Personally i have use the actions feature quite rarely in practice. But sometimes it was a god sent.

Maybe Photoshop also offers higher quality filters. I remember ‘water paper’ or ‘sponge’ for the filter names. I had used this a lot. But hard to say. The Gimp results really look similar and good as well.

Aressera said:
The “oilify” filter looks like a median filter. Not easy to implement efficiently.

Nah, it's not really that either. Median does not give a painterly effect. It tries to smooth out outliers while preserving edges. I have used it to make human skin smoother, eliminating wrinkles and such stuff. And ofc. to fix noise or faults in the image.

The painterly filter here creates blotches, so some segmentation. It's not smooth but actually turns smooth gradients into discontinuities.
Iirc, this was already in Photoshop when it run on 60 MHz Motorla CPUs, and it was pretty fast even back then. I remember artifacts from single pixels becoming those typical larger squares with rounded corners, but not forming proper circles. So i guess the filter is simple but involves multiple passes.
But not sure about anything. I may confuse this filter with others and remember some things wrong.
Following the first two decades of progress in Photoshop, it was interesting that those classic filters never changed. I assumed they still used the initial code and never needed to update it. So i would wonder if they have been ported to GPU, but maybe they did this more recently.

This topic is closed to new replies.

Advertisement