Tutorial: Procedural Texturing Workflows for 3D Artists

Back to overview

Hello everyone! This is Simon Kratz, or essimoon, and in this article I’d like to showcase my Sketchfab Master Superpower! In my 9-year long history of creating 3D models, one of the more challenging aspects of creating production-ready 3D models for me has always been texturing.

The main reason for this is that I never really got into the creation of 2D art; I basically… just didn’t have the patience for it 😀 I really respect everyone who creates a solid texture for a 3D model but for my case I had to find a different approach to get my stuff done. So in this Superpower showcase I want to share some tricks I learned on the way and show you how to create some solid textures without drawing a single stroke. Let’s go!

The Basics of Proceduralism

You probably guessed it from the title, this is all about proceduralism! When I got into the work of game development, a lot of procedural (or, at that time, rather “parametric”) texturing workflows started popping up in the industry. One of the most prominent examples is probably Substance Designer, which you can use to completely create full materials from scratch using parametric nodes. Now, the base of procedural content creation can be thought of as input parameters. Those can, for example, be fixed values that power a function that creates a pattern that blends with another pattern created from a different function powered by a second value…and so on.

Simply put, you don’t create content manually by painting individual pixels by hand, but by defining a rule for the creation of each pixel.

A Practical Use Case

Now while this sounds highly technical, let’s get to a specific use case:

The textures for this model were created entirely procedurally (meaning: without painting anything by hand).

This model is a great use case for procedural texturing. You can already see that it has a lot of technical looking patterns and you may be thinking, “Wow, he just layered a couple of patterns and adjusted the UVs to fit”, but that’s not quite the case. I went one step further:

procedural texture plasma gunprocedural texture substance designer

The final textures are actually driven by texture maps baked from a high-poly model. Color ID, curvature, AO, Position and various types of Normal Maps are used as inputs to the texture-generating functions in Substance Designer.

The main advantage of this workflow is that you have some very high quality data to input into your functions. So I can, for example, first create a pattern like this using the basic functionality of Substance Designer:

And then use a triplanar node with baked position and object space normals as inputs without ever having to touch UVs.

Now I went on and created lots of different material functions to define the individual parts of the model: Plastic, Metal, Energy Shields, Electricity, Self-Illuminated parts, rubber.

The graph is a real mess and I probably should have maintained it a bit better, but since this model was part of a personal timebound challenge, I didn’t care 😀

Now you might say, “Well I can bake my high poly maps, too. That doesn’t make them procedural.”

You’re right, the baked maps are, of course, not procedural, but a big part of our workflow now is indeed proceduralized 🙂

Let’s just assume one of the worst case scenarios happens: The model is fully textured and you notice the model needs a definite change, like adjusting texel size of individual islands, reducing polycount, or some needed topology changes since the gun suddenly needs a complex rig to be able to dance happily after it shoots a target (because, what else?).

So you adjust the UVs and prepare your flayed soul for the painful process of re-texturing.

But wait! Since the whole texture is driven by a couple of baked maps, we can just re-bake the maps and it will all be fixed immediately!

And that’s not all. Apart from doing necessary fixes, you can also do major changes to the model, like creating a second handle or making the barrel a lot longer. With procedural setups of your textures you’re really free to edit on your design while always being able to preview the final-ish result.

There’s also another big advantage and you might have guessed it: Since you created basically a “rule” on how the textures should look, you can also create a completely different model, bake the maps and use them as new inputs for your material. This way you can create lots of guns that are style-consistent and will generate no additional texturing overhead.

One example where I used this technique is my Best Crystals asset pack:

Those crystals actually use only two substance graphs, one for the rocks and one for the crystals. The rest was generative,, which always produces unique, fitting textures for your models.

Some Final Tricks When Working With Proceduralism

Of course you don’t have to work with sculpting high-poly models in the first place. You can also define your materials from scratch. But keep in mind that you will always need at least something to “bind” them to the model, meaning something that keeps the model from looking like some tileable texture wrapped on the surface. Here are some tricks to help you get started:

Bake lighting!

Even with just a low poly model you can still bake some maps to make your life easier. Just bake some natural gradients from your model. So go ahead, bake some of those maps:

  • Main Directional Lighting
  • Ambient Occlusion
  • Curvature (can give great results if you subdivide your model first)
  • Cavity
  • Object Space Normals
  • Position

Use the Tri-Planar nodes!

Those let you define individual textures by the position and normal of your model. Imagine snow layering on the top of your assets, it just needs a baked normal and position map.

 

Use the Light node!

This one is really great to bash your model full of interesting gradients. Don’t imagine it necessarily as light; I often use this node to just give textures some unique tint variations based on normal direction. It also has some nice parameters to adjust angle and softness, so iteration flexibility is all yours.

Use the relatively new 3D nodes!

Substance Designer 2019’s 3D nodes are so great to generate some small details from nothingness! They’re relatively new and take a position input to generate a perfectly tiling noise over your model.

You should of course not use them as they are, but mask or blend them with other influences. 3D nodes can really add a nice layer of depth to your textures without a need for mode complex inputs.

Use Houdini!

Seriously, this software is a beast when it comes to proceduralism. It can do for your models what Substance can do for your textures. If you really intend to get deep into the matter of procedural content creation you won’t find a way around Houdini.

The model from the header image was actually created completely procedural in Houdini.

Textures (again) were done procedurally with Substance Designer from baked maps and vertex colors, to illustrate the potential of procedural workflows.

Finishing Thoughts

To mention Houdini in this texturing workflow showcase perfectly finishes the intro about proceduralism. Think about inputting basic rock shapes, getting them tessellated, displaced, booled, optimized into really realistic looking high poly rock shapes that are then baked to textures and auto-textured in Substance Designer.

For the 20k subscriber model I made a Houdini node graph that let me input any string and have it create this organic shape pattern, the interior filler structure and the glassy-looking string mesh, UV it and bake the maps, all fully automated.

In my personal opinion proceduralism can only grow and become a bigger part of the industry that’s ready for people to use as they see fit. I also encourage you to check out Substance Alchemist, which is still in development but lets you blend textures by rules using an AI that has been fed real-world blending materials to do your bidding. This is another example of how texturing workflows can be sped up and made more accessible to a wide range of users.

And I’m sure there are still more than enough fields of use still untouched that will evolve and revolutionize our content creation workflows in the future.

Stay sane in the world of parametric creation and AI-driven material blending and start getting crazy with your procedural creations!

Visit Simon on Sketchfab.

 

About the author

Avatar

Simon Kratz

German game dev in biz since 2012.
Proud member of Mimimi Games.
Earlier took care of VFX, Shading and 3D art our own studio Klonk Games. I am a Sketchfab Master.


Leave a Reply

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

    Related articles