Table of Contents Show
Archive notice: This article was originally published on January 15, 2019. Links and embedded videos are preserved as part of the historical record.
Design Sculpt and basic shapes
As a basis for the head, we first created a design study in ZBrush. Starting with a PolySphere and with the help of Dynamesh, we had to work out the basic proportions and volume of the head based on our references. During the sculpting process, we first worked symmetrically in order to be able to approach the desired proportions more quickly and not have to work with an asymmetrical mesh when retopologising. Once the basic shape of the head had been completed to our satisfaction, the next step was to retopologise it in 3D Coat and apply a UV layout. We then imported this basic topology into ZBrush and subdivided it sufficiently to transfer the details of the design script to the new mesh using the “Reproject All” command. We masked projection errors in the problem areas (usually in the undercuts such as behind the ears or in the corners of the mouth or eyes) and projected them separately or corrected them manually. This provided the basis for working out the likeness and expression.
Tip: Most projection errors can be easily equalised with the Smoothbrush by applying it to the tips of the projection errors and smoothing them back to the actual surface. It is usually advisable to start this process at a lower SubD level, as the projection errors can often not be smoothed effectively at the highest SubD level. However, it is still necessary to repeat this step at the higher SubD levels, as the remnants of the errors usually persist down to the last detail.[/vc_column_text][/vc_column][/vc_row]
Elaboration of likeness and detailing
Before we started to refine the likeness and details of the head in ZBrush, we imported a first proxy mesh of it into C4D to adjust the orientation of the head and the camera perspective to our reference. An initial lightmatch using HDR Light Studio helped us to use the resulting shadows as an additional reference for working out the primary and secondary volumes of the head. We then imported this adjusted version into ZBrush to adjust our workpiece to the desired pose. Now we adapted our previously symmetrical basemesh to the look of our reference in several iterations. To make this process easier, we had imported the reference image into ZBrush beforehand and placed it on the floor grid.
Tip: In the Draw palette, this texture can be placed on the front plane and optimally positioned using the sliders provided for offset, rotation and scaling. In fill mode 3, the transparency of the geometry and the image plane can be balanced using the Enhance Factor and Enhance Opacity. We recommend saving a ZProject in ZBrush, as the image plane and its alignment are not retained in the ZTool format.
We also set a keyframe for the perspective view in the ZBrush timeline, which defined the best possible approximation to our camera perspective in C4D. The StandardBrush, Claybrush, Movebrush, DamStandardBrush and RugasBooster Brush were primarily used to adjust and develop the Likeness.[/vc_column_text][/vc_column][/vc_row]
Once the likeness was sufficiently defined, we began to work out the high-frequency details. We used additional references from 3D.SK, as the reference material from the video clip Preview: Advanced study of the symmetrical basemesh with stand-in elements to better assess dimensions and proportions did not allow many insights into the finer structures of the face due to lack of resolution. Each individual detailing pass was placed on a separate sculpting layer in the ZBrush layer palette in order to be able to optimally coordinate them afterwards using Layer Intensity.
Furthermore, the basic shape can also be easily adjusted and, above all, smoothed without losing the information of the high-frequency details. Of course, it makes sense to switch off the high-frequency detail layers during this post-processing. It is important to ensure that you do not make any corrections to the basic shape on the layers that contain the high-frequency details. For the creation of the actual details, we only used a few texture alphas with the dragrect stroke, but rather inverted stray strokes with a round alpha (such as alpha 36) and a crosshatch alpha (such as alpha 56) and set some custom alphas for the basic structures. The primary drape of the skin was created manually using the Dam Standard Brush and the Rugas Booster Brush. Finally, we created a kind of bump map with microdisplacement details in Photoshop, which we transferred to another sculpting layer in ZBrush using Mask by Intensity in combination with Infl ate.[/vc_column_text][/vc_column][/vc_row]
Basemesh & Sculpting
To create the body, we used a female basemesh that had already been rigged so that we could start with the manual work in C4D: even the finest pores and skin wrinkles could be approximated using the high-resolution desired pose. This was fundamentally adjusted in advance in ZBrush in a symmetrical pose. Once the pose was sufficiently congruent with our reference, we imported the geometry into ZBrush and refined it further there. As with the head, this process took place in several iterations in order to achieve a result that was as accurate as possible with the help of the lightmatch.
Here, too, we looked at additional references (3D.SK, photo shoot) in order to better understand the exact anatomical aspects of the pose. The sculpting brushes used are of course the usual suspects that have already been used to create the head.
Hair & Fuzz
The first tests to generate the hair via fibre mesh directly in ZBrush unfortunately did not lead to the desired result. The different hair structures, from the scalp to the woven plaits to the open plait ends, posed a particular challenge.
For the flexible design of the hairstyle, especially the braids and individual strands, we therefore chose a diversion via Maya. The Geo Maya Hair 2 script from Thunder Cloud Studio gave us the freedom to generate the proxy geometries of the individual hair elements in ZBrush and adjust them conveniently in order to fill them individually in Maya with PaintFX Hair. The PFX hair objects were then converted into curves and transferred to C4D as FBX. The splines imported in this way could be converted to native C4D hair objects.
The beard hair consists of native Cinema 4D hair, which enabled direct editing. All deformations of the hair material could be accurately translated using the Arnold render tag for curves. The additional body hair, so-called “fuzz”, was created as fibre meshes in ZBrush. On the face, however, a customised mask had to be groomed beforehand in order to achieve the realistic variance in length and density of the hairs. An export of these fibre meshes as curves in OBJ format cannot be imported directly into C4D. The Riptide Pro plugin from Skinprops was necessary to overcome this limitation.
When detailing the body, the same techniques were used as for the head. Here, too, we worked on individual layers to achieve the necessary flexibility and used the familiar brushes. For the hands in particular, however, the additional alphas that we generated from the material in the Surface Mimic Library (www.surfacemimic.com) were extremely helpful in creating the most realistic look possible.
Clothing & accessories
The bikini was mostly sculpted in ZBrush. The IMM Curve Brushes were particularly helpful here for the seams and the strings of the bikini. For the seams, we modelled a loopable geometry with two individual end pieces in C4D, from which several curve brushes were created in ZBrush. After fitting to the body, we exported the geometry of the cords and seams at the lowest SubD level and assigned UVs to them in C4D in order to be able to optimally place and tile the planned microstructure of the fabric. This UVMap was then reimported into ZBrush. The base mesh for the actual textile of the bikini was created in ZBrush via meshextract from the body geometry. We again consulted our photo references to work out the drapery, fabric likeness and tension across the body. The necklace and bracelet were created in a similar way, also using Curvebrushes. After identifying the flowers from our template as a subspecies of the Cosmos Aster, we were able to purchase a biologically correct base mesh of this particular flower online. However, further elaboration of the fine details and textures was necessary to match the quality of the flower arrangement to the rest of the model. To achieve the most realistic look possible, each flower was individually customised and positioned to match the reference[/vc_column_text][/vc_column][/vc_row]
Texturing
In order to do justice to the high resolution of the planned 4K rendering, the textures also had to be created in a corresponding size. We therefore opted for 8K maps for the head and body. A 4K map proved to be sufficient for teeth, gums and flowers.
To further increase the quality of the textures, so-called cross-polarised photos were taken live from a model. The advantages of this are the flexible lighting in the desired pose and the pure diffuse information in the image, which stands out virtually without specular. This saves the post-processing and retouching of highlights and reflections in Photoshop. The basic basis for the colour maps was a ZBrush Polypaint and selected areas of the texture photos, which were integrated into the Polypaint via Spotlight.
Further adjustments were made in Photoshop, such as the multiplication of a cavity map to increase the contrast of the details, as well as selective colour corrections to optimally balance the interplay of diffuse map and subsurface scattering.
Lightmatching
During the sculpting process, the latest ZBrush model was loaded into C4D in order to recreate the camera perspective and the lighting situation and, as already mentioned, to match shadows. The new C4D live plug-in from Lightmaps HDRLightStudio was used for this. Based on the light and shadow conditions in the reference image, a corresponding HDR map was created in real time. To emphasise the plasticity even better, additional light accents were placed in the HDRMap alongside the main light.
Shading
The shader selection in Arnold for C4D already included the standard and skin shaders. However, at that time there was no optimal way of mixing them or blending them via layers with masks. A good alternative here was a selection of freely available shader collections for Arnold (https://bitbucket. org/anderslanglands /alshaders/ wiki/Home). As our prototype of the C4DtoA plug-in already supported third party plug-ins/shaders natively, Anders Langlands’ alShaderpack could be used for all objects in the scene. The alSurface shader was particularly suitable for realistic skin shading with three subsurface scattering layers. The physically realistic dimensions of the model were important here. In order to balance the SSS effect for the skin accordingly, a weight map was created and the depths of the individual SSS layers (radii) were adjusted individually. Both the alSurface and alHair shaders were used for the hair, flowers and jewellery. Custom shaders for blending or fading, procedural noise and pattern shaders as well as colour (room) corrections, also part of the alShaders, further simplified the workflow. As each shader is represented as a separate material in C4DtoA, the same noise or the same layer shader could be assigned to various fields in other surface shaders at the same time, for example. This already created the fl exible feeling of a node-based approach. Arnold’s interactive render mode (IPR) in particular made shader design much easier and faster. Once the scene has been pre-cached, individual parameters can be modified, whereupon the preview in the IPR is updated virtually in real time and reflects the changes.[/vc_column_text][/vc_column][/vc_row]
Rendering
Solid Angles Arnold is a remarkable renderer. It offers excellent quality with extremely optimised performance.
It is also relatively easy to use, which has probably contributed to its widespread use and popularity in recent times. Arnold shows its strengths in the final rendering. With more than 90 million polygons, 500,000 hairs and a dozen 8K texture maps, Arnold itself only requires around 8 GB of RAM. The pre-calculations and export by C4D are completed in just under 2 minutes and the preview begins to gradually resolve from rough pre-passes to the final quality.
The final beauty pass was only colour corrected in Photoshop to match the video look of the reference even more accurately.
The entire project was created over a period of six months, and the actual time required can be estimated at around six weeks. [/vc_column_text][/vc_column][/vc_row]