Rocks Path Breakdown

Making Of / 15 January 2020

In this post, I will share my workflow to create the following render:

Step 1

I started with a small terrain procedurally generated in World Machine. I used the default nodes, but I tweaked some parameters and changed some curves until I get the desired heightmap.
After a good result, I created a grid in Blender and used that heightmap in the displace modifier. Then I converted to a mesh and made small changes over the surface. It's nice to add a subdivision surface to smooth everything to allow you to read every curve and see if it's smooth and gentle, like in nature.

Step 2

I duplicated the terrain and positioned along the Y-axis to get more variation and more depth. It's the same mesh, but in another angle.

Step 3

Lighting! I didn't want to create a super bright environment, with a clear sky and a strong sun, so I tested a lot of HDRI files and I found a nice one at It was a little bright, but I changed the exposure and changed the angle to fit in my camera. Here is how it looks like:

Step 4

My gray ground deserved a texture, so I searched online and tested some textures, applied some materials, and tweaked colors. This is my base texture:

Step 5

I started adding details: from large rocks to really small ones, trying to find a good balance. I also added the background forest, it's that plane over there.

Step 6

Since I added a forest, I thought that should be nice to scatter small details over the surface. For example dry leaves and small twigs that could be carried by the wind. To do that, I duplicated some polygons over the terrain and assigned a different material to it. I got some textures with alpha channel on MegaScans. I tweaked my UV and created the material. Here you can see a preview in Eevee:

Step 7

Now I rendered the preview image using the same setting for the final image, but a smaller image to render fast. With that preview render, I've found some areas that could have more detail and fixed it.

Step 8

After I detailed work in Step 7, I rendered the final image with the original size and a decent number of samples.

Step 9

I imported the in Darktable to do the final adjustments. I could have done it in Blender Compositor, but Darktable is easier to use - actually, I wanted to see how the last version looks like. It's a free and open-source project, check it out!

  I added a subtle vignetting, a grain effect, and corrected the colors, I wanted to give the feeling of a cold area, but the colors were warmer. After that, I saved the final image, which is the first image in this post.

What is Bloom and How it Works

General / 10 January 2020

Bloom is a very common effect widely used in movies and games (sometimes overused) and can produce either realistic or stylized results. Most of the realtime render engines offer an option to simulate bloom in post-processing.

In this post, we're going to investigate how exactly this effect occurs in real life and how we implement that in our digital images.

First of all, bloom is a lens effect. It's present in our real world! When our cameras are pointed to a very bright spot, the light bleeds around the light source. This effectively gives the viewer the illusion these bright regions are intensely bright. You can see that in practice just by getting your smartphone camera and pointing to a bright light source like a TV, a screen monitor, etc.  The effect can be emphasized by tweaking bright/contrast in your camera. The more sensitive to light the camera is, the higher is the effect.

Ok, but how the render engines reproduce that effect? Simply by getting the brighter pixels of an image and drawing a glow around it.

Let's take this image for example:

Where are the brighter pixels? Fortunately, the software has some algorithms for it. In Blender, you can set the mix parameter to 1 inside the Glare node to show which pixels were selected. The threshold parameter will control the amount of blow will be applied, for example:  

0 = The entire image
1 = Nothing
0.90 = just some bright pixels 

This configuration generates the following image:

A mix = 1 means basically no mix, only the bloom effect is being shown. This has been just for demonstration purposes. Let's set back to 0 and see the final result:


How to Create a SciFi Abstract Background

Tutorial / 11 August 2019

In this post I will show you how to create the image below using Blender:


0. First, I recommend to split your viewport in two to tweak the materials and preview the result at the same time, like so:

1. Now change the shading mode to Rendered (Press Z to open the pie menu and select Rendered);

2. Add a new material to your mesh. I used the default cube in this example;

3. Our main shader is an emission node, so add one into material output. You can tweak the Strength value later;

4. To create the grayscale pattern, we need to combine two grayscale textures: a Musgrave and a Voronoi node. To do this, plug the musgrave color output into Voronoi vector input and adjust the scale until you find a good result.

5. Add a Color Ramp node to control the number of rings in the texture. We're basically removing the gap between black ( = 0) and white (= 1).

6. Now change the default color to something you like. You can also add more than two colors:

7. Plug this color ramp to the emission node and that's it!


To create an interesting image, enable the bloom effect and play with the values. This is my setup: 

Change the world background color to pure black to enhance your bloom effect: 
If you're using a cube, you can move your camera inside the cube. Change the focal length to create a distortion effect:


Procedural Asphalt Texture Breakdown

Making Of / 16 July 2019

In this post, I will show how I made this asphalt texture using Substance Designer. 

I used Substance Designer 2019 to create this texture. You can also use preview versions, but some nodes might not exist.

Step 1: Grayscale

The first step is to create a grayscale image. This image is the base for creating other textures maps such as normal, diffuse, roughness, height, AO, etc.

Therefore, it's important to create some level of detail since all the effort invested in this part will also contribute to the creation of the next textures.

I like to mix different types of noise maps, so I can create a good variation and make things more realistic.

These are all the nodes used:

The objective is to combine everything. The result of a blend is mixed again with another blend. I do it until the variation looks good enough for me.

I like to think about iterations. For this texture, I iterate 3 times.

After the 3rd iteration, I got a good variety of large and small details. It's time to go to the next step: the cracks.

Stop 2: Cracks

The plan is to add two types of cracks: large/deep cracks and small/thinner cracks. The amount of cracks will be exposed so the user could tweak the texture and create variation.

The most simple way to create cracks is by using the Environment Toolkit, available for free on Substance Source.  It can be used to create wood patterns, cracks, small rocks, etc.

When dealing with cracks, you can control the size, amount, disorder, and rotation. I used this setup:

Distance is the exposed parameter.

Step 3: Small Details

Still using the Environment Toolkit, I created a small rock to splatter the texture.

I used the Splatter node to splat the rocks. Splatter is similar to Tile Sampler node, but it's easier to use, in my opinion.

After splatting I blend the output with a Clouds 1 node to give color variation.

Final Step

Now it's time to blend all the grayscales maps and use that to create to the others. Here is my final grayscale:

The next map is the base color. It's pretty simple since the grayscale map already has a good variation.

I plugged an HSL node to allow the user to tweak the colors and create variations. This is the final base color:

I used a Levels node to output a nice grayscale to create the roughness map and an Ambient Occlusion node to create the AO.

I also created a package that contains 3 4K texture presets and .sbs and .sbar files to use in engines like Unity and Unreal.

It's just $4.99 and you can buy on my ArtStation store.

What's new in Blender 2.80?

News / 11 July 2019

The 2.80 release came with a lot of upgrades in terms of UI, performance, compatibility, some new features, and the removal of the old ones. Some people think this release should be 3.0 (I agree), but it’s just a number, it doesn’t change so much in the end.

In this post, I’ll list some of the biggest changes in Blender 2.80. Of course, I will miss some features and you can help me writing in the comments what deserves a highlight.

EEVEE (Real-time Renderer)

EEVEE is the new real-time render engine created to replace the old Blender Internal engine.

Rendered using a GTX 1060

You can create really beautiful scenes and navigate through it in real-time. EEVEE uses the same nodes as Cycles and you can easily switch between engines as you like. Lighting configuration will also be maintained.

Right now, not all nodes are working in EEVEE, but most of them can be used in both EEVEE and Cycles. In future releases, this will certainly change.

New UI, New Theme

Blender 2.80 default theme

Do you remember when the beginners used to say: "Blender is so hard to learn, it's not intuitive and you can't use it without knowing the shortcuts."? This new UI was designed to give a better experience to the user, especially beginners since you can do a lot more just by using the buttons, which also teaches you the shortcuts and possible combinations. 

And if you like dark themes, now you have one more reason to use Blender 2.80. This new theme was created by Pablo Vasquez, the same creator of the Flatty Light theme. Combined with the new UI, it gives a new fresh look.

At the bottom of the window, you'll see every possible combination for the shortcut you're using.

Some buttons were reorganized and are now easier to find them in 2.80:

Blender 2.7X

Blender 2.80

Random Colors

Blender can now display every object in the scene with a random color. This is perfect for visualize and identify your objects in your scene.

You can also combine it with flat lighting.

Colored Wireframes

The same random colors can also be applied in wireframes to better visualization. I'm sure CAD users will love it.


Cryptomatte is a huge feature that allows to quick mask objects in the scene based on object limits or materials. 

This feature eliminates the pain to create masks to use in compositing since all you need to do is enable the feature in the view layer/passes settings.

For now, it only works in Cycles. Eevee enthusiasts need to wait a little more.

BGE Was Removed (Blender Game Engine)

Imagine all the effort needed to make BGE strong enough to compete with Unreal, Unity, Cry Engine, etc. This effort could be better applied in the development of the core of Blender which is 3D modeling and animation. I'm sure that's what Blender developers took into consideration before this decision.

I will not miss BGE, but if you will, there are pretty good open source alternatives nowadays. Checkout Armory 3D or Godot.

Multi-Object Editing

Another great improvement in Blender is the ability to edit multiple objects. I'm using it a lot to create a texture atlas without plugins.

Grease Pencil (2D Animation With Blender)

Have you imagined drawing 2D animation in a 3D environment? This is exactly what Grease Pencil is. It's a powerful feature that allows you to draw in 3D space using all the other features that Blender provides.

Check out this awesome 2D animation created with Blender:

New Matcaps

Blender now has more useful and quality Matcaps.

Studio Lights

You can now preview your mesh with Eevee without setup proper lighting, just go to Shading tab and use one of the internal HDRI files.

New Defaults

Blender 2.80 Beta Splash Screen

Yes, if you love to use the left-click in Blender, you're not weird anymore. If you don't choose in the splash screen, the selection with the left button will be the default. You can still use the right-click select like in the previous version, but remember to choose in the splash screen or in the preferences menu.

The spacebar will play/stop the animation and the search was moved to F3. (I didn't like this change, but I got used to it.)

Quick Favorites

A pretty useful feature added in Blender 2.80 is the quick favorites menu. If you right-click some button or menu, you'll see the option Add to Quick Favorites.

By pressing Q, the favorites menu will pop-up and everything you added will be there.

This menu is context sensitive, so you can have some options in Object mode, more favorites in Edit mode, and so on.

Shortcuts were reorganized

Blender used to have a lot of hidden/super secret shortcuts for everything, so a lot of keys were compromised and neither addons or the user could add your own shortcuts since there is no room for new shortcuts.

The new shortcut sheet is more consistent, covers the most used functionalities and still gives you more room to customize your own.

I'll be honest, in the first week I hated every change in the shortcuts, but now, I think the changes and the time spent in my adaption worth it.

If you still want to use the old shortcut template, you can change the keymap to Blender 27X.

If you're coming to another software like Maya and 3D Max, you can choose Industry Compatible. This option uses the same keymap from these softwares and can help you if you're planning to switch tools. I'm not sure what are the main changes, but if you're planning to use Blender, why not start learning the shortcuts from Blender?

Pie Menu Is Now Built-in

Pie Menus is a very popular addon that is now built-in in Blender. The addon still exists if you want the exact behavior and shortcuts from the older version. Is worth mentioning that not every feature from Pie Menu was imported into Blender. These are the most useful shortcuts:

Shortcut: Z  

Shortcut: CTRL + Tab

Shortcut: Shift + O

Shortcut: Shift + S

Layers and Groups Were Replaced by Collections

Objects in a scene can now be organized into collections. These collections can be named and nested. Objects are typically a member of one collection in a scene, but they can be put in multiple collections as well.

Collections do not have to be part of a scene, and can also exist on their own. This is useful for example to limit physics collision to a subset of objects in the scene, or to select a number of objects to instantiate with a particle system.

More information:

Exit Dialog

Now every time you close Blender a pop-up will show up asking if you want to save or discard your changes. This subtle feature surely can save you some headaches.

New Area Lamps

A new type of lamp was added called area lamps. You can create interesting shapes like rectangular, square, and ellipse.

Workspaces Got More Attention

The workspaces changed based on community proposals and now it can be accessed via tabs, instead of a drop-down menu.

I started using these workspaces a lot more in 2.80. I think in older versions the windows are not smartly arranged and I usually customize the workspaces.

Blender 2.80
Blender 2.79

Ambient Occlusion Node Was Improved

The ambient occlusion node got some improvements and it's more useful now. You can control the amount, invert colors, ignore objects, input normal information, and control the samples.

New Hair Shader (Cycles)

Blender 2.80 now has a really powerful node for hair. Currently only available for Cycles, Eevee needs to wait a little more.

This shader is an implementation of the paper by Chiang et al., which was used in the Disney film, “Zootopia”®. 

A lot more information on this page:

IES Support in Cycles

IES lights contribute a lot to the realism of the scene. In the past, we used some tricks to simulate the effect. But now you can easily import your IES file using a node called IES Texture


  • Drivers are now multi-threaded;
  • Collision detection performance was improved; 
  • Cloth simulation is now more realistic;
  • Improved Alembic support;
  • Armature and lattice deform is now multi-threaded;
  • Sequencer performance was improved;
  • Animation playback was improved and you can expect more fps;
  • Particle System performance increased a lot. A 4 million particle creation time decreased from 31s to 4s on I7-7700hq.

Minor Changes

  • To deselect, the shortcut is now ALT + A;
  • The shortcut to walk/fly with wasd is now Shift + '
  • Remove Doubles was renamed to Merge By Distance and can be accessed with ALT + M;
  • The shortcut to maximize an editor window is now CTRL + Space (Though I think it  should be Shift + Space);
  • The default unit system is now metric;
  • You can now select multiple objects in the outliner or file browser via Shift + Mouse Click or by using box selection;
  • The 1, 2 and 3 keys are the default shortcut to change between vertex, edge, and face selection. It can be combined by pressing Shift;
  • Objects can now be renamed by pressing F2;
  • The User Preferences was renamed to Preferences and is now located at Edit menu or can be accessed via F4 shortcut. 

What's next?

In 2.81, a lot of improvements will be added especially in Sculpt Mode, asset management, and an overall maturation of what was added in 2.80. Maybe we can also see something about MantaFlow and Everything Nodes projects.