Jump to content
3DCoat Forums
Teriander

Smoothing Groups Break importing Back to Max

Recommended Posts

I've exported an OBJ that has multiple smoothing groups from 3D Max and all three Texture, Normal, and Smoothing Group options were checked. 

 

I imported the OBJ into 3D coat via UV-Mapping and the "Auto Smooth" option is off. As well as "No Smoothing" on the UV. 

 

I then export from 3D Coat the OBJ and Import back into 3D Max with Smoothing Group and Texture Cords. Check. Also Normals are set "From File".

 

But my smoothing groups are NOT set the same as they were when I exported from Max. I've also Imported the Max OBJ back into Max to see if Max exported the OBJ incorrectly but the Smoothing Groups are still the same. Which means they break from either Importing or Exporting from 3D coat.

 

What can I do to fix this?

Edited by Teriander

Share this post


Link to post
Share on other sites

I can't answer your question, as I don't use that feature of 3D Coat, but I will say that it's logical that your smoothing groups will likely change on export from that program.  It's not necessarily designed to match what you imported from Max for smoothing groups.  That said, you SHOULD expect smoothing groups to be present on export and for the model to look the same as it did in 3D Coat.

Share this post


Link to post
Share on other sites

Thank you for replying alvordr.

 

What you've said is interesting that the smoothing groups will likely change on export.  Because if that's the case then it wouldn't make sense to store Smoothing Group information on the OBJ if it's not going to remember what Polygons were assigned to what Smoothing Group. Especially if I never increased or decreased the poly count in 3D Coat, only UV Unwrapped it.

 

Maybe you can provide an alternative solution for me in my situation, here is what's going on in detail:

 

Phase One - I've created an F-16 in 3D Max (It's for a cinematic not game engine). It totals less than 10,000 polygons. When I subdivide (Turbosmooth) the model, it looks really great and high detailed. Because of the Smoothing Groups the hard edges stay where they belong when subdivided.  So I have a very high detail F-16 when I put on TurboSmooth and a very low detail F-16 ready to unwrap and texture in 3D Coat.

 

Phase Two - I've exported the low detail version of the F-16 as an OBJ to import into 3D Coat for Unwrapping. Using the "Unwrap Model" option in 3D Coat, re-exported via File > Export Model and saved it as an OBJ.

 

What I want to happen at this point is to import my Unwrapped OBJ from 3D Coat back into 3D Max, Subdivide (Turbosmooth) it, and have it look really great again in high detail. But instead all of my hard edges are gone and the Smoothing Groups have been reassigned.

 

What suggestion do you have to Unwrap my F-16 in a Low Poly state and bringing it back into 3D Max with the correct smoothing groups assigned so Subdividing it wont destroy the hard edges?

Share this post


Link to post
Share on other sites

Hmm...I was under the impression you had sculpted changes, but I misunderstood.  I wouldn't expect it, then, to change your smoothing groups.  That said, smoothing groups is something particular to 3ds Max, but 3D Coat is supposed to support it.  UDK wants to use them, as well.  Anyway, you can keep hard edges using edge loops, assuming you're not already doing this.  I have experimented UV unwrapping in a situation like yours before and it worked, but I didn't bother with smoothing groups in 3D Coat.  I don't recall other apps even supporting smoothing groups, but someone else here might know of one.

 

Some videos that may be helpful:

 

http://www.3dtotal.com/tutorial/3d_studio_max/hard_surface_essentials/hard_surface_01.php

 

Edited by alvordr

Share this post


Link to post
Share on other sites

Thanks for the video link. Im starting to get the feeling I'll have to use edge loops when modeling for 3D Coat.  I wanted to steer away from this because it means I'll have a higher poly count but it looks like it will be the cleanest way without fighting smoothing groups. So I guess until this bug in 3D Coat is resolved (I call it a bug because it shouldn't break smoothing and it does) I'll have to use edge loops.

 

Thanks again for replying!!

Share this post


Link to post
Share on other sites

I'm not sure I would call it a bug.  Take Maya for instance.  Maya doesn't use smoothing groups.  If you model in low res and press either 2 or 3, it goes to another proxy subdiv level, like an emulated smooth.  You should see that your model will not hold hard edges without proper edge loops.  The same applies to just about every modeling app I can think of.  I'm not sure why 3ds Max uses smoothing groups, even though I can see benefits arising from the feature, no other modeling app would bothers with them, unless they need to work with 3ds Max, in some way.

Edited by alvordr

Share this post


Link to post
Share on other sites

Yes, I know Maya as well. I can tell you that Turbosmooth in Max behaves the exact same way as Maya's subdiv.  I've started converting my model in 3D Max to have more edge loops and removed the smoothing groups since it is becoming a problem.  But I can assure you a model that uses Smoothing Groups to specify its hard edges will have a lower poly count than a model with all edge loops for hard edges. That's pretty much the reason 3D Max uses smoothing groups.  They're a pain to setup on complex surfaces but very useful once you learn them.

 

Thanks again alvordr!

Share this post


Link to post
Share on other sites

Smoothing groups are also useful in UDK, but I really can't think of any other software or app, at the moment where it's useful.  It all depends on your workflow and what you're end-state needs to look like.

Share this post


Link to post
Share on other sites

I know this in an older thread but it might help someone else.

 

Do your UV work in 3DC. Export the .obj. Turn on whatever looks like it tells 3DC to export smoothing and UV's. I just turn it all on. I haven't turned it off to see if it makes a difference.

 

Import the .obj into Max, again, turning on anything in the importer that seems to make sense. Now, in Max you won't have any smoothing groups. And, all of your Material IDs will be 1. So, apply the Unwrap UVW and go into it. Select 'polys' and 'by element'. Select an element that's part of the UV. Now click to add an Edit Poly to your .obj's stack. Click the poly subgroup for it and you'll see the polys highlighted that you selected in the Unwrap UVW. Set your smoothing group. I also set a matching Material ID. Might come in handy later.

 

Now, add another Unwrap UVW, go into it, select your element and come out and add another Edit Poly (you don't even need to close the Unwrap UVW, it will close itself). This time you'll have that second set. Set your smoothing group. Just continue until done and then collapse the stack.

 

It sounds tedious but it's easy. Once you get rolling you can do it pretty quickly. It's the only workaround I've found.

Share this post


Link to post
Share on other sites

I know this in an older thread but it might help someone else.

 

Yeah, but it's still worth discussing from time to time. I like your idea, but wouldn't it only work if you UV unwrapped each mesh based on it's original smoothing group configuration in Max? That would be both challenging and time consuming, probably just as time consuming as re-doing them all from scratch when your back in whichever program it is that supports them. Speaking of which, the number is growing. 3ds Max and the Unreal game engine have been mentioned. Another one is Modo. Oddly, Mudbox doesn't in spite of it being an Autodesk app. Most apps, like Maya and Blender for example, do support something akin to smoothing groups. They're pretty basic in functionality and generally involve setting edges to hard/creased versus soft/uncreased and thus aren't quite as advanced as Modo and Max. Hopefully this will change over time.

 

Modo

 

3ds Max

 

Blender

 

Maya

 

I find smoothing groups particularly useful when using the Turbosmooth modifier in Max (for rendering purposes), which has an option in it to separate by smoothing group. This is superior to adding a bunch of edge loops, something which can crank the poly count way up. It actually makes sense for a game engine like Unreal to support them when you think about it, as it can help give the impression that a low poly model is high res when it's actually not. Normal maps are another such trick, something that was also unsupported by most apps at one time and also had to be fought for (ubiquitous PTEX support currently being another). These simple rendering tricks are less computationally intensive than adding a lot of unnecessary edges that can add up quickly depending on the mesh, especially when you have a lot of such assets in a scene. I won't be surprised at all when we eventually see more game engines adopt smoothing groups for this very reason. The side benefit of it helping to keep each individual mesh as simple as possible is also useful because, once you start adding lots of edge loops to a mesh, it starts to become unwieldy. Especially when last minute edits are required.

 

3D Coat does support smoothing groups, though it's been a challenge to get it to do so properly (see link below). 3D Coat even exports them properly to the OBJ format and are seen by 3ds Max just fine upon import. Unfortunately 3D Coat still refuses to respect and preserve them whenever importing an OBJ file which already has them. As the original topic starter pointed out, if you export an OBJ with smoothing groups from 3ds Max, then turn around and re-import it straight back into Max, all the smoothing groups are still there, intact and unchanged. For some reason 3D Coat wipes them out, either replacing them with it's own automated setup (if the smoothing option is enabled during import) or puts all faces into the same smoothing group (when the smoothing option is disabled during import). If only 3D Coat would respect all of the smoothing groups already there instead of changing them, we could export our UV'ed meshes from 3D Coat back to programs like 3ds Max without having to go through the painful, hugely time wasting rigmarole of setting them all back up again from scratch. I'd give my left you know what for that... seriously, I would.

 

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

 

PS: Importing an OBJ with smoothing groups for PTEX painting is even worse. I'm not at all sure what 3DC is doing to the normals of the mesh, but once back in 3ds Max, any smoothing groups you try to re-setup won't have any effect. The only way to fix it is to set the OBJ importer in 3ds Max to faceted, or apply two normal modifiers with each set to flip normals. After collapsing the stack, the mesh with be faceted and smoothing groups work once again.

Share this post


Link to post
Share on other sites

I came across this comparison video which illustrates quite well the different methods for creating sharp edges:

 

 

Insofar as poly counts are concerned, there really is a big difference between smoothing groups versus adding extra edges all over the place. And that's just one simple mesh, not at all typical of a real scene (like in a game using the Unreal Engine).

Share this post


Link to post
Share on other sites

×