Ashita e - Work In Progress

Hi geeks!

I finally found time to update an [old artwork project and I try to maintain the progress each week. Most of the elements were initially created in 3ds Max but since I started to feel more comfortable with Zbrush, I decided to handle the character work in sculpt.

Here are some pictures from the recent updates:

(Original poly modelled head)

For the male character, I decided to have a 20/80% Max/Zbrush workflow to avoid headaches on retopology and unwrapping:
Before adding details sculpt to the head I decided to move from the dynamesh to clean topology version. At first the Zremesher from polygroups (using polygroups from paint option) result were kind of good but it lacked some real edge loops around the eye areas therefore 3ds max helped to draw a clean topology for the lower part of the head that needed to keep its symmetry. However Zremesher gave a good result on the top part of the mesh, it only needed a few poly bridge and adjustment in max to stick the two meshes together.

Original Zbrush Re topology attempt

Zbrush + 3ds Max topology before being merged forever

With a good topology it was time to finally start some adjustment way easier to manage a subD 1 like on the eyelids, no more wobbly skin there! Then I could add details with alphas on the skin part.

Topology talking, this is a non animated project however I created a “good” topology for the faces of my characters anyway. It helps in many process coming after the modelling step: easier unwrapping, easier expression editing, good flow of polygons for the displacement in rendered images.

The back of the neck needs to be refined

These cloth brushes are awesome, no more waiting for max cloth modifier to painfully move faces in real-time. The hands comes from the model created a few months ago, less scary though.

Ah, the geek part… You may remember the method I used a while ago to create cloth wrinkles in the earlier versions of the clothes for that character. Time changes, workflows evolve! Still using Substance software, this time with Designer, I created a new cloth wrinkles collection with multi angle lighted pictures of some fabric, trying light and heavy fabrics to get more variations in the results. It works pretty good and can be easily used in Substance suite or directly in Zbrush as Alphas!

As Zbrush can now deform surfaces with cloth brushes easily, why not use this process to also create Alphas? I may create vector brushes as well for full 3D distortion.

Left: alphas from Zbrush cloth on a plane / Top right : Height maps from texture scanning / Right : Zbrush simulated cloth + cloth brushes strokes + details from generated alphas

One month ago I worked on some problematic elements of the scene. Firstly I tried to find a way to easily model the very soft and light fabric that covers the female character, trying to mimic the cloth you can see on marble statues. This was achieved in Zbrush with the dynamic menu, the cloth hook brush and by adding/exaggerating details with the standard brush using the basic brush or pre-made alphas. The test looks conclusive and will be applied to the final scene.

In the mean time I adjusted characters poses and camera angle, once this step will be validated I’ll be able to play with all the characters and bed clothes. Fun ahead.

Basically using firmness at 1 and added a lot of simulation steps in Zbrush
Then the mistakes are corrected with brushes

The environment so far

Then I moved on the eye shader. It’s been years I used the same method to create eyes, I thought it was time to learn new things!
The model is half Zbrush sculpted, half substance designer textured then it’s only Standard surface shaders magic occurring in 3ds Max.

Black (original design) and white variant

The characters will be posed with the help of simple rig in Max then adjusted in sculpt here and there when placed in the environment.

I’m actually working on some hard surface elements/props but this is fully done in 3ds Max therefore I’ll come back for an update here when I’ll go back to the characters.

See you!

I finally found some spare time to work on this project! Many adjustments have been done on the environment, some props were added, other found a new location and the light scenario evolved once again.

One the main goal I had was to finally get the multi 3D hands to be converted as an IMM Curve brush inside Zbrush. after some trials and error I finally got the basic setup and I could even get the original hand UVs and textures created in Substance a few weeks ago! The not really issue I have now is to find a way to texture these longs arms coming from the curves, I’m pretty confident about finding a way to fix this in the coming days.

Next step: create many poses from the original hand model in 3ds Max to convert all of those as IMM meshes.

First steps – Almost there – There

Palm proportions has been adjusted

A few of the many poses that will be needed to complete the set

After some lighting tests I noticed the tissue that makes the link between the window and the air conditioner attracted too much light as its material is translucent, therefore I thought about creating another object: a cardboard with many duct tape stripes. This one was fully modelled in Zbrush with the Zmodeler brush and many Zproject on the different subtools. It will need a few more stripes and the model will be ready: no more attraction for the eye of the viewer!

Placeholder – Zbrush model – Substance designer

Two other news:

  • The main character map details could finally be baked with high quality textures
  • The couple of paper balls staying here and there in the room are now part of a model pack

I may create some close up render aside the final camera angle

I had some hard times trying to get a correct displacement and normal maps from Zbrush using the re projection method. The details looked good inside Zbrush, however the face had a lack of details once in 3ds Max. As I want to optimize the scene, there is now way I’ll use 8K texture or some render crash will happen with the rest of the models, indeed, many of the furnitures use subdivision and displacement at render time. However I already started to optimize the Ram usage by using 8 bits Jpeg files instead of PNG/EXR but at the price of bad quality on some areas on some models.

My solution to get fine details was to simply bake the HD sculpt of the low poly face in Substande Designer, it was fast and effective! Now the main details are here, I’ll be able to add some on the rock area while also painting the colors in Substance Painter.

I pushed away this next big step for too long, now it the time to dive in sculpting bodies and make them come to life with textures!The work started by adjusting the bodies poses, once again and also by adjusting some proportions on the female character. Then I finally jumped on the multi UDIM tiles process. I initially thought that 1 UV tile for the the upper body would be enough for this character but after some poor resolution baking results and mostly after seeing the high details results I could get on the male character: The female upper body was split in 3 UV spaces with a large one for the face. This means the baking had to be done in Painter.
The face proportions were adjusted:

Legs proportions adjusted:

At first, the Zbrush baked displacement map looked good inside 3ds Max (minus the resolution) but when I imported the baked results from Painter or Designer, the faceted look knocked on my door. It certainly comes from the way the different softwares internally manage the subdivision. The solution I found was to avoid using the subdivisions option in the Arnold properties modifier, only use the Displacement options and add an Opensubdiv/Turbosmooth modifier below the Arnorld properties modifier. The old way. Indeed, Arnold uses Catmull–Clark subdivision model that is not compatible with baked displacement map generated from Substance.
Zbrush details VS 3ds max 1 UV tile details:

Height map used as “displacement” in Painter VS Displacement inside 3ds Max and Arnold:

Needless to tell the multi UDIM workflow gives great details on the character’s face and the diffuse/roughness/additionnal bump painting works like a charm.
Original low poly mesh – Painter – Arnold:

The skin shading looks great, the details are good enough for the scale the character will have in the frame for the final render:

Let’s talk about clothes!I remember working on the cloth simulations of Noël en Alsace project a few years ago, all this knowledge is still there and has been updated with new experiments. It was time to replace the sheets placeholder of the scene! It took some trials to get the desired volume, and with the help of some old scanned paper height textures used as Blend map in the cloth modifier, I got the basic shape of the duvet to be edited in a next sculpting step.

Top: Placeholder / Bottom: a very tired duvet

High frequency details blend map – Medium frequency details blend map – Medium with a higher blend map value

Here I tried a lot of ideas to get really close to a real fabric behaviour. For the trousers, I used a vertex group around the hips area, with a surface property to stick to the character body, that is only activated a couple of frame after the start of the animation, this way the bottom part of the cloth cover the feet area.
Here again, I used an animated blend map to shrink the surface, resulting in medium wrinkles creation. About the simulation steps: the character go into his final pose, then the bed goes in its final pose to lift the clothes under the body and finally the second character cover the first one with her leg to slide the fabrics. Same process for the shirt.

T pose to Final pose

The vest used a similar workflow but instead of running the simulation on a high density mesh, it was run on a low poly version. The result could be used as a target mesh for the real vest through a Skinwrap modifier. Controlling a high poly mesh this way ease the process to adjust problematic areas.

All the cloth elements after adjustments

As the simulations took some time to be completed, I jumped on the 2nd character body adjustments. Thanks to Zbrush Level of subdivision workflow I could easily modify the low poly mesh while keeping all the details in higher subdivision levels. Some parts were drasticaly modified.

Top: before / Bottom: After. And I wondered why my characters shoulders looked wrong all these years

You know me now, when I don’t have enough time to work on my artwork, I model quick props here and there. The constraint I’m applying now, is to be the most efficient possible, this is an aspect of 3D creation I’m trying to give to my students: don’t waste time on details and work faster.

A new light source has been added, the scenery was to dark to my eyes, and this is still a work in progress! After watching last Hayao Miyazaki movie, the environment got me inspired to enhance my scene.

So far I tried to optimize the final scene to test render passes at full resolution, 3512 x 4961, it won’t be an easy task but the CPU workflow seems to hold the whole universe on its shoulders and can render passes between crashes. More Ram will surely be needed soon.

Somehow, Palpatine retur… My brain returned on learning Blender. While I edited a new workshop about Camera and Object tracking in Blender, one thing leading to another, I started to launch some render tests of the models used in the workshop and this reminded me the good old times of testing things in 3ds Max and Mental Ray.

The transfert of my entire project to Blender started a couple of weeks ago, despite the fact it has some really annoying process that are way more smartly handled in 3ds Max (FBX, viewport navigation, align tools and so on…) . To be honest, I tried to render my scene in Blender and Cycles because, despite of all the optimizations done in my 3ds max + Arnold scene, at some point it couldn’t render it anymore with only 32Gb Ram and 12Gb Vram. Until I get a better machine, let’s try this free software bad 3D artists are talking so much about

The good news: The learning curve is pretty fast, I could almost transfert all my 3D, 3ds Max and Arnold knowledge to Blender and Cycles. Some other concepts will take more time, when you’re used to the same workflow for 20 years, it will ask a little self control to not yell every time you find something stupid. Like updating the displacement, normal or roughness textures and the node going back to SRGB instead of keeping Non color interpretation (ง ͠ಥ_ಥ)ง

The whole bedroom and the main characters are almost ready. The man even got his eyebrows and eyelashes created by editing curves in a particle system. His two hands are scheduled to be skinned and sculpted for next week!

Export your FBX meshes as editable poly to avoid triangulation but even with this knowledge, artefacts can be there


Displacement is working nicely but due to the scene heaviness I may use another workflow based on decimated meshes

For now I’m only using a couples of modifiers like Solidify, subdivision or Displacement, Curves made in Blender will come on the next project

pain to set transparency shadows on windows

Painting the skin texture of this character took a couple of days. The procedural process, adding grunges and generator here and there used the many textures already created a couple of months ago, Height, normal and cavity.

As the details comes mainly from the high poly version of the mesh, I could focus on the different blood layers + some additional ones to break the overall look. However as Painter and Designer are limited to bake proper displacement maps to be used with Catmull Clark subdivisions applied on models at render time, I may go back in Zbrush to create the Displacement maps using a smart workflow to export UDIM textures for the 2nd character. Indeed, it currently has only 2 levels of subdivisions and it need way more to be able to notice all the details coming from the height map. + we can clearly see the low resolution on the nose area.

As far as the transfert goes, I could replicate many of the 3ds Max + Arnold scene to the Blender + Cycles scene. The Light scenario is similar from the Arnold lights as we can also use temperatures to set up the light color with nodes in Blender. The overall render looks different from Arnold but I’ll have to deal with it.

The complexe Hand + Arms material from Max could be created in Blender Shader editor with a mix of nodes. I could test the Drivers to control similar value between the two shaders.

As said earlier, the fur generation on the first character could be done quite easily (the knowledge from many years of practice and bugs with many fur generators kicked in) and I’d like to focus on long hair generation with Geo nodes next for the woman character.

The tri planar option directly available in the image texture node is pretty smart but it misses a few options available in Arnold

No visible seams between arms (tri planar workflow) and hands materials

Some full res tests to see if my computer could handle it (don’t we love moiré)

New models have been created: headphones, fully modeled and unwrapped in Blender to push myself to learn the software a bit more. Everything was quickly textured along with other props. Other models have also been adjusted, like all the bedding, including the duvet, on which I spent a lot of time working on the base material to achieve a tangible fabric.

Cloth pull brush - Transpose cloth FTW

However, as I’m not yet confortable with Blender skinning process, the female character was rigged, skinned, and posed in 3ds Max, then the body was adjusted in certain areas in Zbrush to fix some skinning issues. Several poses were experimented with before returning to the initial intention:

As mentioned in the optimization section of this article, the hands were optimized through a process in Zbrush to obtain a lighter model that takes less time to load during rendering. The same applies to the hands of the main character.
47.5 Million polygons to 2.8 Million polygons

The final challenge of this illustration. I would have loved to use Ornatrix to create the hair for the second character, but I’ll have to work with Geo nodes instead. I regret that some basic functions, like managing the frequency of a frizz hair, are not directly accessible in the modifier, and that you have to dive into the node graph to find the right value to modify, similarly for applying the effect along the hair. At the moment, I’m at the stage of defining the main volume using curves that will serve as guides for the creation of the hair, strand by strand:

experimenting with the geonodes