Comparing procedural and painted texturing
Article #2: Painted
This article is the is part #2 of my 2 articles to compare procedural and painted texturing. Previously in Part #1 I gave my view on procedural texturing, here we will have a look on painted texturing the same asset. The intro of both articles is identical, but the conclusion of the series is included at the end of part #2.
I have been planning to write some articles honoring the 1st year I have spent in training until now to become a 3D artist. As subject of the first 2 essays I thought it would be appropriate to choose something which has given me the most thoughts in the past year. I have been fighting with a couple of things while getting to know different techniques for modeling, shading, lighting, rendering and post production, but from all these one of the few things currently, which seemed to me as a matter of preference instead of the actual progress of an artist on the learning path is the question: Should I use procedural or painted texturing on my model. I was searching a lot on this matter, but was not able to find any usable writings on the issue. I do not think, that reading mine will bring any revolution into the topic, but it will give a nice overview of the conceptual difference in the 2 approaches and maybe some hints on where to use which technique or how to combine these.
|Boulder low poly|
For demonstration I will use a boulder on which I have been working on for the closing scene of my 1st year educati
on. Sounds serious ey? But that' another topic... So I have sculpted a plain rock in Zbrush, UV-d it, exported the low poly mesh, the high res displacement map and there I stand now thinking: "Mmmmmh, which method to use? Procedural or painted/photo texture?"
|Boulder with displacement|
This is of course software dependent. I used maya and vray, but I will try to write it down somehow platform independently, wherever possible.
I did not put a huge effort in the environment, as the asset will come in to a more complex scene anyway, but it is worth to set-up some lighting and rendering settings to see a result, which doesn't produce completely the opposite, when you put the asset into a scene. A plain lighting and rendering setting would show an unrealistic, that's why I choose to set it up as follows...
There is a plain background, basically a box, with an ambient lighting linked to an image (image based lighting) a warm light coming from the top (4500K) and 2 colder lights coming from the bottom sides (7500K). I found that this environment reflects a non homogenic lighting in strength and colour, which can be used as a pre-viewing basis for a complex scene.
For rendering I kept in mind, that it has to give me a fast preview, to be able to stop it, if any error occurs (obvious for experimenting purposes, as this one), but be accurate enough to see details. This meant for me to set up a progressive sampler with a resolution lower than 1K, not limited by render time, min desired noise or max subdivision levels, as I will probably never finish a render during most of this experiment. One other thought. I realized some render passes to be very useful when it comes to troubleshooting, so I include separately view able lighting, diffuse, global illumination, reflection, specular and sample rate. I'm not sure if I'll come across anything in this article where this will be of importance, but I got used to set this up for almost every render, as it is extremely useful.
I did not use any specific camera settings, apart of setting my perspective view to a vray physical camera and setting up the basics, so I can see properly what I'm doing. This seems perfectly adequate for this usage. The final render (if any would be done) will be set up completely differently.
Some things which I did not take into account here:
- Global illumination: I'm not sure if I'll use it... maybe in the final render, but there it will be probably an irradiance map- brute force combination
- Post processing: Well, as this is just an experiment I will not make any specific settings, which may be useful for a later post processing of the render passes in Photoshop, Nuke or whatever.
With all this prepared, let's get to the real topic here :-)
Painted rock texturing - generally
It is important to mention, that when starting to go into the details of this painted rock texturing, we will immediately realize, that the 2 methods require a completely different skill set and approach. At procedural texturing we stayed inside of our shading/rendering program, creating a complex node network (if you read Part #1
of my article). Painting and working on 2D textures can be done for example in Photoshop, which is a layer based software. The meaning of this we will see through the whole process and I will have a few thoughts about this as conclusion later. Also there is a huge variation in software, which can create and view the certain maps needed, so again I will try to be more general, but I will use Photoshop and Quixel to do the maps and view them in maya's hypershade.
Painted rock texturing - diffuse
Starting with the diffuse again the first task is to get a rock texture picture (or draw it yourself if that is an option). I prefer to work with my own photos for such textures, because it is a very exciting task to out in the real world and look for a good specimen, furthermore you exclude the risk of getting into copyright issues. In this case however for demonstration sake I used a free downloadable texture of a layered rock.
|Initial placement on the boulder|
The first task is the initial placing of the texture on the model and the multiplying of the texture on the surface if needed. In case that needs to be done, we have to keep in mind, that the texture should be tile-able. To reach that the seams have to be eliminated, which in PS is done with using the offset filter on the image (this way the seam becomes visible) and then running through over the seams with the spot healing brush. There are also some automatic features in other programs to do that. Also the tint of the color should be changed in the beginning if needed. I have increased the colour offset a bit, because of the later following curvature node and to decrease the significance of the brown layers on the original picture.
|Final colour base|
After this the task is to get the texture even, without shadows, bigger elevation differences, etc. To do that in PS you can copy the original image on top of itself, apply a high-pass filter on the new copy and blend it in luminosity mode on the original one. Going through the same processes now, like in the procedural texture in Part #1
of my article, the main color gets a multiply with a curvature node, to have geometry depending coloration, and that goes into a dirt node to darken the cavities. Here I have been experimenting a bit to find the best result from the available colour blending modes, like add, multiply, subtract to only name a few. This process of decision making is again very subjective and depends on the result which needs to be achieved.
|Cavity map for roughness|
To give the reality factor another kick I created a cavity map in PS by basically grey scaling and flattening the map down, so that only the sharp colour changes remain. The steep contrast I reached with applying a curve modification on the picture, which can push all pixels colour information to range from one end of the black-white scale to the other. Linking this into the roughness amount creates a rougher impression in the cavities, which can show effects like dust. At some assets it might be worth to layer a cavity map with let's say a sand like colour over the base colour to introduce also a discoloration in cavities. This I did not want here.
With the base done, let's go over to the other parameters worth setting.
Painted rock texturing - normal map
The normal map I have created with Quixel, however they can be created also with xNormals (free) or with the PS supplied 3D filter "create normal pattern"... well and probably another thousands of plug-ins and scrips. There is not much to add to the map itself. The bump depth I have created the same way as in Part #1
of my article. Seems very simple, eh? We will see in the conclusion :-)
Painted rock texturing - reflection
Creation of the reflection map can be approached in different ways considering what the final aim would be. On my rock surface I do not want to have many reflections, therefore the overall color is tuned to black with some white highlights. It is possible to tune the brighter spots to special places, where the reflection is needed to happen, for example color differences of certain ores or crystals, that can enhance the final asset also quite a lot. In my case I have chosen the higher points of the normal map adding the curvature node, of which I have made so much use already. The rest of the reflection parameters is the same as in Part #1
of my article.
With this finished let's summarize what we have seen here...
I'm hesitating a bit how to approach a comparison like this, but being a manager myself let's use the managerial approach of some kind of decision matrix. I will give a rating (1-5, where 1 is more a disadvantage and 5 is more an advantage) to each time, cost and quality value of the 2 methods as a start. I'll include also an expert rating to see which may require more experience.
- Time effort needed - a bit of experimenting needed - 2
- Costs of software - your regular 3D SW - 5
- Quality of result - not bad and very flexible - 4
- Experience needed - learn all the nodes.. OMG! - 2
- Time effort needed - quite fast method - 4
- Costs of software - for being really fast some additional stuff is needed - 2
- Quality of result - not too flexible, depends a lot on your input (maps) - 2
- Experience needed - easy to get an idea - 5
Adding the points it seems we have exactly the same overall score, however both methods have different strengths, which are, I believe, well explained by the rating remarks. This shows exactly what I was thinking on the way all the time... It depends only for what you want to use your shader. You would probably not want to try to put bullet holes in a door with the procedural method, however it would also be kinda stupid to hunt the perfect sand texture with your camera, when all you have to add there is a single node. Usage of any of the both methods, regardless on the visual result can greatly depend also on the working pipeline you are in and on the skill set needed. Obviously a working pipeline is not able to quickly change from one to another if not both or a mix of them are equally established already.
It was definitely worth for me to go through summarizing this topic in an article form, as it takes a structured approach an I really had to through all the steps and detailed settings until the final render. I took with me, that I would probably use procedural mapping for most regular materials, which do not have special features in predefined positions and/or markings or texts. Also on assets, where there are many of the same type in one scene (like scattered rocks) with different size, etc. it seems more flexible and variable to use procedural. For the other before mentioned cases I would go for a mixed method, simply trying to combine the advantages of both methods. Finally I would apply a solely texture painting method on assets, which are hero models with well defined close-up details, like a space ship hull or a character face, where every single detail is telling a story and has to be well placed based on concept specifications.
I hope you have enjoyed this little excursion with me. Stay tuned for for some more stuff from me in the near future!