Jump to content
3DCoat Forums
  • 1

Issue with Exported File and File Size ? - 3DCoat / DAZ / ZBrush


Laticis
 Share

Question

  • Contributor

Hi,

Seeking some advice please and any insight regarding an issue I am dealing with.

Software being used:
3DCoat 2023.27 / DAZ Studio 4.21 / ZBrush 2022.0.7 / Windows 10

Issue:
Exported file size from 3DCoat larger than expected and the exported file disables my ability to create morphs or updates using the original base mesh.

Process:
I have created a cluster of rocks, with a decimated triangulated mesh in ZBrush and created a UV Map at 4096 x 4096 - File Size after export = 5,328 KB
The UV Map created in ZBrush was full of under-utilized space, so I brought it into 3DCoat to utilize the UV packing features.
Imported settings attached and the result of repacking the UV's in 3DCoat.
New UV Map applied and the mesh exported - File Size after export = 8,649 KB
New mesh Imported into DAZ Studio.
New mesh would not accept changes made in Zbrush to the original mesh via GoZ

Problem:
The first noticeable difference is the file size exported from 3D Coat is quite larger compared to the original from ZBrush.

I started looking at this because when I re-imported the new mesh from 3DCoat and I wanted to create an adjustment morph for the rocks.
For this I generally work with ZBrush and GOZ and create the morph or adjust the placement of the rocks.
Unfortunately, I could not do that with the newly imported mesh and the original file.
It not a big issue, because I can just port the new mesh.

But I wanted to know why. Its generally because the vertices count changes which is what my initial assessment was.

After comparing the original file and exported file from 3DCoat, in Zbrush I get the following results: same poly count: 77,538

BUT the Active Point count was different:
Zbrush Original mesh: 39,239
Exported 3D Coat  mesh: 77,607


So, ran Mesh Integrity & Fix Mesh in ZBrush and this certainly worked, repairing the imported 3DCoat mesh rverting the mesh back to 39,239 active points while maintaining the new UV's created.

Not only that, during the process the repaired 3DCoat mesh with UV's 4096 x 4096 has a new file size: after export = 4,806 KB

But even now, with the matching polys and points match, I can't create a morph or mesh change from the original mesh to the new.

Questions:
Why does there seem to be extra vertices created by 3DCoat upon export of the mesh?
Why if the mesh is now match after repair it wont recognise chnage to the original mesh?
Am I doing something wrong?

All I wanted to do was to update the UV's but boy, did that lead me down a rabbit hole :)

Any input, feedback or advice is greatly appreciated.
 

Screenshot 2023-08-20 12.44.22.png

Import Settings.png

Screenshot 2023-08-20 12.50.38.png

Link to comment
Share on other sites

Recommended Posts

  • 1
  • Contributor

Hi Carlosan,

Was the re-quote above for a reason mate?

Also, I've made decision today. Normally, when I start a project that's generally all I focus on but that comes with sacrifices.
So what I am going to do...is set a very small allocated window each day to work on fix a whole bunch of old freebies.
That way I can spend more time in 3DCoat texturing....that will help with 'muscle' memory.

  • Like 1
Link to comment
Share on other sites

  • 0
  • Contributor

Small update.

When importing file for UV Mapping, if I select Triangulate, the exporting mesh matches the existing.

But there is still a files size variation. Zbrush = 5,188 KB / 3DCoat = 7,445 KB

  • Thanks 1
Link to comment
Share on other sites

  • 0
  • Contributor

Hi Carlosan,

Thanks heaps mate...that did the job nicely, worked a treat. :)
File size still higher but it works.

Is there a simple explanation why?

Sorry, I only associated normals to textures, guess I need to do some homework :)

Link to comment
Share on other sites

  • 0

At import stage if that set is turning off -without locking your normals- 3DC will recompute them (this set is important also when using an imported normal map on paint room).

As the tip said, with this option ON 3DC dont recalculate normals, use normals directly from the object file.

  • Thanks 1
Link to comment
Share on other sites

  • 0
  • Contributor

Hi,

I have run into the same issue again with a model exported from Zbrush - UV'd in 3D Coat

3D Coat upon adding extra vertices. 

I tried what was suggested last time locking normals, ran auto UV on the mesh and exported that and get the same error message.

I never use to have this problem. There used to be a fuction  to export the mesh from the UV room but that is no longer there.

Any thoughts on what I am doing wrong?

I checked the export mesh from Zbrush and that is fine.
Importing any mesh tests, exported from 3D Coat is giving me an "The imported mesh contains unused vertices."

Screenshot 2023-09-27 14.40.34.png

  • Confused 1
Link to comment
Share on other sites

  • 0
  • Contributor

Hi Carlosan,

Only as an OBJ file at the moment.

I am running some test trying to find the issue.

Last test, just imported the mesh as 'Retopo Mesh' into the Retopo Room, then simply exported that out as a 'Poly Object'

That imports into Zbrush without the error message, but DAZ Studio wont recognize the new mesh so I loose any morph creating abilities.

-------------------------------------

I wouldn't be panicking so much but I have already rigged the character and all I want to do is give it UV maps.

I just tried transferring the rig/weight map to the new mesh with UV's but it messes up the mouth.

Link to comment
Share on other sites

  • 0
  • Contributor

Here's a simple little test that creates the same problem for me.

Step 1 - created a simple beveled cylinder with polygroups.
Step 2 - exported mesh as OBJ
Step 3 - imported into 3DCoat with Lock Normals on
Step 4 - auto UV Mapped
Step 5 - file/export
Step 6 - Import into ZBrush ( error message pops up showing contains used vertices )


 

Screenshot 2023-09-27 16.32.52.png

Screenshot 2023-09-27 16.33.50.png

Screenshot 2023-09-27 16.34.51.png

Screenshot 2023-09-27 16.36.27.png

Link to comment
Share on other sites

  • 0
  • Contributor

I just reset 3DCoat to Default settings....tried again with this cylinder not worrying about Lock Normals and got the exact same result. Extra vertices.

So I then tried a simple quad sphere...one without Polygroups and one with...and that had no issues at all, vertices count remains correct.

I feel this is a bug somehow, not my workflow.

  • Confused 1
Link to comment
Share on other sites

  • 0
  • Contributor
Carlosan
This post was recognized by Carlosan!

Laticis was awarded the badge 'Great Support' and 1 points.

I feel safe to say and confirm this is a bug with 3DCoat

I just installed 3d-Coat-V4_1-17D-64, in this version with the very same cylinder as above....no issues ( other than I dont have access to my NAS )

And from the older version, I was able to go to the textures tab at the top and Export the UV Obj from there.

  • Thanks 1
Link to comment
Share on other sites

  • 0
  • Contributor

Hi

Just to touch base on this issue again.

Is there anyway to avoid the additional (and unused) vertices that 3D Coat 2023 is adding to meshes after importing mesh for UV mapping and then mesh export?

It's currently affection my workflow for creating DAZ products and morphs in ZBrush. I thought I had found a workaround but it's not bullet proof and still failing on simple meshes.

From what I have found after some Google searching, there seems to be scattered instances of this happening.

Cheers Ady
 

Link to comment
Share on other sites

  • 0
  • Contributor

Hi Carlson,

Sorry for the delayed response, I have been on leave. 

Happy New Year and all the best for 2024

I will try that as an exercise, but that export feature in ZBrush is extremely handed when it comes to setting up a mesh for rigging ( or surface regions ) in DAZ Studio.
Making these regions in ZBrush is much faster and more efficient than DAZStudio.

I am slowly chipping away at a workflow that works for me.

  • Thanks 1
Link to comment
Share on other sites

  • 0
  • Contributor

Hi,

I just want to add a little more to this thread about the workflow.

Step 1 - Created a simple mesh in ZBrush, created Polygroups to define region and did a quick and dirty UV Map inside of ZBrush.

--------------------------------------------------------------------------------------------------------------------------

Step 2 - Exported from ZBrush as (obj) with SubGroups and imported into 3DCoat (via Per Pixel Painting) - Lock Normals

Note: The first intention is to use 3DCoat solely to update and improve the base mesh's UV layout. Which works well except for one major issue.

The exported base mesh now has a different vertices count. This is caused by the way 3Dcoat interprets the exported mesh's polygroups as separate meshes.

--------------------------------------------------------------------------------------------------------------------------

Step 3 - Re-Exported from ZBrush as (obj) with No SubGroups and imported into 3DCoat (via Per Pixel Painting) - Lock Normals

Note: this works, no additional vertices in the exported mesh but via this method lose the polygroups which comes in really come in handy for texturing and for managing the mesh inside of DAZ Studio.

--------------------------------------------------------------------------------------------------------------------------

Step 4 - Import the ZBrush Mesh with Polygroups into DAZStudio first, create surfaces from selected faces (using polygroups) - Export mesh from DAZ with ( use Surface Names ) 

--------------------------------------------------------------------------------------------------------------------------

Step 5 - Import into 3DCoat ( this presents an issue though as it splits up the UV ) - as attached Step 5 - issue.

--------------------------------------------------------------------------------------------------------------------------

Step 6 - Select isolated islands, [move selected islands to another UV-set] clean up UV + [apply uv-set] + [delete unused UV Sets] + Save File + Export Mesh from 3DCoat with [use Source Positions]

Note: this simple saved 3DCoat file is 49.3 MB ( the original base mesh is only 640 KB ) 

--------------------------------------------------------------------------------------------------------------------------

Step 7 - Imported the Exported Mesh from 3DCoat into DAZ - gives me desired results ( Updated UV and Polygroups ) but the newly imported mesh Vertices (or order) does not match the original base exported from ZBrush. This is confirmed because I can not make morphs for the new mesh based off the original mesh.

--------------------------------------------------------------------------------------------------------------------------

So questions....

1. Can anyone see if there is a way that might be faster of if there is anything I am doing wrong.

2. Where along this workflow is the vertices order changing. ( I never used to have this issue with earlier version of 3DCoat )

3. Why are 3Dcoats saved file so large?

--------------------------------------------------------------------------------------------------------------------------


 

Step 1.png

Step 2.jpg

Step 3.jpg

Step 4.jpg

Step 5.jpg

Step 5 - Issue.jpg

Step 6.jpg

Step 7.jpg

Link to comment
Share on other sites

  • 0

I found this, it is useful info ?

If want to keep polygroups while importing and exporting you can create a duplicated version of the desired polygrouped Subtool and create UV with UVMaster. Enable polygroups will create separate island for each polygroup. So if you want the polygroups back in the imported mesh from other program you can copy from the subtool you have correctly polygrouped and then paste in the new imported. Then Go to Polygroups And press Auto Group with U

ZB vs 3DC polycount differs because both programs adds metadata to obj file format.
If you open both files on notepad+ (as example) can see the headers differ:

image.pngimage.png

On both files, the face location looks similar

image.pngimage.png

When I export, I use this set ON
image.jpeg

I was thinking one way... duplicate the mesh with pgroups on ZB, make UVs on 3DC, export/import and on ZB transfer UV from one mesh to the original.

3DC lacks of ID maps, or polygroups on ZB, FaceSets on Blender. 

Group faces let to assign user-defined editing regions that can be used in Modeling and Sculpt mode, but since 3dcoat uses different mesh types in sculpt room and modeling/retopo room, that is not possible as I understand it.

Will be nice if you ask to add it as feature request at support@3dcoat.com

Link to comment
Share on other sites

  • 0
  • Contributor

Hi Carlosan,

Thank you very much for the information and for the feedback.

The funny thing is it was the one thing that I omitted from the workflow. 
I was already able to re-import the newly updated UV'd mesh from 3DCoat and reassign the polygroups by:
Auto Groups by UV ( it evens retains the original islands - well at least on the object )

Step 8 - import new UV'd mesh from 3DC into ZBrush - Auto Groups by UV ( this now becomes my new base mesh )

------------------------------

It was this information I needed because now it confirms I am not doing anything wrong.

"ZB vs 3DC polycount differs because both programs adds metadata to obj file format."

"Group faces let to assign user-defined editing regions that can be used in Modeling and Sculpt mode, but since 3dcoat uses different mesh types in sculpt room and modeling/retopo room, that is not possible as I understand it."

------------------------------


I can get the current workflow working but I just need to jump through a couple of additional hoops to get it to work, when originally all I was trying to do is just update UV's.
When in the past ( quite a while back ) I didn't have to worry about it.

------------------------------

In this Video below, at around the 6 min mark, Ian shows a way to create PolyGroups inside of 3DC:


--------------------------------

"Will be nice if you ask to add it as feature request at support@3dcoat.com"

Certainly....all I would ask for is an ability to import meshes exported from ZBrush, while maintaining it's polygroups structure without 3DC splitting the mesh, adding extra or altering the vertices order to maintain the original base configuration of the original mesh. 

--------------------------------


Thanks again for the feedback and info.

Cheers Ady 

  • Thanks 1
Link to comment
Share on other sites

  • 0

When in the past ( quite a while back ) I didn't have to worry about it.
Which version, do you remember ?

The name Polygroups on 3DC don't mean the same on ZBrush.

On Paint room (after bake)
Polygroups on Modeling room are Paint Objects.
UVsets are Surface Materials

image.jpeg

 

Do you have this option turned off ?

image.png

Mat be it is better for your workflow import on Modeling room for UVs, later you can transfer mesh to paint room if needed.

If your case is  "model in retopo room >  paint it in paint room (for only texture sculpting ) you don't need to bake maps at all (because there is no sculpt mesh)

3DC offer 2 options: 

1. bake> retopo per-pixel (no sculpt mesh = no baking)
2. bake> update paint mesh with Retopo/modeling mesh (Polygroup).

 

Link to comment
Share on other sites

  • 0

ZB demo soldier showing polygroups

demosoldier.jpg

ZB Preferences import/export > Export Subgroups ON

subgroup.jpg

Modeling Room > Mesh > Import (I have set color reference manually pressing RMB over Polygroup layer)

image.jpeg

Use Scale master (Edit > Scale master) to upsize on viewport without loose original model size 

image.png

Using UVpath you can mark seams easily on every polygroup

image.png

Export the model (Mesh > Export)

image.png

Import into ZBrush, no error popup.
The model keep Polygroups and also Morph UV is working fine.

image.jpeg

  • Thanks 1
Link to comment
Share on other sites

  • 0
  • Contributor

Hi Carlosan,

Higher up in this thread I experimented with Version 3d-Coat-V4_1-17D-64 on a simple cylinder test that seemed to work.
The best recollection I had was when we were able to export meshes from the UV Room so I think that was version 4.

Regarding "Do you have this option turned off ?" - I had experimented with both On & Off "Treat Retopo Groups as Materials "

Awesome mate, this is good insight and information, thank you very much for reviewing the workflow.

--------------------------------

Following your workflow certainly consolidates the process will save me time and gives me nearly everything I need.
It Keeps Groups / I can Update UVs / Easy Export / Matches ZBrush... ( Polys and Points )

BUT unfortunately  the outputted mesh is dealing with the one main issue and that is DAZ Studio still does not recognise this new object as identical to the original and will not allow any morphs to be created (from the original). I am guessing this is related/caused by Vertices Order as everything else matches.

All this means is I need to be careful with my workflow. Any morphs will need to be created based on the new mesh updated in 3DC.

Also, the only other downside to working in the modelling room is the loss of many of the UV functionality.
So if I want to manually make adjustments to the UV I will need to bake it.

---------------------------------

With this method I couldn't find a way to export the mesh with "Use Source Positions".
Even if I Bake it to the 'Paint Room' and then export with "Use Source Positions" still no good.

--------------------------------

I think this is the biggest difference from the past. I/we used to be able to import mesh into the UV room, make changes and export it directly from UV room.

 

  • Thanks 1
Link to comment
Share on other sites

  • 0

hmmm... thanks for the info, so I need to do more tests.

question:

- zb to 3dcoat, 3dcoat to zb... the steps I posted above...
is this process working as expected ? are polygroups i/o working ?

- the only other downside to working in the modelling room is the loss of many of the UV functionality  
Which ones ? could you list please

- Any morphs will need to be created based on the new mesh updated in 3DC
Had you created morphs in zb before sending the model to uv mapping in 3dcoat?

Link to comment
Share on other sites

  • 0
  • Contributor

:)

- zb to 3dcoat, 3dcoat to zb... the steps I posted above...
is this process working as expected ? are polygroups i/o working ? - working like a charm, really good actually. ( Scale - Good / Polycount - Good / Polygroups - Good )

- the only other downside to working in the modelling room is the loss of many of the UV functionality  
Which ones ? could you list please -- certainly, please see attached. Capture 1 & 2 is the functions in the UV Room - Capture 3 is the only UV functions I can see in the Modelling Room

- Any morphs will need to be created based on the new mesh updated in 3DC
Had you created morphs in zb before sending the model to uv mapping in 3dcoat? - Not in this case no, because I have learnt from past mistakes. I've realised that much of my time has been wasted by personally not nailing down a workflow. So I've been chipping away at that....

Capture 3 Model Room.JPG

Capture 2 UV Room.JPG

Capture 1 UV Room.JPG

  • Thanks 1
Link to comment
Share on other sites

  • 0

Let me see...

UV/Modes category are in both Rooms - different name

image.pngimage.png

ON UV room, Selected is always showed

image.jpeg

On Modeling room, you must select Mark Seams to see the subcategory Selected *

image.png

* It is not the best UI design, I know.
We are working on it

< Testing 3DC 2024.19 <> DAZ 4.22 connection

After model import, no error popup
Model look ok 
Camera > UV view looks ok

image.jpegimage.jpeg

  • Thanks 1
Link to comment
Share on other sites

  • 0
  • Contributor
Carlosan
This post was recognized by Carlosan!

Laticis was awarded the badge 'Great Support' and 1 points.

Hahaha very cool.....I didn't try that because the mesh already had seams :) 

This is good, thank you very much :) 

I was thinking the other day, because 3DCoat can do so much and in so many ways I think, what would be required to get others onto the right track would be simple charts that determine workflows based on different case scenarios such as this one ie:

An existing mesh ( from external application ) that only requires UV update. or

An existing mesh ( from external application ) that requires retopology and UVs

So I asked ChatGPT..... ;) 

---------------------------------------------------------------


I have been working with the support Forums to trouble shoot a workflow issue I was having with 3DCoat. Most of that has been resolved now but it got me thinking: Because 3DCoat can do so much and in so many ways I think, what would be required to get beginners onto the right track would be charts that determine workflows based on different case scenarios ie: An existing mesh ( from external application ) that only requires UV update. or An existing mesh ( from external application ) that requires retopology and UVs Based on your knowledge of 3DCoat and the 3D Industry could you provided me short listed sentences like the above the would indicate different workflow scenarios:

 

Certainly! Here are some short-listed workflow scenarios for 3DCoat based on different case scenarios that beginners might encounter:

  1. Import an existing mesh from an external application for UV mapping only.
  2. Import an existing mesh from an external application that requires retopology and UV mapping.
  3. Create a high-poly sculpt from scratch and then retopologize and UV map it.
  4. Import an existing mesh for texturing and painting only, without modifying the geometry.
  5. Import a scanned model for cleanup, retopology, and UV mapping.
  6. Start with a voxel sculpt for concepting and later convert it for retopology and UV mapping.
  7. Use a base mesh from an external application, enhance details with sculpting, and then perform UV mapping and texturing.
  8. Import an existing mesh for baking high-poly details onto a low-poly mesh.
  9. Create a model entirely within 3DCoat, from sculpting to final texturing and rendering.
  10. Import an existing mesh for decimation and optimization for real-time applications.

These scenarios cover a broad range of common workflows that can help guide beginners through the process of using 3DCoat efficiently based on their specific needs.


 

  • Thanks 1
Link to comment
Share on other sites

  • 0
  • Contributor
Carlosan
This post was recognized by Carlosan!

Laticis was awarded the badge 'Helpful' and 1 points.

Thanks again for all the help :)

Side note:  I think the ability to keep vertices order is very important.

As a promotional prospect...I think a bridge between 3DCoat and DAZ Studio would be an advantage for further sales.

Option 1: port mesh to modelling room to create morphs ( DAZ to 3DC to DAZ )

Option 2: port mesh to poly painting room to create or add to existing textures ( DAZ to 3DC to DAZ ): ie add tattoos

----------------------------

  • Like 1
Link to comment
Share on other sites

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
Answer this question...

×   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...