Jump to content
3DCoat Forums

dDO Splatmap support


Methelina
 Share

Recommended Posts

  • Advanced Member

http://quixel.se/ddo/

 

Described as a ‘Photoshop artistic framework’, dDo is a kind of super-plugin designed to automate common texturing tasks, particularly for games work, making it easy to generate realistically distressed materials.

The software imports a range of standard map types and automatically assembles them; then enables the user to apply effects all over or to individual parts of the texture.

The resulting project file can be used to generate a set of variant textures for an asset.

Thousands of instant effects
Those effects include a number of different scratch and surface wear patterns; all-over ‘acid’ damage; and grunge effects ranging from ‘coffee stains’ to ‘general goop’.

Placement of the effects relative to cavities or exposed parts of the model can be controlled via the ambient occlusion map, and the direction of scratches can be controlled by the object space normal.

Each effect comes with a set of control sliders; and a node-based workflow enables users to create custom effects.

 

 

dDo needs the special splat-map, where the any colored pixel holds the information about material at the dDo workspace.
This map can be baked as a common diffuse map, where the any material/object assigned with the special color.
NM + Splatmap
6_1.jpg

Zbrush already add this feature for dDo users, where the any sub-tool can be colored by the dDo-color and this data will be baked as vertexcolor at the X-normal from the exported zbrush-meshes. 
Plugin link:  http://gruegames.com/screenshots/dDoSwatchesForZbrush.zip
"As xNormal could read vertex color from Zbrush .obj, it can be baked.
You could also move needed material buttons from plugin to your layout with preferences-config-customize (preferences - config - enable customize and alt+control drag).."©Tinker3d

Zbrush pipleline is:
1) Hide the unneeded subtools, select the mat from the Swatch. All visible subtools are painted with the material.
2) Repeat while all subtools will have a proper ddo color.
3) Bake the diff map from vertexes, and we have a splat map for the dDO. 
or 4) export retopo and all subtools as meshes, and bake Vertex Color at XNormal.

dDoSwatchesForZbrush.png

But in the 3D-coat useing ddo are vry hard. 
Pipeline looks like:
1) Separate vox-layers 1 per material: 1 layer for all iron parts, another one for the leather, else one for the glass etc.
2) Export all this VLayers as the .obj files.
3) Export retopology to the .obj
4) Open X-normal, add the retopo to the Lopoly room for baking, add the all hipoly layers to the hipoly room. (Shame to use external baking software, a lot of artefacts and bad things appears)
5) Bake the "Bake Base Texture" with ObjectID option "on". Save base map as .tga.
6) Open this map at the photoshop, manualy reassign all colors to the dDo colors.... Save the texture as splat map... 
7) Fix errors... 
8) Open dDo

Abstract

1) Add the menu with swatches at the VOX room, where user can assign the ddo-color for any vox-layer.
2) After merge to retopo this baked data may be stored as "splatmap channel" like a "ambient occlusion" or the "Normal Map" and can be repainted or modified at the Paint room.
3) Add the "dDo swatches" menu to the Color Picker where the HSL lives :) 
4) Add the "splatmap" to the Textures/Export. Voila, we have a properly baked splat-map without detailloss and inbetween software artifacts ;)

Thx for attention!

P.S.:
Swatches for Photoshop and Illustrator at the attach.
 

dDO_swatches.7z

Edited by Methelina
  • Like 3
Link to comment
Share on other sites

  • Contributor

+1 great feature request.

 

 

But....

 

Meanwhile you can do much simpler than using Xnormals.

You can create shaders in 3dCoat with colors corrsponding to DDo swatches.

When merging to ppp color will  be baked for each voxel volumes to individual layers in  paint room.

Those can be merged and exported as one texture or can be tweaked individually in paint room :)

Link to comment
Share on other sites

RGB Automap Islands from your highpoly model

http://3d-coat.com/mantis/view.php?id=1089

 

- Make an auto routine to assign rgb maps to every island.

 

Baking a RGB map from your highpoly model is a huge time saver allowing you to quickly extract selection masks that you can use as the basis of your texture. Assign basic materials to your highpoly objects using Red, Green, Blue, Cyan, Magenta, Yellow and White and then bake that down to a color map along with your normal map.

Link to comment
Share on other sites

  • Contributor
Hello. 

 

dDo mask baking would be really great.

 

Also want to add that it is not a random rgb map and not island based, but color-coded materials (used for re-applying presets on different models) as Linda told with swatches and pallet separated from the vertex color and shaders.

Link to comment
Share on other sites

  • 9 months later...
  • Advanced Member

@artman. Would it be possible for you to explain more about this workflow? I use dDo and have purchased the new Suite as well. I am still learning how to use it properly so your post doesn't make to much sense to me at the moment lol :(

 

I have been using dDo but I've manually been adding details to my UV's which doesn't look as nice for wear and tear. I've tried importing the dDo swatches FBX but it only loads a bunch of spheres no colour is on the spheres and I don't know what to do with them. Any help would be appreciated. The dDo forums is just full of people who don't answer and expect you to just know these things that's why I decided to post here. 

Link to comment
Share on other sites

  • 2 weeks later...
  • Contributor

+1 great feature request.

 

 

But....

 

Meanwhile you can do much simpler than using Xnormals.

You can create shaders in 3dCoat with colors corrsponding to DDo swatches.

When merging to ppp color will  be baked for each voxel volumes to individual layers in  paint room.

Those can be merged and exported as one texture or can be tweaked individually in paint room :)

The problem is that baked colour texture is always 1-2% different in saturation and/or brightness (HSB) than the linear colour map used with the car shader, or the exact input colour value of the Default shader.

So, for example, instead of 0%, 50%, 50% (HSB) used as input colour, you get a 0% 50% 49%. And that's a completely different colour which might not exist on ddo's palette.

 

Have you found a workaround to this?

 

 

Anyway, automatic assignment of appropriate shaders (using colours from ddo's palette) to VoxTree layers representing certain materials can be scripted in, provided some kind of layer naming convention is used.

 

Access to UV islands is not possible with scripting engine.

Link to comment
Share on other sites

  • Contributor

The problem is that baked colour texture is always 1-2% different in saturation and/or brightness (HSB) than the linear colour map used with the car shader, or the exact input colour value of the Default shader.

So, for example, instead of 0%, 50%, 50% (HSB) used as input colour, you get a 0% 50% 49%. And that's a completely different colour which might not exist on ddo's palette.

Have you found a workaround to this?

Looks like the workaround is to fill VoxTree layers in the paint room, giving them vertex colour information. Then, assign Default shader to your layers (shader's colour shouldn't matter, but it's safer to set it as white), bake with normal map ("merge patch" and "merge with displacement" don't seem to bake colour[?]). Finally, remove all paint layers created by the bake operation (including normal map) and export the colour map.

However, the thing is that most tools and commands provide very basic access from scripts engine. They mostly can be called as simple commands without any arguments. If only it was possible to call Freeze->Freeze Sub-Object with a string argument (to indicate a VoxTree layer to be frozen) then I could use a combination of Freeze subobject, Invert freeze and Fill unfrozen to fill each VoxTree layer with appropriate colour from the dDo palette (based on a VoxTree layer naming convention) and isolate it on a separate paint layer.

 

Also, currently it's not possible to set brush foreground and background colours with scripts... And this is mandatory for the above script to work unless Fill unfrozen could be called with a colour argument.

So, unless Andrew adds said enhancements to the scripting engine, I don't think I can do anything to automate the process.

---

Also, colour bug aside, I've noticed that when I use shader colours only to bake colour information I sometimes get artifacts in cavities. They look like gray lines. I don't get them when baking vertex colour (or didn't notice them yet). So the safest way to create splat maps is to use vertex colours.

Edited by ajz3d
Link to comment
Share on other sites

  • Advanced Member

I'm not entirely sure if you've said this or not, but why not just bake the object down like normal in 3d-coat, uncheck bake ao and then just use the full tool in the uv editor in the paint room to fill each island with a specific color, then all you have to do is export the diffuse map and normal map :) That's how I do it anyways and it's extremely fast and efficient :)

Link to comment
Share on other sites

  • Contributor

I'm not entirely sure if you've said this or not, but why not just bake the object down like normal in 3d-coat, uncheck bake ao and then just use the full tool in the uv editor in the paint room to fill each island with a specific color, then all you have to do is export the diffuse map and normal map :) That's how I do it anyways and it's extremely fast and efficient :)

Yes, I don't doubt that it's fast, but it's not something that can be achieved with scripting engine, so this process cannot be automated. :)

Scripts cannot access UV islands and iterate through them. You can't fill individual islands, etc. There are many problems with this.

Also, how would the script decide to which islands assign certain colours? With VoxTree layers it's simple because the script could take layer names, check for suffixes, look them up in a dictionary and choose the appropriate fill colour.

 

The process you describe may also be prone to user error. The more complex the model is and the more islands it contains - the more difficult it may be to avoid mistakes when filling dozens of unnamed UV islands. With automated task, you'd only need to keep track of using proper naming convention of VoxTree layers and edit the suffix->colour dictionary if a need arises.

The script would also be faster on models containing many UV islands, because it simply wouldn't care about them.

Edited by ajz3d
Link to comment
Share on other sites

  • Advanced Member
Yes, I don't doubt that it's fast, but it's not something that can be achieved with scripting engine, so this process cannot be automated. :)

Scripts cannot access UV islands and iterate through them. You can't fill individual islands, etc. There are many problems with this.

Also, how would the script decide to which islands assign certain colours? With VoxTree layers it's simple because the script could take layer names, check for suffixes, look them up in a dictionary and choose the appropriate fill colour.

The process you describe may also be prone to user error. The more complex the model is and the more islands it contains - the more difficult it may be to avoid mistakes when filling dozens of unnamed UV islands. With automated task, you'd only need to keep track of using proper naming convention of VoxTree layers and edit the suffix->colour dictionary if a need arises.

The script would also be faster on models containing many UV islands, because it simply wouldn't care about them.

Ahhh that makes more sense now, thanks for explaining! I see what you mean, especially for hard surface models where there might be 30-40+ uv islands, going through each one could definitely lead to user error plus a general pain to deal with

Link to comment
Share on other sites

  • 1 month later...
  • Contributor

I can't try it right now as I don't have 3DCoat near me but if you made them using picmat shaders it will probably not work,because picmats shaders get the shading baked in the color as well....what you need it pure unshaded color,I don't remember which shaders I used to make it work with DDO ...I think its either Default ,CookTorrance or  Lamblight....

  • Thanks 1
Link to comment
Share on other sites

Hexadecimal - RGB Decimal

http://hex-code.com/

 

 

ddo_aluminium 687377 - rgb(104,115,119)
ddo_asphalt 877771 - rgb(135,119,113)
ddo_bark 432c23 - rgb(67,44,35)
ddo_brass b49b2d - rgb(180,155,45)
ddo_brick 9b3228 - rgb(155,50,40)
ddo_bronze b98841 - rgb(185,136,65)
ddo_carbonfiber 161e32 - rgb(22,30,50)
ddo_charcoal 0c162d - rgb(12,22,45)
ddo_chrome 303030 - rgb(48,48,48)
ddo_concrete 9b8f82 - rgb(155,143,130)
ddo_cooper 783b31 - rgb(120,59,49)
ddo_dryrubber 646444 - rgb(100,100,68)
ddo_earth 413936 - rgb(65,57,54)
ddo_eyeball e4e4c7 - rgb(228,228,199)
ddo_fiberglass f6ff77 - rgb(246,255,119)
ddo_galvanized 646478 - rgb(100,100,120)
ddo_glass 528b7a - rgb(82,139,122)
ddo_glossyplastic c34935 - rgb(195,73,53)
ddo_gold ffcd1f - rgb(255,205,31)
ddo_grass 3c642a - rgb(60,100,42)
ddo_gravel 506a9b - rgb(80,106,155)
ddo_gunmetal 101010 - rgb(16,16,16)
ddo_hair 6e4e3c - rgb(110,78,60)
ddo_ice 96afbf - rgb(150,175,191)
ddo_iron 615c57 - rgb(97,92,87)
ddo_lead 28343f - rgb(40,52,63)
ddo_leather 221c19 - rgb(34,28,25)
ddo_marble 0b320b - rgb(11,50,11)
ddo_mud 34221b - rgb(52,34,27)
ddo_paintedmetal ff9800 - rgb(255,152,0)
ddo_paintedwood a33957 - rgb(163,57,87)
ddo_paper d9d6c8 - rgb(217,214,200)
ddo_plastic 003aff - rgb(0,58,255)
ddo_plate 7f7f7f - rgb(127,127,127)
ddo_porcelain f0f0f0 - rgb(240,240,240)
ddo_rock 7d7266 - rgb(125,114,102)
ddo_roughconcrete b99f89 - rgb(185,159,137)
ddo_roughfabric 827081 - rgb(130,112,129)
ddo_roughplastic 19117d - rgb(25,17,125)
ddo_roughrock 644740 - rgb(100,71,64)
ddo_roughskin 915c41 - rgb(145,92,65)
ddo_rubber 202020 - rgb(32,32,32)
ddo_rust 502112 - rgb(80,33,18)
ddo_skin d2a883 - rgb(210,168,131)
ddo_snow ffffff - rgb(255,255,255)
ddo_softfabric 174115 - rgb(23,65,21)
ddo_soot 160819 - rgb(22,8,25)
ddo_steel 484c57 - rgb(72,76,87)
ddo_syntheticfabric 328236 - rgb(50,130,54)
ddo_terracotta af6544 - rgb(175,101,68)
ddo_varnishedwood 947d62 - rgb(148,125,98)
ddo_void 000000 - rgb(0,0,0)
ddo_wood c3a976 - rgb(195,169,118)

Link to comment
Share on other sites

  • Contributor

Okay, I'm back from holidays, so I can start working on the script.

One question. In dDo, are those colours fixed and always bound to shaders listed above? I'm asking because in Substance Designer they don't matter as long as all surfaces sharing the material have the same colour.

Maybe dDo allows this too?

Edited by ajz3d
  • Like 1
Link to comment
Share on other sites

  • Contributor

Yeah, something similar for Substance Designer would be great.

But i dont know how to create shaders like this.

 

Anway. dDo shaders looks buggy.

 

Shader

post-24378-0-49303500-1405466832_thumb.j

 

After baking

post-24378-0-65566000-1405466866_thumb.j

From red to green.

 

Next one

Shader

post-24378-0-94822700-1405466899_thumb.j

 

After baking

post-24378-0-29168000-1405467059_thumb.j

From yellow to red

 

Look realy buggy.

Some infos on how to use would be nice.

 

Link to comment
Share on other sites

I can't try it right now as I don't have 3DCoat near me but if you made them using picmat shaders it will probably not work,because picmats shaders get the shading baked in the color as well....what you need it pure unshaded color,I don't remember which shaders I used to make it work with DDO ...I think its either Default ,CookTorrance or  Lamblight....

 

 

Ty Artman

 

Early version was wrong... but Default shader do the trick.

 

New version to test

ddo_splatmap_default-shader.3dcpack

Link to comment
Share on other sites

  • 1 year later...

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

 Share

×
×
  • Create New...