• Sun. Feb 9th, 2025

How is the ‘Skyward Sword’ impressionist art style done? – 2D and 3D Art

How is the ‘Skyward Sword’ impressionist art style done? – 2D and 3D Art

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 20×20 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.

link

By admin

Leave a Reply

Your email address will not be published. Required fields are marked *