Long life to Embark studio and its fabulous procedural artists dream team !
truly excellent and inspiring to read. Would have loved to read some on the texturing since that is top-notch.
great environment with a lovely serene sense. Thanks for the write-up!
Héctor Sanz D’Ors talked about his small Sci-Fi Helmet project and talked about ZBrush workflows, baking in Substance Designer and rendering in Toolbag.
My name is Héctor Sanz D’Ors, I’m a 3D Character artist from Spain.
I had a chance to study Fine Arts at the university, where I focused on learning about anatomy and classic sculpture techniques. I’ve been working creating characters, weapons and props for video games since 2015 and had an opportunity to work in a few VR experiences with FutureLighthouse and Digital Domain, participate as a freelance in some awesome projects and now to be part of Mercury Steam.
Sci-Fi Helmet: Start of the Project
Since I started to study a proper workflow for 3D sculpting, I’ve been very focused on the organic pipeline. Creating characters, monsters and creatures have been always my main obsession so, in the beginning, I put the hard surface modeling aside. With time, I’ve been trying to solve that studying and investigating new ways to create hard surface models more efficiently. On my spare time, I decided to create a small piece trying to find the best workflow for me from the beginning to the end of an in-game asset.
The challenge was to create the whole model in one week on my lunch breaks so the planning had to be one of the main points of this mini-project.
It was clear that I had to find a nice design as a starting point. So the Pinterest session was almost mandatory to find cool concepts. I discovered the amazing work by Soufinae Idrassi, a concept designer at Ubisoft. The shapes of the helmet design are so polished, I loved the contrast between the curves, the lines, and the extruded parts.
The first thing I made to study the concept was separating the different materials and principal shapes in Photoshop. I overpainted the concept to have a clearer view of the helmet and assigned different colors to each part, then I started sketching the main volumes in ZBrush.
When working in ZBrush, I paid much attention to all the views of the helmet but much more to the contour, because it was the only reference I had.
Besides, I tried to think about all the problems I was discovering while I was sculpting the first sketch. Working with Dynamesh allow me to make quick corrections and take decisions along the way very quickly. For example, I decided not to make all the tubes on the back of the neck because the project was to make only the helmet. I wanted to have a coherent piece, the tubes needed to be attached somewhere and I would not work on more parts besides of the head. The same thing happened with the neck, working with the Dynamesh I made this part like the concept, but it wasn’t a really functional neck. I was wondering about the materials in the concept — was it metal or some plastic material? If I’d wanted to move the helmet over a body it would not be in that way, that’s the reason I started again to research on the internet and sketch some solutions until I find the way.
At the time I had the sketch finished I had to make some decisions about the workflow. The main point of this helmet was to improve my hard surface skills and learn new ways to create sharp and clean volumes. And here started the problems.
Working in 3ds Max
The principal volumes and the simplest forms were made directly in 3ds Max. Working with editable polys, I created the base form and assigned different smoothing groups to create the hard edges.
Then I applied two Turbosmooth modifiers: the first one with 3 or 4 subdivision levels and with the smoothing group cage marked. That’s how we can create easily the hard edge. And finally, the other Turbosmooth to make smoother the entire piece.
The next step was to send the piece to ZBrush, polish and detail the model there.
This way of working is very effective but I wanted to try something quicker than this method and if it would be possible, without the necessity to use more than one software.
One of the options was to create the individual piece in ZBrush with Dynamesh. When I would be happy with the result I’d just try to polish the surface with H Polish brushes making a “Clay polish” or even a Zremesh in a cloned tool, creating different polygroups and applying a “Crease PG” that creates an edge around the polygroups and then subdivide the tool.
But for me, the best way to work was extracting the different pieces of the helmet creating masks over the sketch. Then Dynamesh the piece, clean all the imperfections that could appear, Zremesh and carefully with Hpolish create the clean surfaces. Other variation if you don’t want to extract the mesh and have more control over the shape is to mask the part you are interested in and split with masked points. Then with the new subtool go to the Geometry menu and make a Panel loop. That way you will get a smooth and clean tool with the volume extruded.
While I had all the pieces of the helmet ready in ZBrush I tried to be very careful with the flow and connection between each part. All of them should be connected to the next one, creating that compact sensation. You would have to be able to see each piece of the helmet but have the feeling that it is only one strong form.
After all this process, it’s time for the detailing work: using alphas and some brushes to damage the surface a bit and creating the biggest details — the smallest would be created in the texture process. The panel lines were created with the DamStandard brush with the lazy mouse activated and the extruded areas with alphas. The screws were added with IMM brushes. Every time I create a part with IMM brushes I split them apart to have all that little pieces together in a separate subtool so I can then apply a specific polygroup to them easily.
Decimation & Retopo
When I have all the high poly ready it’s time to Decimate the model and attach the different parts thinking of the baking process. I applied a different ID color to each part of the helmet so I could bake an ID map later before merging the tools and have the final FBX with the High Poly ready to bake. For that helmet, I only create three different subtools carefully named: the head, named as “retopo”, the extruded volumes on the back of the head named as “Celulas”, and the “neck”.
Moving to 3ds Max, I’ve imported the decimated version of the helmet and started the retopology process. I worked with the “Graphite tools” for editable poly: started creating a single plane, converting to editable poly and using the “Draw on surface” option, selected the tool over the helmet and began to create the new topology with the Step Build tool.
Finally, I created the UVs, packed them in UVLayout and prepared the model for the baking process in Substance Designer. At this point, it’s very important to have the same pieces separate as in the high model: the helmet, the cells and the neck named in the same way.
Substance Designer allows me to create all the bakes I need at the same time with almost one click, I just need to set all the parameters correctly. I’ve imported both models in Designer, the high and low poly. Selecting the low poly model I can bake all the detail (right click, bake low poly model information) and configure all the parameters I want.
The reason we named the low and high poly in the same way is because Designer allows to bake the pieces with the same name individually, so we would not have problems with the parts of the neck which were very close to the head parts that would cause some artefacts in all the bakes and bake at the same time all the pieces together to get, for example, an AO map self-occluded.
After baking all the maps, I usually clean them with Photoshop and then start the texture work in Substance Painter.
One of the mantras I always try to follow is to keep things simple. Substance Painter is a powerful software to texturize and has a lot of possibilities, but it’s very easy to lose the focus in it and end with a model with too many details and noise. I’ve tried to organise all the layers in groups, one for each material.
Here are some examples of how I organized the materials:
I always work with a base layer and start adding details with fill layers which I applied a smart mask to and some filters if it’s needed. For the final details, I’ve tried to put the wearing on the last layer to push the detail on the edges and a Sharpen generator. For the metal parts, I find interesting to modify the specular values individually in a specific layer, controlling the values with a levels generator in a mask or even changing the colors of the specular channel to create some iridescent effect in some areas.
As for how the helmet glass was created, first I added a black base layer with a lot of glossiness. After that I added a layer to make the bevels on the panel lines more apparent with the curvature masked and a blur generator, then I generated some dirt around the corner of the glass with a smart mask, another Dirt layer with high gloss values and finally, the yellow lines with an emissive channel activated.
The messages on the helmet were created in a layer apart with an emissive channel with a simple texture and the text masked with the lines. All the emissive parts of the glass and the text would be exported as a single emissive texture to use in Marmoset as a heat map.
Of course, every layer was included in a principal folder, masked with a paint selection, modified with the Color id selection and baked in Designer.
Rendering in Marmoset
Now it’s time to render in Marmoset. You can create a scene in a few minutes and have really great results with a few lights on the set. I think it’s one of the most effective real-time render software solutions right now. It gives me almost all the facilities to create a nice image for my portfolio and the workflow for texture. Shading is absolutely the same than in other real-time engines, so you can migrate all the work, for example, to Unreal or Unity without making any changes (almost any changes).
One of the first things I approach when I create a Marmoset scene is tuning the render light settings and creating a Shadow catcher so that I could create a great atmosphere with an invisible ground that projects shadows and allows a more realistic behavior for the shadows and the light reflections.
With the model imported, it’s only a matter of creating different materials.
It was pretty simple for the helmet part: I just dropped the correct texture in the pertinent slot, added an occlusion channel and an emissive one with the heat option plus the emissive texture for the yellow parts of the helmet glass (that’s how I could control the intensity of this area without changing other parameters of the glass. Moreover, the heat intensity allows to create some nice gradients).
For the “Danger” messages on the helmet, I duplicated the message on the glass and created a specific material for this one with only a base color texture, the alpha texture for the transparency and the previous heat map without the contour lines so that I could control individually the intensity of both emissives. To create the parallax effect of the text I just had to move the duplicated geometry to separate from the helmet. I also created an extra geometry for the Helmet glass to make the reflections more dramatic with Marmoset’s HDR. Though I only activate it in some of the sky presets. For the final versions of the renders, for example, this geometry was hidden.
Working on the light set up, I started with three classic and simple lights: a main light, a fill light and a rim light to the back contour of the model. The next step would be to create more additional lights clicking on the miniature of the HDR preview just to fill some specific areas of the model, some rim lights and also eliminate some shadows that could be annoying. I’d got used to group together all the lights inside the Sky layer so when I rotate the HDR in the scene, all the light will do the same. It’s an easy way to try some different lights configuration very quickly.
For the final shot, I configured the camera presets using a field of view between 25.0 – 50.0 mm, added some distortion and posted effects to achieve a little bit of chromatic aberration, touching the sharpen strength and adding some vignette effect.