Rob here for another arty blog post. This time I will be talking a little bit about texturing 3D assets, with a particular focus on physical accuracy. Unlike the last post this one will be a little more Modo specific but the principles are most definitely applicable to other texturing applications and so will hopefully be useful in whatever approach you are taking to texturing your assets.
I will be taking a physically based approach to the materials, using measured real-world reflectance values to control the feel of the materials, particularly the metals. This physically based approach to material definition has become the new standard for game art production and so gaining a greater understanding of the underlying principles of real-world materials will be invaluable when working within these new systems. However while I will be working with a physically based approach within Modo, I will not be producing assets that can work within a games engine (not yet anyway). This post is more about the underlying principles of why materials are defined the way that they are within these systems rather than anything engine specific.
Physically Based Basics
First of all don’t let the fancy terminology fool you; the basic principles of physically based materials are actually quite straightforward. Physically based rendering is essentially just a system that allows us to use scientifically measured, real-world values to calculate a material’s reflection. Ultimately what this results in is highly accurate reflections that exhibit the nuances that real-world materials contain without the guesswork that artists often have to go through to obtain the result that they want.
Metals, Non-Metals and Reflections
To make things easier we can start by thinking of all materials as either Metals or Non-Metals, as both contain specific properties that differentiate them from each other. This differentiation comes from how light is reflected from these materials and therefore what kind of reflections the material will exhibit most prominently.
First of all we must understand how Modo renders reflections, specifically what kind of reflections it calculates. Modo models real world lighting using three different types of reflection: Diffuse reflection, Specular reflection and Fresnel reflection, while using a parameter called Roughness to manipulate the spread of these reflections.
Diffuse reflections are observed when light permeates into a surface, is diffused by the irregularities within the surface and is then bounced out of the surface in a random direction. This is technically called subsurface scattering although in 3D applications you will often see this as a separate parameter used to induce the illuminative effects of SSS on thin materials (e.g. skin). This type of reflection is that which primarily defines non-metals.
A sphere rendered with purely Diffuse reflection
Specular reflections are created when the angle of light reflection is equal to the angle of incidence. Because this relationship changes as objects move this ‘sweet-spot’ will move around an object relative to our view of it. Secondary Specular reflections can also be observed wrapping around objects and is this type of reflection that primarily defines metals.
A sphere rendered with purely Specular reflection
Fresnel is the principle that objects become increasingly reflective at glancing angles. As the angle of incidence approaches 90 ° an object’s reflectance increases to a value of 100% on perfectly smooth surfaces. This is generally the same for metals and non-metals but very few materials are perfectly smooth therefore values of 100% should mostly be avoided. Every material can be seen to have a unique Fresnel expression but most rendering applications (including Modo) will simplify this to a generalised approximation.
A sphere rendered with purely Fresnel reflection
Non-metals are perhaps slightly easier to deal with as they have fairly fixed reflectance values. Non-metals are almost entirely Diffuse reflection and nearly no Specular reflection. All non-metals, from shiny plastic to dull wood, smooth rubber to crumbly stone, actually exhibit the same amount of specular reflection in terms of energy: just over 4% i.e. only 4% of light energy that hits a non-metal will be reflected as specular reflection.* The main properties of a non-metal are defined by Diffuse reflection (this is what gives us the material’s colour), as well as the roughness of the surface itself. It is this Roughness parameter that dictates the look of the Specular reflections: a shiny plastic bottle is much smoother than dull wood and although they are reflecting the same amount of light, this light is being spread far more on the rough wood than the smooth plastic.
A non-metal sphere rendered with 0% Roughness, 50% Roughness and 100% Roughness
*(Admittedly this isn’t strictly true as some gem-stones reflect different amounts of light but we can ignore this as we are not defining any gem-stones in the scene).
Metals on the other hand are a little more complicated as every base metal (copper, steel, gold etc.) has a unique reflectance value but thankfully there are numerous resources available online that give us access to these reflectance values. As light cannot permeate metals in the same manner as it does non-metals, metals have absolutely no Diffuse reflection; all colour properties of a metal are derived from the Specular reflection. Roughness operates in the same manner as for non-metals, modulating the spread of the highlights.
A metal sphere rendered with 0% Roughness, 50% Roughness and 100% Roughness
Now that we are armed with our reflectance values we can start to use these within Modo to define our base materials. We can achieve good starting results simply by taking the values that are appropriate for your material and entering them into the associated input. So for example, when defining the Brass material of the glasses, I simply entered the appropriate Diffuse reflectance (0% for metals), Specular reflectance (which for brass is between 70 and 80% depending on the composition of the alloy) and Fresnel, for which I used 20%. Don’t forgot to check the ‘Conserve Energy’ and ‘Match Specular’ boxes as this will ensure that your materials are obeying the physically based rules that Modo uses.
Using this workflow should give you fairly interesting, accurate results straight away, however this is only a base and much work needs to be done to add extra texture detail on top of this base. What kind of detail that you choose to add will be entirely dependent on the asset itself and will come from close study of lots of reference images.
This will be the main focus of my next post as I dig into Modo’s procedural texture library and start to layer in some detail on top of the base materials we have defined. Check out the images below for some sneak peeks! See you next time =)
A lot of the stuff talked about here can be found with a quick google search but it can be tedious to find the bits that are actually relevant to artists as opposed to physicists or wizards, so below are a few links that helped me out when trying to get to grips with this stuff:
A great breakdown of reflections that goes into significantly more detail than I have can be found here: http://www.huevaluechroma.com/021.php The author is writing this in the context of 2D drawing but the principles are exactly the same. It has some helpful illustrations too.
A great resource for grabbing reflectance values can be found at: http://refractiveindex.info/
Anyone interested in physically based art for games should definitely check out this link: http://www.marmoset.co/toolbag/learn/pbr-practice As it’s games related the production methods are slightly different but the underlying principles are the same and these materials follow the same rules as described above, as well as this link: http://www.marmoset.co/toolbag/learn/pbr-theory That talks about a lot of the theory described above but in a lot more detail.
A great place to pick up HDR images for your image-based lighting is at: http://www.hdrlabs.com/sibl/archive.html
Finally if you want something Modo specific I have to recommend Richard Yots series ‘Modo Shading Masterclass’ as it is a superbly detailed breakdown of physically based theory as well as Modo specific techniques, you can find info on that here: https://vimeo.com/ondemand/shading1