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.
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:
I use ShaderMap Basic to do all of these steps.
Having HD details is nice, but a normal map can hold all the detail I want and is far easier to convert to G9.
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:
With G3M now being an eyeless, hollowed-mouth abomination, export two copies to OBJ format:
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.
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.
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:
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.
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:
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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
.
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.
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.
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.
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. ↩︎
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. ↩︎
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. ↩︎
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. ↩︎
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. ↩︎