Stylized Nature: Vegetation, Animation, Shaders

Dragos Matkovski did a breakdown of his amazing stylized 3D environment The Illustrated Nature, available on the Unity Asset Store.

The Illustrated Nature

The Illustrated Nature is a 3D environment created for those who want to tell a story in a colorful and painterly world, but don’t have the means to build it themselves. It represented an opportunity for me to experiment with new workflows, and provide a unique art package for others to use in their projects.

The package is made out of a series of stylized vegetation models, shaders, image effects, and scripts put together in a scene complete with sounds and music, with the goal to make it useful and inspiring.

Every Frame a Painting

It all started with an experiment where I combined digitally painted brush strokes with 3D geometry to create a scene that looked very much like a digital painting. Not trying to achieve realism, going for a painterly look in 3D instead.

As the title of this section says (in reference to the YouTube Channel with the same name), the greater goal of this project was to achieve a painting out of every frame.

Studying paintings allowed me to better understand how shapes, colors, lighting, and composition work together to create a beautiful image.

This direction slowly materialized in what has become The Illustrated Nature, a project close to my heart where I could focus on bringing the two worlds I most enjoy together, digital paintings and 3D graphics.

My name is Dragos Matkovski and I will try to share workflows and thought processes I’ve used in the making of this project.

The Assets

One thing I tried to solve from the start was to find a way to make the vegetation models lush and alive. I wanted the trees and the grass to be dense yet performant, and move in the wind in a believable way.

Modeling

For the leaves, I modeled a simple intersecting mesh of 3 quads that hold the leaf texture and I scattered it over a bigger surface that resembles a volume of leaves on a branch. The resulting group of leaves had the normals pointing in all directions, so I edited the normals to point outwards to create a smoothed appearance.

I then took the leaf groups and placed them around the tree trunk, focusing on the silhouette of the crown. Because the normals are smoothed per group of leaves instead of the whole tree, the light and shadow parts add more definition to the tree.

The trunk and branches are modeled using splines.

The way I prepare the model for the vertex animations is to paint the alpha channel of the vertex colors with a gradient from top to bottom, and use that to control the bend strength of the asset on its y-axis. I then use the green channel to paint the branches and leaves and give them a secondary movement that has more noise.

Texturing

I intentionally kept all the textures abstract. One leaf texture is a brush mark scattered a few times, another texture is a scattered square, the pine needles are grungy lines.

I use white textures with alpha for the vegetation, compressed at a 256×256 size. All the colors in the scene are controlled through the color property of the materials. This allowed for easy and instant color changes to the assets and made the process of coloring the scene feel more like painting in an application.

Animations

The vegetation is animated with the help of two types of animations – vertex and UV, both happening at the shader level.

Vertex animations are used to create the larger sway and branch motions whilst UV animations act as a secondary, subtle wiggle of the leaves. They can be individually turned on and off for better control over performance.

In the shader, everything is run by a global noise texture that is panning across the world and controls the vertex offset of the geometry and the UV animation of the texture.

What really sold the effect and made it credible, was the addition of the UV animation on the leaves. I simply wiggle the texture in sync with the vertex offset. Because the effect takes place in world space, every tree and every leaf has its own motion.

I use the same type of UV animation to bend the grass blades in the wind, instead of only skewing them with the vertex offset.

The Environment

I will try to touch upon a few things I am usually aware of when populating the environment.

I group the models together – almost never uniformly scatter them. The same type of flower in one corner, the same type of tree in another. I place shrubs and taller grass beside the water and outside the forest. Young trees at the edge of older trees.

Where I know the player will spend more time (on paths and around points of interest), I place more detail and I try to create a strong composition with the assets to lead the player around the environment.

Almost everything inside the environment was placed using a prefab scattering tool. I have used Prefab Painter 2. All vegetation models have LODs so I felt confident scattering them around.

In general, I aim for a balanced level of detail with large, medium and small assets present in every part of the map.

I look for references and I try to imitate how nature works. Although the graphics are stylized, I feel like we are still sensitive to the way things work in real-life.

When I’m out enjoying nature, I try to be observant and capture things that could potentially inspire and inform me in my projects, like the short video of the water below.

The environment wouldn’t be complete without audio, so I took it upon myself to add that in.

It was surprising for me how with just my phone and some minimum audio editing knowledge, I was able to record and clean the files enough to make them useful in the project. I found out that you can easily clean the outside recordings by isolating the frequency you need.

I have recorded birds singing, water splashes, wind, and steps on different surfaces and I’ve used Adobe Audition for the cleanup.

Special thanks to soundcloud.com/moonfinger for providing the music.

The Shaders

From the beginning, I wanted to be able to stylize and push the colors in the scene beyond realism. I have used Amplify Shader Editor to create all the shaders and customize them to my needs. Besides the animated vegetation, other shaders that stand out are the Colored Fog image effect and the Colored Water.

Colored Water

Colored Water is a simple and easy to customize shader with options to change the deep, shallow and edge colors of the water. The foam effect close to other surfaces is combined with a Perlin noise and gives the water just the right amount of detail to integrate it visually with the rest of the graphics.

Colored Fog

Colored fog is an image effect shader I created to replace the default fog. It comes with 3 color properties, which can be used to control the fog color and density near and far from the camera.

The Tools

The environment includes a few smaller scripts that improve the experience overall (you will be able to get them after the download).

Some might find them useful, like playing random sounds from the surroundings or changing the footsteps sound based on a trigger.

Besides these, I’ve added two editor scripts, one for controlling the wind settings and the other for managing the colors in the scene from one place.

Special thanks to Ovidiu Arion for helping me with the scripting on this project.

Wind Manager

The Wind script is used to globally control the wind animation in the scene.

Color Manager

The Color Manager is an editor tool for changing the colors in the scene with ease. It allows for switching between color palettes without the need to duplicate the materials and reassign them to the models.

It can load multiple materials into it and for each material it can hold multiple property sets that contain the color and texture of that material. By adjusting the color in the property set, the material gets updated in real-time.

It makes exploring new color palettes and styles easy and intuitive.

The Future

For a long time, I got stuck on trying to create my own games. This time around I chose to share my art with the community, and enjoy any small or big story that the Illustrated Nature will become a part of.

My intention for the foreseeable future is to add new models, improve the existing ones and make the tools and shaders used in this project better.

Other than that, I am constantly thinking of new ways to interpret our reality. If you’d like to receive email updates from me when I put out new work, please subscribe at www.artkovski.com.

The Illustrated Nature is available for purchase on the Unity Asset Store.

Links

Facebook @artkovski

Twitter @matkovskid

Thanks for reading!

Dragos Matkovski, 3D Artist

Join discussion

Comments 13

  • Loginova Daria

    Thank you for the feedback, everyone. A quick update from the editorial team: the graph shader screenshot has been re-uploaded in better quality.

    1

    Loginova Daria

    ·3 years ago·
  • Al-Hyari "Muhammad At-Tayieb"

    This is outstanding!

    0

    Al-Hyari "Muhammad At-Tayieb"

    ·3 years ago·
  • Tordera Sanchez Enrique

    One of the most useful articles I have read.
    I understand that it is late, but I am looking for something similar to what you have done with the leaves.
    Can I get the photo of the shader?

    1

    Tordera Sanchez Enrique

    ·3 years ago·
  • Anonymous user

    Nice, this is really  well made, is too late to recive a better image of the shaders?

    0

    Anonymous user

    ·3 years ago·
  • Anonymous user

    This is gold. Thank you for sharing.

    0

    Anonymous user

    ·3 years ago·
  • G Simon

    I would  greatly appreciate if I also could get a copy of the high resolution shader graph image. Thank you and keep up the amazing work.

    0

    G Simon

    ·3 years ago·
  • jason.n.m

    As with everyone else, I too would love a copy of that shader graph. I'm trying to achieve a similar look in Unreal, and want to see if I can adapt it. You're doing amazing work!

    0

    jason.n.m

    ·3 years ago·
  • blindconcept

    Such a beautiful work!
    I am just beginning to learn shadergraph. Any chance I could get the image in a higher resolution to figure out what nodes you used and how?
    thank for the hard work!

    0

    blindconcept

    ·3 years ago·
  • Rui Guan

    Beautiful work,I would also like the shader graph in high resolution please and thank you.  Also I would like to know what plugins or detailed tutorials you are using to make the canopy, GIF is too fast.

    1

    Rui Guan

    ·4 years ago·
  • Anonymous user

    I would also like the shader graph in high resolution please and thank you.  ^_^

    0

    Anonymous user

    ·4 years ago·

You might also like

We need your consent

We use cookies on this website to make your browsing experience better. By using the site you agree to our use of cookies.Learn more