Process Write-up: Creating Damien 9

I love the new Genesis 9 base. I love that the unified mesh is back, instead of having separate meshes for male and female. I love the solid foundation kit that comes with it, and I love how much better expressions are compared to earlier generations.

What I don’t love is that G9 is still young, and as such there isn’t a lot of content out for it yet – at least not compared to the extensive catalogue of items I have for older generations.

But why not put that older content to use? It’s a tedious, but not very complicated process, and there I’ll go through the steps for bringing Damien, a Genesis 3 character, to Genesis 9.


If this process write-up is useful to you, consider giving me a small tip.

ko-fi


Having a look at Damien

Damien is a character for Genesis 3 Male. He was released in early 2017, so now he can frequently be had for cheap in various flash sales and grab bag deals.

I’m particularly interested his demon skin, with its wonderfully exaggarated and gross texture, and so the first step is to load up his skin and have a good look at it.

I can see that the available maps follow this pattern:

Map Used for
DamienDemon<Zone>D_<UDIM tile>.jpg Base Color
DamienDevil<Zone>SSS_<UDIM tile>.jpg Translucency Color
DamienDemon<Zone>S_<UDIM tile>.jpg Glossy Layered Weight, Top Coat Weight
DamienDemon<Zone>B_<UDIM tile>.jpg Base Bump

Technology has moved on quite a bit since Damien was released, and his age shows: His skin uses Gloss rather than Dual Lobe Specular, and has simple greyscale bump maps instead of normal maps. He has painted-on eyebrows and no browless option, and because it uses the G3 UV layout, there is a noticable seam where the head and body textures meet. It also appears that a lot of the detail I want is actually in the HD sculpt and not in the texture.

I’m not too worried about how his skin shader is set up. I’ll be using PBRSkin when setting up Genesis 9, so the original skin shader is really just for inspiration.

The actual texture maps need some work, and this is what I need to do:

  1. Bake the HD details to normals
  2. Clone out the painted-on eyebrows
  3. Convert the bump maps to normal maps
  4. Combine the baked HD details and converted bump maps

I use ShaderMap Basic to do all of these steps.

Baking the HD sculpt to normals

Having HD details is nice, but a normal map can hold all the detail I want and is far easier to convert to G9.

Exporting from Daz Studio

Load in a Genesis 3 Male, and dial in the Damien Demon HD shape. This gives me the full HD shape, including his body horns – weird spiky bits on his arms and legs. The body horns don’t appeal to me, so dial those back down to 0%.

Activate the Geometry Editor Tool and hide unnecessary geometry, just to make sure it doesn’t interfere with the baking process. The following surfaces are unnecessary for this:

  • Cornea
  • Eyelashes
  • EyeMoisture
  • Irises
  • Mouth
  • Pupils
  • Sclera
  • Teeth

With G3M now being an eyeless, hollowed-mouth abomination, export two copies to OBJ format:

  1. One copy at Base Resolution
  2. One copy at High Resolution

Ideally I would export the high-res version at the same SubD level it was sculpted at, but this information is not available for Damien, so I exported the high-res version at SubD level 4.

The export settings can mostly be left at the defaults for the Daz Studio preset. I change Filter Objects to Selected Roots (because I don’t want to accidentally export any other geometry that might be in the scene), and uncheck Write Material Library.

The most important part here is to make sure Collapse UV Tiles is unchecked.

Importing and baking in ShaderMap

Baking in ShaderMap isn’t an entirely intuitive process, but they have a helpful tutorial on baking various maps from 3D models. I’ll summarise the process as needed for this particular project.

Start ShaderMap, ignore the screen begging me to buy the Pro version1, and start a Blank Project. It helpfully pops up a dialogue for adding a node to the project, and I add a SRC: 3D Model node and choose the high-res OBJ I exported.

In the options for this new node, load the low-res OBJ as the Cage Model.

Choose the Push Tool (Ctrl+2) in the toolbar. Now drag a rectangle over the entire model in the viewport to select all of it. The cage will turn blue.

With the Push Tool active, click on the model and slowly drag upwards. The cage will expand – keep expanding it until it completely covers the source model, and no white bits are poking through the blue.

Add a new MAP: Normal TS (3D Model) node to the grid. It will automatically connect to the source model node. Change the Coord System to Y+ instead of Y-, and set the Map Width and Map Height to desired size. 4096 is a good size.

Check UDIM, and note the UDIM ID. UDIM ID is 1001 by default, and this corresponds to the Ears, EyeSocket, Face and Lips surfaces on G3M. G3M has eight UDIM tiles, and to preserve the relevant detail, I need to bake the first four:

UDIM ID Corresponding Surfaces
1001 Ears, EyeSocket, Face, Lips
1002 Torso
1003 Legs, Toenails
1004 Arms, Fingernails

Clone the MAP: Normal TS (3D Model) node so there are two copies on the grid. Edit the UDIM ID to 1002 for the second copy. Make additional copies for 1003 and 1004.

Bake each map by clicking the little green square in the node menu on the grid. Save each map to a file by clicking the floppy disk icon in the same menu2 . I save out to 8-bit PNG rather than a lossy format like JPG.

Clone out painted-on eyebrows

Next is to remove the eyebrows from the face maps. I do this in ShaderMap as well, so I don’t have to bounce between more programs than necessary.

I can see in Damien’s skin shader that he uses four different maps for the face. The process below will have to be repeated for each of these maps:

  • DamienDemonFaceB_1001.jpg
  • DamienDemonFaceD_1001.jpg
  • DamienDemonFaceS_1001.jpg
  • DamienDevilFaceSSS_1001.jpg

I don’t bother with any of the make-up maps, as the make-up is overlapping the painted-on brows, and trying to remove the brows while preserving the make-up would just be more hassle than it’s worth.

Add a SRC: Color Map (for DamienDemonFaceD_1001.jpg, the base color map) or SRC: Disp / Greyscale Map (the other maps) to the grid. Clone this node so there are two copies of it.

Add a MAP: Blend (Map A, Map B) node, and make sure it’s connected to the two nodes above.

Make3 or borrow a mask for the area to be cloned out. Brow Remover and Beautiful Brows both contain masks that can be used for this. Load this mask in the settings for the Blend node, and make sure Use Mask is checked. Now play with the Offset Y and Blend Intensity until an acceptable blend is achieved – for Damien’s maps, I used an offset of 450 and an intensity of 80–100.

There will be a seam around the cloned area. How visible this seam is depends on the map – Damien’s maps are full of lines and crinkly details, and are particularly difficult to work with. It’s just a matter of experimenting until the seam is as unobtrusive as possible, and making sure the offset is the same on all maps. Small faults will effectively be invisible in the final, rendered result.

Save each blended map to a file.

Converting bump maps to normal maps

Damien uses one bump map for each UDIM tile. When converting the maps to the G9 UVs later, I’ll also need a part of the mouth map, so add that to the pile. These are all the maps that need converting:

  • DamienDemonArmsB_1004.jpg
  • DamienDemonFaceB_1001.jpg
  • DamienDemonLegsB_1003.jpg
  • DamienDemonTorsoB_1002.jpg
  • DamienMouthB_1005.jpg

For the arms, legs, torso and mouth I use the original maps. For the face I use the browless blended map from the previous step. I do the following steps for each map.

Create a SRC: Disp / Greyscale Map node on the ShaderMap grid. Load the bump map file.

Create a MAP: Normal (Disp) node. Connect it to the node containing the bump map.

Combine normal maps

Stay in the same ShaderMap file as the previous step.

Create a SRC: Normal Map node. Load the normals previously baked from the HD details.

Finally, create a MAP: Blend Normals (Map A, Map B) node. Connect it to the normal map generated from the bump map and the normal map baked from the HD details.

Save out the resulting blended maps.

Test normal maps in Daz Studio

The only way4 to see if the blended normal maps work, is to load them up in Daz Studio and render.

Remove the bump maps from all of Damien’s skin surfaces, or set Base Bump to 0. Also make sure the Damien Demon HD shape is not dialed in – I want to see how the normals are doing without the HD morph.

Add the blended normal maps to the Normal Map slot for each skin surface. To do this quickly, choose Template 1 in the Surfaces tab, and drag the normal map for the face from the file manager to the downwards arrow in the the Normal Map property. Repeat for templates 2–4.

Render the character. If the normals look good, it’s time to move on to Baking maps to G9. If they don’t, adjust blend intensity until satisfied.

Adjust blend intensity

Back in ShaderMap, go to each Blend Normals node, and adjust the Blend Intensity slider.

Save the blended maps, and test again in Daz Studio. Ctrl + I will reload the image maps in Daz Studio, so there’s no need to load them manually again.

For Damien’s maps, I found a Blend Intensity of 80 gives a good result.

Baking maps to G9

When all the maps are in good order, it’s time to convert them from G3M UVs to G9 UVs. To do this, I use Blender. Blender is a daunting piece of software – but I barely know up from down in Blender, and still managed to figure out the process with this very helpful forum post on texture baking.

To bake the maps, I first prepare a source model and a target model in Daz Studio.

Preparing the source model

The source model can be any model which has a G9 clone, or which G9 has a clone for.

G9 has a G3M clone, so I could use G3M as my source model. However, this requires posing the source and target models so they overlap exactly, and even then there will be imperfections in the baked maps.

To make it easier on myself, I use G9 with Legacy UVs for Genesis 9: Genesis 3, 8, and 8.1 Male5 as my source model. I set up G9 as indicated in the product, applying the Prepare Genesis 9 and Apply Genesis 3 Male UVs scripts.

Apply the G9 UV Prep Pose from the Developer Kit. I’m unsure if this particular pose is required or even helpful; the important thing is that both source and target models are in the same pose.

Set the model and Legacy UVs Geografts to Base Resolution, remove the unnecessary geometry (eyelashes, eyes, mouth, tear, and eyebrows), and export to OBJ.

Preparing the target model

The target model is a fresh G9.

Set the UV Set on all surfaces to Base Single UDIM.

As with the source model, apply the G9 UV Prep Pose, set the model to Base Resolution, remove the unnecessary geometry, and export to OBJ.

Baking in Blender

In Blender, delete the default cube, camera and light.

Enter the Shading workspace. All the steps can be done in this workspace.

Import the source and target models. They will look huge. See the whole model by going to View > Frame Selected or pressing . on the numpad.

The source and target models should be perfectly overlapping. Rename them if necessary to keep them apart.

Bonus step: Combine materials

The source model will load with a number of materials, one for each surface on the model and the geografts.

To make the model easier to work with, especially when converting multiple texture maps, combine these materials so the model has one material per UDIM tile/template. This step is not necessary, but does make it a little easier to reuse this Blender file in the future.

To do this, enter Edit Mode by using the dropdown in the top left of the viewport, or pressing Tab.

The model is now likely highlighted in orange. Deselect it by going to Select > None or pressing Alt + A.

Now to combine the materials: Click a material in the material index list. Press Select, and note how the area on the model is highlighted in orange. Choose the appropriate target material, and press Assign, then Deselect. Combine according to this list:

Material Assign to
Lips, Mouth Cavity, Face Head
Body_Legacy_UVs_Geografts, Head_Legacy_UVs_Geografts Body
Toenails Legs
Fingernails, Arms_Legacy_UVs_Geografts Arms

After combining the materials, go back to Object Mode. Find the Material Specials menu by the materials index, and select Remove Unused Slots.

Do the same process for the target model, but on this one, combine all the materials into one.

Set up target model

Next select the target model, and any material slot. Add an Image Texture node, and set it to New Image. Set the size of the new image to 8192x8192 pixels, and give it a suitable name. I call mine “Full Single”. Do not connect this node to anything.

Select the other material slots in turn, and apply the material made in the previous step to all of them.

Set up source model

Now apply the Base Color maps to the source model. Go to the Shading workspace, and select the material slot to edit in the Material Properties. Drag the map for that material into the Shader Editor. This will make an Image Texture node with the correct map loaded. Plug the Color output from the Image Texture node into the Base Color input on the Principled BSDF node.

Repeat this for every material on the source model. Do not add any of the other maps – Blender can only bake the maps plugged into Base Color.

Bake from source to target

Select the source model, the target model, and the “Full Single” image texture by holding down Ctrl and clicking on them in that specific order.

Go to Render Properties and set Render Engine to Cycles.

Under the Sampling subheader, set Max Samples to 1.

Under the Baking subheader, set Bake Type to Diffuse. Uncheck Direct and Indirect from Influence. Check Selected to Active and set Extrusion to 0.3 m. Set Output Target to Image Textures, and check Clear Image. Set Margin Type to Extend and Size to 16 px.

With all the settings done, click the Bake button and wait.

In the Image Editor, view the “Full Single” image. It may appear completely black immediately after baking. If it is, wait some more before assuming something has gone wrong.

When the bake has successfully completed, the maps will be all laid out according to the G9 UV layout in the “Full Single” image. Save out this image to a file.

Now repeat the process from Set up source model for all the other map types. In addition to the base color, Damien also has translucency, normal and glossy weight maps, so the baking process must be done three more times. Always plug the maps into Base Color, regardless of what kind of map they are.

Splitting the baked map

G9 comes with a Developer Tool to split single UDIM maps into multi-UDIM maps, but this tool is currently buggy for me, so I’ll split the maps using Map Transfer instead.

In Daz Studio, load up a fresh G9. Set the UV Set for all surfaces to Base Single UDIM. Load the maps that were baked in Blender into the appropriate slots, using the following list as a guide:

Original file name Slot
DamienDemon<Zone>D_<UDIM tile>.jpg Base Color
Blended normal maps Normal Map
DamienDevil<Zone>SSS_<UDIM tile>.jpg Translucency Color
DamienDemon<Zone>S_<UDIM tile>.jpg Dual Lobe Specular Weight

Open Map Transfer and create five templates. Assign the surfaces to the following templates:

Template Surfaces
Template1 Head, Mouth Cavity
Template2 Body
Template3 Legs
Template4 Arms
Template5 Fingernails, Toenails

Select all the templates.

Set Target UV Map to Base Multi UDIM. Leave Source UV Map as Current. Check Convert By Matching Properties.

Set Save Converted Textures To: an appropriate folder.

Set File Type to PNG and Baking Quality to 10.

Set Hardware Cut Off: to 4096 and check Downsize to Cut Off.

Select Template5 and change Hardware Cut Off: to 1024.

Hit Accept and wait while DS splits the maps.

Set up materials

Almost there! The last step is to set up the materials, and then the dreary stuff is all done.

Load a G9 and set the UV Set for all surfaces to Base Multi UDIM. Apply the PBRSkin shader and enable Diffuse, Translucency, Dual Lobe Specular, Bump, Transmission, and SSS.

Load the maps created by Map Transfer. The files will be named by what template and slot they should go in.

Tweak the skin settings to taste. I ended up with the following settings:

For the final touch, apply the G9 Masculine Detail Normal Maps that came with Genesis 9 Starter Essentials.

Then all that’s left is create a suitable shape. I built a random shape using SimTenero Randomizer, then posed, dressed & rendered my new Damien 9.


  1. I likely will buy it at some point, since this is an incredibly useful tool for a very reasonable price. The actual Pro features are just icing on the cake. ↩︎

  2. Doing all the work on one grid and only saving out the finished maps at the end is an option. The grid can be expanded to 8x8 slots, and so can handle an entire project. It does, however, get messy quickly. ↩︎

  3. A mask is simply a black image with the brow area painted in white. Painting one isn’t difficult; just make sure the white area has a soft edge. ↩︎

  4. ShaderMap does have a Material Visualizer that could potentially be used, but since I want to use the maps in iray, I specifically want to see how they look in iray. ↩︎

  5. I could be lazy and use Damien’s maps directly on G9 using the Legacy UVs product, but I really don’t see the point of that. I want to be able to use G9’s Skin Details and mix maps with other G9 skins. Not that I’m likely to mix these particular maps with other skins, but it’s the principle of the thing. ↩︎