Making-of the Brushes

Render that pretends to be a photo

Gleb Alexandrov here and it’s time for another Making-of. Today we’re going to talk about “The Brushes” – still life render which pretends to be a photo.

Brushes

 Featured in official Cycles Demoreel 2014

Excellence award on 3dTotal

Render of the Week on Blendernews

Featured at Blenderartists Forum Gallery

This time, the idea wasn’t preceded by a concept painting. It came purely from aesthetic experience.

There is a jar with brushes on my table. It’s so routine and usual that it’s almost invisible. But once I noticed something unusual about it. At this time of the year, about 11 o’clock in the morning sun peaks through my window. One day brushes were lit so brightly and looked so joyful that in that instant rather dirty jar became something worth rendering.

Show wireframe
brushes_wire_01

1 Blocking out the scene

In terms of modeling the scene is quite simple, nothing to brag about. I’ve started with blocking out the basic shapes – this is very important stage of the production. Better get it right now, while the scene is light and easy to manage.

brushes_model_01

Wooden handles of the brushes are basically the same. Though, made ​​a few unique ferrules.

brushes_banka_01

The jar is a curve with a screw modifier and also solidify modifier.

Screw modifier makes wonders, really worth learning.

Watch tutorial

2 Basic materials

During the the block-out phase simple materials were used. Typically, they consisted of just 1 seamless texture and were quite primitive in terms of shader complexity: just the mix between diffuse and glossy.

So, 1 mix shader and 1 texture is enough to represent the main qualities of wood (steel, glass)

material_swatches_01_1

3 Procedural UV coordinates

Along with uv- coordinates for texture mapping we can use Generated or Object coordinates. Thus, we can leave UV-mapping untouched and still be able to control the texture using Mapping node

brush_hdri_mapping_01

To project texture evenly and from several directions at once, use so-called Box mapping. With the help of the Blend parameter textures seams can be hidden.

material_swatches_01_2

Seamless textures + Generated coordinates = Fast texturing

4 Material layers

Go ahead and add the layers to the basic materials. To achieve the compelling look, I’d suggest to add at least 3 supplementary shaders in every material: dirt, paint, scratches.

Use black and white mask as a mix factor.

brushes_shader_01

Decals

For the decals (marks, signs) let’s use additional uv-map. With the help of the Attributes node pick appropriate uv-map, using vector output.

brushes_uv_channel_02

5 Painted glass material

It’s pretty complex material, so let’s decompose it.

1 Two basic materials – glass and paint

banka_02

2  Both of these materials have several composite materials

3  The glass material consists of a glass and dust, dirt, fingerprints

4 The paint material consists of a translucent, diffuse, reflective, emissive shaders. Consequently, it uses diffuse, bump, translucency texture, etc.

banka_textures_01_1

5 Transparency texture in the paint material determines what areas are translucent (covered with a thin layer of the paint), and what areas are opaque.

banka_03

6 Displacement map is also used as the normal map

banka_material_01_1

Glass shader

Recommend trying out Cycles Dispersion Glass shader by Harri Collis.

Download from Blendswap

6 Lighting

The key light source is nothing more than a sun lamp with a soft shadows (sample size 12 cm).

To achieve a rim light effect, I created a plane and placed it at the window. Brush tops were lit separately with a spot light.

brush_lighting_01

Spherical HDRi image softly illuminates the scene from all angles and creates virtually no shadows – it’s good for us in this case. What is very important about HDRi, that the reflective parts of the brushes and also the jar begin reflecting the bright areas of the HDRi. These reflections accentuate objects volume and make a metal act like a “metal”, if you know what I mean.

brush_hdri_01_denoised

RotateHDRi using mapping node, searching for the most effective angle.

brush_hdri_mapping_01

Decals

While Cycles is already a fantastic renderer, it still doesn’t have something similar to Directional Light yet (sun and spot lamps are similar in function but also not quite the same). So for now we had to add spot lights or invent obstacles between the object and the sun to restrict its area of ​​influence.

7 Hair simulation

Let’s briefly explore the process of creating the hair.

  • 1. Create a plane.  It will serve as an emitter for the hair.
  • 2. Create a particle system.
  • 3. Hair length and density. The optimal value is almost impossible to guess, we should prepare ourselves for the inevitable return to this stage.
  • 4. Adaptive rendering – hair geometry adapts to the resolution and depends on the minimal bending of the original geometry. These values ​​influence the polygon count during the rendering. It‘s important to remember this to squeeze the scene in memory limit for a fast GPU-rendering.
  • 5. Cycles Hair Rendering. Ribbons
  • 6. Set Children to Interpolated. Display – 2-5, Render – 2-5. Final values depend on desired hair density and computer characteristics. While children are activated, every parent hair is spawning several child hairs.
  • 7. Set Kink to Curl mode.

Show screenshot
brushes_hair_settings_01

7 Hair styling

Now we’re switching viewport to Particle Edit mode and trying ourselves as a stylists, cutting and combing hair.

brushes_banner_with_ao_01

8 Hair material

There is now a special shader for hair — in Blender 2.69. My impression is that it’s somewhat slow to render – but anyway, it looks great. Who cares.

hair_layer_01

The node called Hair Info in material editor is essential when texturing hair.

Using Intercept attribute and Color Ramp (gradient), we can control the gradient of the hair color – from the roots to the tips. Note that the gradient may haveseveral “stops”.

brushes_hair_intercept_01

Combining this information with the capabilities of uv-coordinates, we can confidently dye our hair – using length (Intercept) and location relative to the particle emitter (UV).

brush_hair_material_01

9 Render!

We want photo-real render, don’t we? Leave the caustic enabled and the maximum number of bounces untouched.

Path tracing

When trying to render this scene out, used classical path tracing, and not the branched version, as it was more conventional for me.

Perhaps now would have done otherwise, since branched path tracing coupled with manual tweaking of the light source samples solves the problem of noise in shadows. Spot lamps and perhaps any lamps generate much noise if there is a lot of obstacles between them and the camera.

Show screenshot
brushes_render_settings_01

10 What could be done better?

Render was infernally slow: on my computer (i7 3690, 16gb ram, nvidia 650m) it was rendering about two days in the resolution of 1100-2200 (12,000 samples).

Reasons:

  • too complex and sometimes bad-planned materials
  • the bounces number was too high (2 for diffuse and glossy should be enough in many cases)
  •  high hair density and high number of curve segments in hair render
  • classic path tracing in interior scene with lots of light and reflections and with lots of objects between the sun and the camera
Also, I challenged myself to minimize the amount of post-production this time.[wc_spacing size=”20px”]

Though, there was a lucky coincidence — guys from Renegatt (GPUBOX software) helped me out to do a few test renderand a final render. Thanks a lot!

11 Composing and post-processing

Blender compositor is actually fine. While it has some flaws (rendering speed?), it does its job.

At the beginning of the article, we could see how the processing sequence can be done.

Show screenshot

brushes_compose_01_1

brushes_raw_and_processed_01

Last stage is cosmetic treatment. Brightness tweaks, lightening / darkening – basically, what we want here is to enhance the colors and get that extra ‘oomph’.

Thanks for reading! Feel free to ask questions, comment, share and subscribe.

You may also like:

Making of Zeppelins

 

  • If there was only one site to follow it would be yours. Very inspirational

  • Pacificway – you made my day! I’ll continue to develop this site further, along with youtube channel. Hope, that you’ll like, how it comes out.

  • That was pretty detailed, thanks for sharing Gleb!

  • Thanks for the comment!

  • Brilliant render and a nice making-of! Thanks for this.

  • You’re welcome, Ben. Read your article about HDRi lighting setup and downloaded the scene – nodes are looking useful. Cheers!

  • nastys

    You could use Multiple Importance Sample and other tricks to reduce noise and render with 5000 samples or less.

    • Nastys, you’re right, it can (and should!) be optimized in a few ways. Importance sample is one. Another is Branched Path tracing, which probably could lower direct light noise.

  • Подскажи где в нодах Chromatic aberration?
    А то непонятно)

  • Thanks for tutorial!

  • Eli Spizzichino

    The screenshots of the node setup are very low res can’t really read much. Can you re upload or provide a blend?

  • Thx for tutorial.
    Is there any chance to get the material setting of the papers you used please ?

  • Thx for the tutorial.
    Is there any chance to get the material setting of the papers you used please ?

  • Romi Lizada

    Hi Gleb you’re a monster in Blender I’m your new fan here in the Philippines I’m learning from your tutorials. YOU’RE GREAT 🙂

  • Romi Lizada

    Hi Gleb you’re a monster in Blender I’m your new fan here in the Philippines I’m learning from your tutorials. YOU’RE GREAT 🙂