I just based my landscape material on this. I just wish I could exactly figure out what is going on with normals, ao and displacement here.
That was extremely helpful! Thank you!
Well, small/medium intuos pro is way cheaper that iPad Pro + pencil... just saying... And it works better with ZBrush...
Boy Sichterman talked about the way he approaches the production of amazing hard-surface textures for video games.
Before I knew anything about 3D art I was always drawing a lot. Every inch of white-space in my school notebook was covered in imaginary weaponry, environments and vehicles. When I got the hang of computers, I started learning Photoshop, Gimp and After Effects, and spend a significant part of my childhood creating silly videos. At middle school my art class teacher told me about a program called Maya. At home I installed the trail version and things quickly progressed from there.
I finished middle school in 2012 and joined the 4-year 3D art course at IGAD-NHTV in my hometown Breda, the Netherlands. The most important thing I learned there is not so much related to software or technique, but more to mindset. Me and my close friends were always pushing each other to get the highest grades and create the best artworks, and the only way to do this is to work and practice day and night.
In the 3rd year I received an offer to work at Elite3D, so I made a deal with school that I did my internship and graduation there to stay after graduation in 2016. So that brings me where I am now, working full-time at Elite3D. The first title I was lucky enough to work on here as prop artist is Call of Duty: Infinite Warfare.
Hard Surface Modeling
All my personal projects are done using Maya except for the environment concepts, which are done using Modo and the round edge shader workflow.
When modeling in Maya I use the basic SubD workflow.
First I make sure I nailed down the blockout, and it looks interesting from all sides. After that I create all the basic shapes without small detail or support edges. Then I jump into the SubD stage where I add support edges to make sure it smooths fine without any pinching. Knowing where to add the support edges is something you only learn by doing it a lot. After a while it kind off comes natural and you remember all the tricks to avoid pinching in different situations.
Videos that helped me a lot in the very beginning, is the Hard Surface Essentials by Grant Warwick:
He is using 3ds MAX, but the same principles apply to all software.
A mistake a lot of beginners make is thinking that N-gons are bad when SubD modeling, but in reality you can use as many N-gons as you want, as long as it smooths fine. Only keep in mind that they break edgeloops, so it is more difficult and unorganised if you want to remove or edit them later on.
Because the highpoly models I create will be baked down later on a low poly, I can make heavy use of so called ‘floaters’. Floaters are small details that float on top of the base geometry, with the edge faces having the same face normal as the underlying geometry. When baked down, no seam will be visible, and it will seem as if they blend with the surface. Floaters speed up the highpoly process a lot since you don’t have to fit a trazillion edgeloops in the base model. Instead you can just duplicate them on top to add all your small detail. Nowadays with programs like Substance Painter and NDo, it is even possible to add this kind of detail during the texturing process instead of modeling it.
I also try to hotkey all the tools I use and create small simple scripts to speed up the modeling process. After hotkeying everything for about a year or two, I reached a point now where I only touch the interface for very specific things which I maybe use once a month.
Sometimes a function cannot be found in the hotkey editor, so you have to copy the action from the command history in the script editor. This requires basically no scripting knowledge and you can even use it to create simple macros or actions.
Additional, I am also using a lot of Adnan Chaumette’s tools like quickpipe, Maya’s Bonus tools and a script that expands a selection by face normal to quickly select one side of a model.
Tip: when creating cylinders, try to give the highpoly the same, or double the amount of divisions as you would give the lowpoly. This saves a lot of time when creating the low.
I always start by making sure my blockout is functional. That way you can detail it without worrying about breaking the functionality. If I know how something should be able to move, I first look at real life reference of objects that have similar movement capabilities. I think reference is the most valuable thing to use as an artist. About a year ago I started using Pinterest to collect references, which works like a charm. I scroll through it every day so I get inspired and build up the shape library in my head.
By using Maya’s constraints and parenting system, it is pretty simple to create simple test rigs and see if certain mechanical elements work. If you know any people with who like rigging, it can be worth it to ask them to create more complicated test rigs. This also provides them with fun challenges.
During the creation of my highpoly’s, I also build up a pretty extensive library of pieces I can reuse (a kitbash). Since copy- and pasting between Maya files is possible now, my future plan is to organise these in a separate Maya scene so I can easily copy-paste complex mechanical shapes into my design.
Something else I would like to mention is that Maya 2016 and 2017 handles Booleans a lot more stable, so don’t be afraid to use them. Using Booleans has a much more creative and experimental feel than standard box modeling. It is a lot of fun to subtract different shapes from each other and create interesting forms that would otherwise take a lot longer to create or design.
The main reason I add functionality to my designs is because of the rule that ‘form follows function’. Trying to think how something should move helps a great deal coming up with interesting designs.
I always try to make the designs functional in its main purpose. The car for instance will be rigged in the end so I had to make sure the wheels could rotate, steer and that the suspension is functional. The driver should be able to enter the vehicle, whether it will be playable or not so I designed a mechanism for the full cockpit to extend out. The dashboard position is adjustable and can be moved forward so the driver has room get comfortably seated.
Smaller details like the engine internals, drive axis etc will never be seen by the player but at least I try to suggest some kind of functionality by showing parts the viewer knows from real life. This helps sell the full design.
For texturing my final low poly models I use Substance Painter 2. I always like to create my material from scratch so I have most control over the final look. When working in a production environment I do use pre-made materials simply so that everything look unified. For my personal projects I build my materials in the following order:
- For every material I start with a fill layer. Here I determine my main values that make up the material base, so my Base color, metallic and roughness values in this case.
- If the material has any obvious pattern or colour differences I overlay it in a fill layer above. This can be the ridges in corrugated metal for example. Substance painter offers a variety of procedural masks to create almost any pattern possible, plus you can import your own mask image.
- This is maybe the most important step. Here I overlay a map where I add my base rougness variation. Most of the time this can be done using the default substance grungemaps. The way I do this is I create a fill layer, and apply the grungemap as a fill to the mask. After applying it you can still play with the contrast and balance of the grunge map. I always try to use grungemaps that have a lot of suggested story to them like smears, scratches, directional detail, leaks etc. This gives helps a great deal defining the material. Sometimes I also like to overlay it a tiny bit on the Base colour so the differences are also visible when there is no gloss showing.
- After the roughness I jump on the height channel. The height channel is also a very powerful tool to create small normal detail to help sell the material definition without any sculpting. It helps break surface evenness, change the overall reflection and can create interesting small details. Again this is done using a fill layer and a mask with a grungemask.
After creating all my separate materials, like bare metal, paint, rust and oil, I proceed to blend them using masks with generators and manual paint layers on top.
The way I change and mix my materials is as follows: All my different materials like paint, rust, dirt and metal are grouped with their own mask. By modifying this mask I control where the material shows. Before starting texturing I make sure my AO and normal are without artefacts and I bake out the remaining worldspace, position, thickness and curvature maps using substance baker tools, so the generators respond the most accurate.
My materials are stacked in a realistic way, so first bare metal, then rust, then paint, then maybe a layer of leaks from the rust, and then all the dirt and oil. This way I can build it up in a controlled and realistic manner.
I start by using the mask generator to create my base wear and tear. The mask generator allows you to input grungemaps as well so I use this to break the uniform feeling and create some unique details. Using the generators saves a lot of time and gives a nice base to start from but I always like to manually paint on top of it to break the procedural feel.
I usually have at least 2 layers of dirt. One is dark and grimy, and I put in cavities where dirt usually collects in real life. This adds a nice contrast and really helps shaped and different objects to pop out.
The lighter dirt is also making use of cavity but is also placed more general around the model and near the ground. I also give this one a tiny bit of height so it pops out a bit more.
A little tip: Like in Photoshop you can hold ALT and click on the mask to show it on the model.
Again, during this process there is nothing more important than constantly looking at real world reference. When people ask me for feedback, the first thing I usually ask them is to show the reference with the material they are going for so I can compare the two and point out any differences. Even when a material doesn’t exist in real life you can still use reference to see how dirt builds up, and how materials wear out in different environments.
To present my final textured (single) assets, I use Marmoset Toolbag. I won’t go into details about how marmoset works as that can be an article by itself, but here are a few tips to get the most out of it:
- Sampling quality and resolution. Marmoset Toolbag allows you to increase the resolution and sampling quality for the final render in the capture settings. This doesn’t affect the viewport but only the final render. I always render at naughty high resolutions since you can always downscale it in Photoshop. Because renders go super fast anyway, I also pump up the samples to the max.
- Tweak the lights for every shot. Don’t use the same light placement for a bunch of different angles. Make sure that for every angle you have proper keylights and rim lights that show the model in all glory, and makes all the detail pop out.
- Global illumination. Marmoset Toolbag 3 added the option to use real time global Illumination. This adds more depth to the lighting which generally makes the asset looks less flat and adds interesting subtleties.
- Safe frame. Inside the render cam there is the option to toggle on ‘Safe Frame’. Safe frame shows the borders of the final render so it is easier to frame your model and see what you get once you make the final render.
- Post production in Photoshop. I never post my renders straight from Marmoset. Instead try to improve my renders with some additional post processing in Photoshop. I add a few adjustment layers to play with things like the contrast, saturation and you can add logos and your name.
- I also like to sharpen my image to make details pop out, but instead of applying it to the full image I only apply it to some areas of interest. The way I do this is as following:
-Apply the image to a new layer
-Make it black and white
-Apply a high pass filter, and play with the settings so that the smaller details appear in the preview.
-Set the layer to overlay and apply a black mask
-Mask areas of interest
If you want to get into 3d production for games, there are a lot of places to find tutorials nowadays. Here is a nice list containing most knows websites that offer free and paid tutorials.
Before starting any tutorial it might be wise to ask someone with experience if it is any good, so you make sure you don’t waste your time learning wrong fundamentals.
While learning, it is extremely important to get constant feedback so you can improve. Try to be active on forums so experienced artists can give you valuable feedback. When you are comfortable with the basics, try different specializations like animation, hard surface modeling, character art, technical art to see what you like best before diving in the deep. If you want to learn more about the industry, need motivation or just something entertaining to listen to, I highly recommend the art café podcasts and the collective podcasts.
And of course, If anybody has any questions, feel free to contact me 🙂