Generate Texture while KEEPING UV's from Retopologized Mesh?

Hello, 

 

I’m working on a model and wanted to know how to generate a texture that keeps the unwrapped UV’s from an imported model. 

Just FYI, my ideal workflow is: Generate model in RC > Export model from RC > Import model into ZBrush > Clean model in ZBrush > Retopo and unwrap UV’s in ZBrush > Export model from ZBrush > Import model into RC > Generate texture while KEEPING unwrapped UV’s from ZBrush. 

I’ve read that it’s possible but haven’t found information or steps needed to accomplish it. Could anyone inform me on how to do this? 

Any help would be greatly appreciated! If I missed a thread that discusses or lays out the process, could you point me to it? I’ve been searching for a while but haven’t found anything yet. Or at least I’ve gotten close but they don’t share the steps. 

Have you been bringing files back in already from zbrush?

just make sure you copy the rcinfo file from the model you export, and then renaming it to add in your new zbrush models name.

this will let you re-import it to the correct location.

then it should be just a matter of hitting texture. it will ask you if you want to keep uv’s or make new ones.

 

 

In my experience, re-importing works without the info file if you select Grid Plane as coordinate system for export transformation.

I’d be curious to know if it worked with the custom UVs.

Thanks for the replies!! And yeah It turns out that apparently it keeps the UV’s from the imported model by default I guess. I should have tried it before asking I suppose. I was just worried about wasting time generating many textures they may not have been correct. 

 

But yeah, thank you for your replies :slight_smile: Greatly appreciated! 

 

Travis, I agree that it’s smart to unwrap in Mudbox/Z-Brush/Maya, rather than RC.  As witnessed by many posts in this forum, UV tile allocation is often suboptimal in RC and the number of small patches created makes it difficult to paint in post.

I’m sure the community would love to see a side-by-side example of a texture tile from RC and one from your unwrapping settings in Z-Brush.  If you can post a couple images I’m sure it would make the value of this clearer to many of the users who don’t have a production background in CGI.

@Kevin Cain: That’s a great idea, I should have done that in the very beginning. Here’s a before and after as well as a “rendering” from RC of the actual object. 

Straight from RC after processing: 

UV Unwrapped: 

Final Model (Note: Rendered low res, but the model looks quite nice): 

 

I bring the RC model and textures into Z-Brush and use automated methods to retopologize, UV Unwrap, project and save multiple LOD’s through a plugin I created. Basically I just click “Load” - pick as many models as I want up to 99, then click “save” - choose a save location, and finally click “Process” after selecting the desired settings (texture output resolution, desired lowest LOD poly count, number of LOD’s and projection distance). The plugin does the rest. It will go through and process all models and save them into subfolders according to their original names (saves LOD obj’s and diffuse, normals and displacement maps). 

^I’m not advertising or anything here. Just explaining the process I go through and that I’ve made it easier by creating my own plugin :slight_smile: So far I’m loving RC btw! So faaaaast. It’s making my job a lot easier :) 

Also here’s a before and after retopologizing. 

Before: 

After: 

Wonderful to see, thanks Travis!

As you show, RC exports a bag-of-triangles, in contrast to the nice structured quads you show here, so that alone is a strong argument for your approach, even before the decimation benefits.

I have Z-Brush 2018 and would to try out your plug in, if you’re amenable.  I have a large interior model that I was planning to take to Mudbox to convert to quads, but would be excited to try Z-Brush instead!

I also think that the example is quite nice - not least the quality of the scan itself!

But I feel it is necessary to point out that the ZBrush model has a significantly lower poly count (I would say at least factor 10), so it is not quite the same. Also, we see here a highly ordered quad mesh, which is not really comparable to a tri mesh to begin with.

I understand that a quad mesh is important for many post processes, but there are just as many uses for which thr RC tri mesh is just fine. The same is true for the unwrap you started with - no doubt the second one is MUCH better for post processing. Bt the texture ON the model should not be affected by the RC distribution in the unwrap.

How about you simplify the model in RC to a number about twice the surface count of the quad mesh and post it here too? Would be greatly appreciated!

PS Been a while since there was such an interesting thread…  :slight_smile:

Naturally a quad mesh is not intrinsically superior to triangles, but it does tend to make hand editing much easier.  :wink:

I agree with Götz that it would be interesting to compare a simplified RC triangle model to the sub-D surface from Z-Brush.

My general willingness to leave UV operations to other software comes down to two things:

  • When RC computes a texture atlas, it doesn’t always use the available tile space well – which is a real problem when we need optimized tiles for real-time projects.
  • I’ve seen RC generate non-manifold output, lamina faces (all vertices shared between two faces), and other kinds of geometry problems that causes other software to cough and sputter when edited a RC mesh.

Some of you may be tempted to repeat the oft-expressed idea that we are best off when we use software for its core strengths – and for RC, that of course is MVS, not unwrapping. 

 

Kevin, I agree with you absolutely. No doubt about the need for resurfacing for VR etc. Also about the point of using each software for its main purpose.

But me for example, I mostly do this for orthophotos generated within RC, and for that the meshes are totally sufficient.

Hey guys, 

Good to see this thread has some interest :slight_smile: Gotz: I mainly retopologize to generate multiple LOD’s that can be interactively interchanged whit each other as you get closer to the object for use in video games and other 3D software. It is also essential for me to be able to edit/paint the unwrapped textures easily. Also I just like having clean mesh so I don’t mind the retopology process :slight_smile: With the original model straight out of RC, it tends to have many small artifacts like overlapping faces. The retopology process eliminates those. Additionally, with the texture that comes out of RC, it would be nearly impossible to paint in 2D, although you could paint in 3D in something like Z-Brush but that wasn’t what I was looking for. 

So bottom line: This is something I have to do for my particular workflow. Again, this doesn’t mean that RC is doing any sort of bad job or anything, in fact, it does a fantastic job and it does it quickly! It’s just that again, for my workflow, I need to do a little bit of post work. 

Another thing is that I can actually generate a retopologized mesh that is just as dense as the original scan or even twice as dense or more as the original so I would still get all of those little details in the actual model.

HOWEVER: Because my Z-Brush plugin also generates a highly detailed (from a very dense mesh), UV-Unwrapped displacement and normals maps, it is not necessary for me to have such a dense model to get all of those little details. Here’s an example of what I mean. Below you can see the original mesh from RC, rendered in 3ds Max, and then below that, the retopologized mesh with normals and displacement rendered in max. 

NOTE: This is a model that I still have not cleaned up just yet, as you can see there are some artifacts on the horns and stuff like that. I rushed through without cleaning it so I could show you guys examples of what I was talking about. 

Here’s the original RC object rendered in Max - super dense mesh (~4,000,000 polygons): 

Here is the retopologized modelfrom ZBrush with cleanly UV-unwrapped textures (diffuse, normals and displacement) and clean, quad mesh: 

And here’s that same retopologized mesh noted above in wire render (with displacement and normals still enabled):

Same mesh as above but in clay render: 

So as you can see, I still get all the little details of the original mesh from RC but with a much cleaner, quad mesh with clean, UV-unwrapped textures. 

I guess I should probably also do a clay render of the original mesh so you can compare and see the difference. I’ll do that next. I’ll also try decimating the mesh in RC to compare but again, I wouldn’t be able to use that in my work due to the UV map that it outputs. 

Kevin, I’m not sure if we can PM on here but try to PM me on here and if you can’t, let me know and we’ll find some other way to chat privately about you trying out the Z-Brush plugin I made. 

This is the clay render of the original mesh from RC for you to compare to the retopologized mesh: 

Except for maybe some really microscopic details, I think it looks exactly the same. 

BTW the retopologized model above is 200k polygons - lowest LOD model I did, though I could have gone lower if I needed to. That was generated from the 4 million polygon model from RC. I like to generate my LOD models from a high poly model like that so I get all the fine details when the normals and displacement maps are generated. 

Wonderful to see these, thanks Travis!

I don’t think this system allows me to PM you but you can email me:  kevin (at) insightdigital (dot) org.

Very nice! Thanks a lot!

I made a round trip from RC to Z-Brush and back as shown below, via these steps:

  • Reconstruct model in RC, export as .obj
  • Import in Z-Brush then decimate, retopologize as quads, lay out a symmetric uv atlas, then export as .obj
  • Import mesh in RC, texture and export as .obj

My question: RC has no trouble importing the quad geometry from Z-Brush (below, left), but after texturing RC’s export is as triangles (below, right).  I edited the .mtl sidecar for the .obj mesh to point to the texture RC exports, which is simple enough.  But I wanted to see if you’re handling the texture assignment in a different way.

Or are able to get RC to export quads directly?

@Kevin Cain: solution: apply the newly generated texture to the retopod model from z-brush. The models have the same uv’s so the z-brush model should be able to use the new texture just fine.

Hello, Travis – yes, that’s exactly what I did above, as I wrote.  My question is just a detail on specifics:

I manually edit the .mtl file from the .obj Z-Brush outputs (quads) to reflect the texture RC exports.  That is, ignoring the .obj RC exports (triangles) but using its texture.  Is there a better way to do that?

So far as I know there’s no way to export just the texture from RC, only the ‘Export:Mesh’ option in the ‘Reconstruction’ ribbon section.  It seems a little silly to have to export a large mesh as triangles from RC when already have the quad mesh from Z-brush, but I don’t see a way around that.

Oh I see. Yeah texture export from RC is something that has been requested for a couple of years apparently but hasn’t been implemented yet. I hope it does get implemented because that would be really useful to me and I’m sure, many others. 

In terms of quads: Yeah RC is a triangle system and I don’t think it can use or display quads so the method you’re using is probably the best for now. 

I do something similar whenever my Z-Brush texture (diffuse) isn’t up to par. I bring the ZB model back into RC and generate textures. Then export the model from RC (which exports a mtl and texture map) and then I go into the folder and delete the obj and mtl, just keeping the texture for use on my retopologized ZB models (as the diffuse, in place of the diffuse rendered from ZB).