I’ve always been reluctant to make a post-production tutorial for a few reasons.

First, I never felt I had the competence. My domain is CG, and retouching is a full-time job. I don’t know my way around Photoshop or Affinity nearly as well as I do around 3ds Max.

Second, it’s been a long time since I’ve done any post-production right into PS or Affinity. These days, I work with ArionFX and I would recommend all CG artists check it out. Unlike PS, it can work in 32-bit color depth, which I’ve come to consider essential, especially when doing bloom and glare effects, which require full dynamic range. And unlike PS, it was built with CG artists in mind, not photographers. It allows you to add CA–not remove it–vignetting, remove noise and add grain, generate lens effects and tonemapping, all under one roof. But ArionFX doesn’t lend itself to tutorializing. At least not the way I use it. Essentially, I just screw around with the controls until I get something I like. It’s a pretty organic, haphazard process. Also, ArionFX generates a final image, not a set of layers that you can deconstruct in an explaining way.

Which brings me to the third reason: I don’t think I ever devised a post-production “system” that could be applied to any render. I’d say about 90% of what I do varies depending on the image, the nature of the scene, and the goal I have in mind. A tutorial would only ever work for one specific image.

Having said that, the questions have kept coming, and before people start suspecting that I’m hiding a secret recipe, I thought I’d go through my workflow, even if it’s bound to disappoint: There really isn’t all that much to it.

In this post, I’ll go through the post-production .pdf files I’ve included in my latest scene. I’m doing this here on the blog because I don’t want anyone to buy the scene for the post-pro files, expecting hundreds of complex layers, and then be disappointed when they realize how simple it all is.

The goal here is to try and achieve what I would normally do with ArionFX but only using mainly native PS tools, and as few steps as possible (I’ll quickly go through the ArionFX method at the end). A note of caution: This is more a quick hack than a real PS workflow: purists and experts are certain to disagree with me here. And if you do, feel free to object in the comments. I’m bound to learn something.

Finally, one last word of caution: When turning to post-production, make sure you’re happy with your render. No post-pro, however good, will ever be good enough to rescue a bad render. If you’re not happy with your render, chances are you won’t be happy with your final image. If that’s the case, push it hard until you can’t push anymore. In my book, post-pro is just there to give a good image one last little quick. It’s not a magic wand.

Before we start, let’s first agree about what we’re trying to achieve.

This scene was inspired by the popular Scandi style of interior photography. One good example is the work of Jonas Berg, a fascinating photographer I’ve referenced here before. Below is a grab of his online gallery:

If you take the image with the guy and the tree into PS and user the color-grabber, you’ll find the blacks are almost black but not quite. The guy’s T-shirt, for instance, has RGB values of 5 in all channels. The darkest part of the planter has RGB of 4/4/4. The whitest parts of the image (the highlights on the door, the window opening or the speculars on the floor are pure 255 whites. But the walls don’t go above 237 or so.

You can see all this in the level histogram (notice the clipping in the whites and the not-quite blacks):

So what we’re aiming for, in this particular case, is a bright image, with high contrast, a slight hazy feel in the whites, and relatively low saturation. I would also assume that Jonas’s original image doesn’t have as much clipping as the little jpg on his website, so I’ll try not to clip my highlights quite as much.

This is where we start, with the raw render, and as you can see, it’s pretty dark and gloomy:

Note that the original 32-bit exr was converted into a 16-bit image, which is as high as PS will go without becoming completely useless. It’s a shame, but that’s life. I’d always rather work in 32-bit because it allows you to recover a lot of invisible information in the highlights and shadows and this is why I normally prefer ArionFX.

My first step is to add a little chromatic aberration. For this I use PTLens by Epaperpress, a cheap PS plugin designed to correct lens imperfections, such as CA, barrel and pincushion distortion, vignetting, etc. from photographs. In this case, we’ll use it to add imperfections. These are my settings:

As you can see, the effect is very subtle. Just a pixel or two. As a rule, if you can see it at 100% zoom, it’s probably too much.

Next step: A bloom effect.

When working in ArionFX on a linear 32-bit image, bloom will generally take care of itself. The color-depth in the image will tell ArionFX where the super bright bits are and it will apply bloom just to these (hand-tweaking is of course possible). Much of this information gets lost in the conversion to 16-bit, so we’ll just cut out the parts of the image where we think the light must be brightest. Here, these are two triangles of skies we can faintly make out behind the facade outside. Just lasso those and paste them into a new layer. Fill the rest with black, and apply a gaussian blue with a medium radius to the image. This will be your bloom mask.

With the blending mode set to “screen”, add a curve adjustment layer that is only applied to the bloom mask. The goal is to give the bloom more of a blue color, because it comes from the sky outside. If you’re adding bloom to incandescent lights, you’ll want to push the reds instead.

This is how things look like now, with the bloom layer set to “screen” and 83% opacity:

Next, I’ll use a level adjustment layer to lighten the mediums and slightly crush the blacks, without burning out the lighter parts of the image.

The curve adjustment on top of that is just for fine-tuning the contrast:

By now, however, our image is way too saturated. The “Hue/Saturation” layer just above takes care of this for a more subdued feel:

Et voilà. That’s really all there is to it. Now you can apply this to other images in your render folder and achieve the same feel with minimal tweaking (except the bloom layer, of course, which you need to prepare from scratch for each new image).

Now let’s see how things would look like in ArionFX. For this, I will use a 32-bit exr straight out of the VFB. This time, I will use a Corona render:

These are my settings:

The HDR upcast and HDR bloom options control the intensity of the bloom. Glare is disabled here, as are the noise and detail functions.

There is a little vignetting and the HDR color fringe option controls the CA (very subtle).

In the Tonemap section, ISO is boosted to 1000 for a lot more brightness, while Gamma is lowered to 1.4 for more contrast. Reinhard burn is set very low to prevent burnouts.

In the Grade section, I’ve lowered the saturation and made the temperature a little colder, aiming for a neutral white balance.

You can go crazy with the ton of film LUTs ArionFX comes loaded with, but in this case, I used the pretty neutral “RandomControl camera”.

This is the result:

You can always push things even a little further with the level-and-curve approach after converting this image to 16-bit. Just make sure not to burn everything out. Aim for airy, not harsh.

That’s it. Pretty basic, as you can tell, but it does the job for me. Let me know what you think.