Hey all!
I'm having a bit of an issue dealing with Maya fbxes imported into Max. Meshes from Maya come in with explicit normals instead of smoothing groups, but the only way I know to change that essentially removes all smoothing info and I have to start over with smoothing groups. I would like to avoid this and find a way to translate the explicit normals to matching smoothing groups. Digging through the edit normals modifier, I only see ways to break or average smoothing...
Anyone have experience with this? Any suggestions? Figured maybe some sort of script might be floating around out there or something.
Replies
If the latter, I think selecting all normals in the "Edit Normals" modifier and hitting "reset" should be enough..
1. Import the fbx.
2. Make sure it's an Editable Poly and run the script below to select hard edges' vertices.
3. Convert selection to edges.
4. Add Edit Poly modifier to remove explicit normals.
5. In Edit Poly set everything to one smoothing group.
6. Go into Edit Poly edge mode, selection should be preserved.
7. Press Hard under Edit Edges to create smoothing groups.
8. Collapse.
@cptSwing - its the second one. There are no smoothing groups assigned, but if you assign them, it doesn't change the explicit normals, they override the smoothing groups. Resetting normals will remove the explicit normals, but then smoothing is based on whatever smoothing groups currently exist. Since none come in with the mesh, that basically means I have to redo the smoothing, which I would like to avoid.
@Swordslayer - Sorry, I'd like to show an example, but the instances I'm looking are work related . Verts are not welded or exploded. Mesh integrity is good, its just that the normals are set outside of smoothing groups and I can't transfer that info to smoothing groups.
@monster - Thank you for posting this!! Unfortunately, it didn't quite work 100 percent. When converting selection to edges, I get a bunch of edges that I don't want selected. Seems like it works well for quads, but triangles often select extra edges. This is definitely the closest I've gotten to a solution though. Saves most of the cleanup and re smoothing at least.
The proposed workflow by @monster seems to be the most promising approach, so I invested some time fixing it (the selection of hard edges just doesn't work like that).
So, download and rename the attachment to .ms and select an object an run the script.
First results are looking good so far - but it really needs some testing The algorithm max uses for setting up the hard eges creates some crazy smoothing group assignments tho ...
I just thought of another solution. Check Split Per Vertex Normals when exporting from Maya. In Max select open edges, weld their verts, then press Hard. But kio's script works in more cases, like if your model is skinned or you don't have access to Maya source.
on smaller props this isnt much of a problem, but once you have a few thousand polys at hand you really start thinking "why I'm doing this...?"
However with the script I am getting a ton of smoothing groups, and some faces have like 6 different smoothing groups for no reason. So in game development this doesn't pass the quality checks I don't know anything about scripting but would it be possible to perfect the script by making it not take up too many SM groups?
I'd also like this but I don't know that it's possible. Max must be doing some math behind the scenes and assigning groups in a way that makes it possible to have hard edges that don't loop all the way around a group of polys.
@kio, it's a great script, thank you. Any chance it will be turned into a modifier?
The script worked magic! Sadly the many smoothing groups stands true.
Since I bake with Marmo so all seams will be hard edges anyway.
Is there any chance of a method like: "Make all UV islands different Smoothing Groups? "
http://portfolio.juantwo.com/maxscripts.html
Is this script from Kio a solution for this Max Ideas sugestion?
https://forums.autodesk.com/t5/3ds-max-ideas/explicit-normals-to-smoothing-groups/