Ashita e - WIP

Hello Geeks,
Let me introduce this project I’ve been working on for a few years on my spare time:

The original idea was to create a scene with characters to improve my 3D skills on modelling, texturing, lighting, etc. I initially started the scene in 3ds Max back in 2015 and I recently moved (early 2024 if I remember well) the whole project in Blender because at the rendering step, despite all the optimization done in the scene, 3ds max x Arnold could not handle the scene.

Surprisingly Blender could launch all my render tests (CPU) therefore I decided to finish the work in Blender for this artwork. Taming Cycles, the shader editor, correcting importing elements, it took quite some time but in the end I’m really surprised by some workflow inside Blender. One of the most challenging aspect of the artwork was to work on the female Character long hairs. Here again, it took some times to fnd the correct workflow to create this kind of geometry.

Here are the progress done since the project moved to Blender:

(news copied from a january post on my blog)

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!


correct triangulation import on the right



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




coming from Arnold workflow, it was a real pain for me to set transparency shadows on windows here

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 useful 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:



See you in next post!

10 Likes

(news copied from a february post on my blog)

Before sharing the progress on the artwork, let’s talk about optimization on pre-calculated projects.Those of you following my work since Versus: The way to shadows know I’m used to find solutions to avoid crashes at render time, specially on animated or intensive VFX projects like Unexpected Gifts or Christmas in Alsace.This time, as my current artwork is full of details in the models and textures, I’m at a point I need to drastically optimize my entire scenes. Even if you’re working on killer rendering machines, for big projects I encourage you to optimize your scenes and files using the following steps. Of course, everything depends on the scale of your project, as for mine, here are the processes I used:

Convert textures

Using jpegs over tga ou png takes less time to load the textures when you launch the render. Same for using 8bits vs 16bits images. Of course you can keep 16 or 32 bits for your normal and displacement maps if you want fine details and avoid stair stepping look.Converting your images texture files as TX files will also reduce loading times when renders are launched.


Png textures took 4min03 VS Jpeg textures took 3min16 to load and render – CPU - The info here, is the time difference, not really the time itself, everybody using different machines

Normal VS Displacement

Keep medium/fine details for normal maps only unless you have extremely closeup shots on a detailed mesh, keep the low and medium details for the displacement maps and high/fine details in your normal maps = you won’t need to subdivide your meshes so high at render time, or try to smartly subdivide your model to get higher polygones density on detailed displacement map areas. You can also use extremely fine details from a 2D bump map.

Stair stepping in the 16 bits (left) VS Smooth results with the 32 bits displacement map (right)


Be smart when using these texture maps to avoid exaggerated results

Decimation VS Subdivision

On static meshes (not deforming with skin modifier) do you really need to subdivide your mesh 7 or 8 times at render time? I don’t, therefore here is the destructive workflow I used on most of my static meshes:Using a shoe from my scene as example, I manually subdivided the meshes with edge loops to get an homogeneous topology on the surfaces, added a few subdivisions with turbosmooth or opensubdiv (subdivision in Blender) then I imported the mesh Zbrush with GoZ, subdivided the mesh a couple more of time. I applied my displacement map and finally used Decimation master plugin to drastically reduce the amount of polygones while keeping a certain density to feel the displaced effect. Of course you must keep the UVs during this process to be able to use your already created base color, roughness and normal maps.This way, you physically create the entire rendering process on your mesh but the decimation process give you a lighter mesh. For all the hands in my scene, the subdivision process cranked the polygones count to 47.5 million, the result has been reduced to 2,8 million polygones. The missing details will come at render time with roughness and normal maps.


CPU mode

UV Optimization

A brief word about unwrapping. As my project is a still image, I focused on the parts that will be visible in the camera, meaning the non visible parts have tinier UV spaces, this way I could get more details on my textures.

Meshes Optimization

The more modifiers you’ll add on top of your mesh, the more time it will take to handle it at render time. Try to collapse/apply the modifier on your meshes as much as possible. This is the last step before rendering the final scene. In 3ds Max, if you have a non animated noise applied on a mesh, collapse it to an editable poly, same for unwrapping, etc.Also, if some of your meshes go out of frame and they don’t have a particular impact on what you see in the camera, like a projected shadow or light bounce affect, reduce the poly count by deleting the non visible polygones. This is what I did on the hands, walls and floor meshes because of the decimation process used earlier. If you want to keep the non visible meshes, drastically lower their poly count, keeping the basic volume.


All that won’t be seen in frame is either deleted (arms) or decimated (walls)


The non visible part of the bed (covered by the blanket) was cut and heavily decimated

Results

Less time loading before the render finally starts because there is less subdivision processes on each meshes. Textures load faster (and depending on your specs: you run out of memory less often) = overall shorter render times.

WIP

With all that said, I began applying these ideas to be able to launch renders using Cycles. Since my current GPU is too weak, I’m now turning to CPU rendering for various advanced rendering tests. Good news, it works, and only one major element is missing in the final scene: the hair of the female character, which I’ll come back to at the end of this article.Since the beginning of these optimizations, 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.



The decimation workflow has been applied to the book pages as well


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:
TT_WIP-20-Poses

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 material mix for arms + hands was more complex to create in Blender than in 3ds Max

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

3 Likes

From june 9th on my blog:

The most important news: I’ve upgraded my machine and I’m now able to fix many performance and rendering issues. More at the end of this article.

Hair & fur

The woman has now nice long hairs running all over the bodies and bed. I heavily relied on Geo nodes instead of using multiple modifiers, I needed more control as I can get in Ornatrix. The overall volume will need more work in the coming days but the main shapes are there.




Lighting & mood

I dediced to test a different light scenario, first by playing with light passes colours in compositing then by editing light temperatures in Blender and by adding new light sources. I want the viewers to feel the duality expression of the artwork.


Give me a hand

After some render tests, again, I noticed what details could be edited, modified to complete the picture. Basically: more hands and soon, more details on the faces. About this last step, I still wonder if I’ll go with texture editing in painter or create an paint over in post…

More Power

… And I’ll probably go with adding details in Painter and Zbrush as my updated machine can totally handle this kind of edit. Initially the render resolution was set to 3512x4961 px. The final resolution will be 4961x7008 px and will be rendered using CPU. On the old specs, 3512x4961 resolution, at around 512 samples (low), it took approximately 20 to 24 hours to render 1 light pass. Now it roughly takes the same amount of time but for ALL the light passes and without crashes.

Now is the time to set a real deadline and contact media platforms. This is the trap when you work on a personnal project aside pro projects, it keeps getting post poned, you’ll always find something that can be done in a better way, totally changed, etc.

See you for next post!

5 Likes

This is the last Work In Progress post of the project!

The past three months allowed me to finalize the project. Just as I was about to finish writing the making-of, I went back to editing the long hair of the female character. I was frustrated that I couldn’t achieve the vision I had in mind: a river of hair flowing and winding between the elements of the scene, due to the technical limitations of the software, whether 3ds Max or Blender.

While editing this making-of I started R&D process on a paid work involving animated hairs, long story short: I discovered a way to get exactly the hair main volume and shapes I had in mind by using the Hair Strips workflow. Unfortunately, combining a Push Away from Surface modifier on a Hair Strips object make the software unstable and not responsive anymore at some point. The secret is, baking the original Hair Strips mesh to an OX Baked Hair object and from there, no more incompatibility issue.

So, I decided to return to 3ds Max to modify my initial workflow with Ornatrix which required manually tweaking the curves of the main strands almost one by one. After consulting with the Ornatrix developers, they informed me that the “Push Away from Surface” modifier works better with closed geometries, which solved many issues.

Once the hair editing was completed in 3ds Max, the strands were converted into splines and exported via Alembic to be imported into Blender, where they were converted into shapes to apply the necessary geo nodes, transforming them into hair for rendering.

These few lines to describe what took several weeks of work.


Guides brushing


All the hairs converted to splines / The hair groups before export


Specific render passes helped to better visualize collision issues

Final render passes are launched, the result will come soon!

4 Likes

Thank you for such a detailed progress, the whole image is incredible and the hair looks fantastic.

I look forward to see the final image.

1 Like

Thank you DNorman!
Here is the final render!


Thanks for reading my progress on this artwork through the last years!
The Making Of is almost entirely edited.

14 Likes

Really nice work - concept, execution, all of it.

2 Likes

The complete making of article is finally available on my website: https://moonday.fr/yuuzora-no-kamihikouki-mo/

And on ArtStation: https://www.artstation.com/blogs/1k0/1ZGlW/un-avion-en-papier-dans-la-nuit-making-of

Thanks all for your kind words!

1 Like

This is awesome in every way! Thanks for your work!

1 Like