A new separate thread stemmed from the
Polyhertz's 3dsMax script - 'Quick High-Poly' discussion.
MXS modifier for download here:
http://www.scriptspot.com/3ds-max/scripts/insetfix-modifier- InsetFix.ms is just the fixed inset-by-smoothing-groups modifier - it gives a cleaner result than simple inset but it's also slower (you won't notice that with simple models but for complex models you are better of using the regular inset)
- InsetFixChamferStack.ms is a modifier that adds the complete inset+chamfer interactive stack
- InsetFixQuadChamferStack.ms does the same but uses Quad Chamfer instead of max Chamfer (you need to have the Quad Chamfer modifier for it to work)
As it is a modifier, everything is procedural and you can return to the base object and change stuff any time.
If you only want a regular inset by smoothing groups modifier and don't mind its shortcomings (it's the one shown in the gif above and does basically what the original Polyhertz's script does, just as a modifier combo), you can get it here:
http://www.scriptspot.com/3ds-max/scripts/inset-by-smoothing-groupFor complex models I
strongly suggest you use this one as it's much faster.
For those who don't mind some tinkering and playing with something that breaks easily, and want to learn MCG, here's also the original MCG modifier:
http://www.scriptspot.com/3ds-max/mcg/inset-chamferBear in mind that you'll be basically a betatester if you install it, as there are still quite a few unsolved issues. Any pointers, suggestions etc are welcome.
If you decide to use the Smooth modifier in the stack and you get unexpected results after enabling it, you might want to try unchecking Prevent Indirect Smoothing.
If you get an error message, please open the maxscript listener window (F11 hotkey), copy its contents (should say what happened and what the values were), send it to pastebin and insert the link here. If you are able to reproduce it on a given mesh and you are allowed to share the model, it's even better if you attach the file as well.
Replies
Other than that your time would be better served concentrating on one version. And you should really be selling this on GR. It's your time and hard work. Why not get compensated?
Fansub and WAYWO have created brilliant toolkits with this function at their cores and are doing very well. Have you considered expanding the tool to an entire workflow toolkit like they have done in Maya?
I'm thinking about setting patreon instead, I have loads of unfinished scripts so for me it's more about having some incentive to finish and polish them. Plus this one is quite slow with complex models. Which would also mean some extras and discussion boards for suggestions and stuff. What do you think about that? The resulting tools would be free and unencrypted, just like now.
Well, if you want it to work that way, make a suggestion with some examples. I don't follow their progress and tools from other software packages so I don't really know what else is there.
In this case, everything will be one smoothing group in the end, which means that for this use case, there's no difference. That's all I was asking. The error is a big issue, though, could you post a screenshot with a pastebin link containing the maxscript listener output?
Very neat script! Tyvm.
Worth noting also that there's no way to set the inset value to 0 within the modifier without going down to the quad chamfer modifier and setting that value to 0 - is it possible to set the modifier to allow a value of zero for making quick low-poly bakeable objects?
Cheers
A. messy topo -> InsetFixChamferStack
B. messy topo -> cleaned topo - > InsetFixChamferStack
C. messy topo -> cleaned topo - > InsetFixChamferStack -> Turbosmooth
D. messy topo -> InsetFixChamferStack -> Turbosmooth
So my questions are:
1. Is this script intended to be applied on messy topology, eliminating the need of cleaning the model?
1.1. If we have to clean the topology then why don't we just use regular chamfer instead of this script?
2. Is this script intended to finish the model by chamfering the sharp edges or to prepare model for Turbosmooth?
That's the main reason the 'inset first-chamfer after that' workaround exists, as insetting pushes these poles from the edge which can then be chamfered without issues. However, it also introduces additional edges on corners where more than two SGs meet - and Chamfer again doesn't like it - which is why I also made a 'fix' version of the modifier that rebuilds topology of those corners.
However with complex geometry, it will be painfully slow (it's just a scripted modifier and I have to find all these corners and build them again face by face, three vertices at a time). So if you are in that situation and don't mind sligthly uneven resulting chamfer radius, use InsetBySG instead (same workflow, if you want the automated inset+chamfer stack, use InsetChamferStack.ms). That way, the edge dents are avoided, and if the mesh is not viewed up close, the slight 'pinch' on the corners is not that noticeable.
Neither of these is inteded to be used with Turbosmooth but you can use it that way if the original geometry lends itself to it (obviously, big uneven polygons and extreme tris are not suitable).
By the way the scripts insetfixchamferstack_0.ms and insetfixquadchamferstack_0.ms when present together in max stdscripts folder trow errors when their modifiers are used (on different polys). The first that is used builds it's stack, the second trows error. The same is true for insetchamferstack.ms and insetquadchamferstack.ms. Output for the first pair you can see here.
I'm about to test if Quad Chamfer modifier makes any sense in this script, and in first glance it looks like that QC modifier loses its advantages over Chamfer modifier in the stack, so better ignore above mentioned errors until I'm done.
Here is the firs test model, and the results:
The biggest problem for the script is in the upper left corner where one edge is interfering with the chamfer area, but you can also see that the script handles the cut differently than QC modifier too, and in this case it manages to smooth the cut right, but in little more extreme scenario the whole edge gets distorted while QC modifier manages to smooth it right.
The reason for the success of QC modifier in this case is that it dares to move vertices along the chamfered edge as you can see.
Can you explain us how do we save the value inside your script ? Is it by saving and modifying the ms itself ? Or is there a way to change default values within max ?
Another things what is the transition optionm standing for ??? Fast and smooth ? I'm bit confused as i can't find the differences.
Thanks for your efforts.
The Transition changes smoothing settings:
For example radio button Smooth: [Entire Object] / [Chamfers only] or similar will be more intuitive.
There is already "Smooth" option under "Tweaks", so for clarity one/both of them can be renamed to something like PreSmooth, PostSmooth, etc.
Amazing! Lot of good stuff going on. Thank you so much!
1. QuickHighPloy is not considered, because it is not modifier, and have restriction about one face can't be in 2 smoothing groups, not to mention that the end result is not better than the rest of the methods described below.
2. Quad Chamfer Modifier has powerful function "Quad Intersections" that fixes geometry and produces nice results.
Other good option is the ability to use the weight of the edges as amount of the chamfer, so every edge can have different chamfer amount (B). Unfortunately in this mode the "T" intersection between chamfered and not chamfered edge is distorted (A). This can be fixed by using chamfer by smoothing groups (losing the individual control of the amount of the chamfer) or by connecting the T vertices somewhere.
The strengths of the QC modifier are lost in the stack because of the InsetFix modifier, so using it in the stack instead of the Chamfer modifier is pointless. QC modifier is standalone solution, with stable results most of the time.
3. InsetFixChamferStack in some parts can produce cleaner results than QC modifier, but tends to produce glitches (C) and also visible some post above, in my first experiment with it. Retopo must be done to fix them, because they are too obvious when they occur.
4. Quadify Mesh + Chamfer. This method lacks the solving capabilities of the above methods, but with "Quad Size %" set to 60-100% can produce very clean results (D). This method is best for cleaning large areas of unnecessary edges, but can lead to loss of detail in some areas.
In every particular case one of this methods will have an edge over the others, so if your favorite method fails, you can try another.
As fo the chamferfix script, did you put it in the stdscripts folder? There's no reason it shouldn't work - and I actually use it that way an it is persistent:
I doubt if this research can be helpful for devs to improve the Chamfer modifier, because it is more about workarounds of its weaknesses, than suggestions how to improve it.
In the autodesk forum already are mentioned some feature requests, the thing that is lacking there is more technical ideas/code, that can be given by people like you and creators of QC modifier, rapidTools, etc, that developed algorithms for handling problematic areas of the chamfer.
The Grey one is InsetFixChamferStack, The Green one is Chamfer modifier
In first 2 examples Stack fails, in next 4 is better than Chamfer
Here you can see that the Stack fails when more than 1 smoothing group is applied to a face
The test mesh is attached if someone wish to test something on it.
I made some Christmas wishes in the autodeks forum too, will be happy to see them implemented
There is a new Quad Intersection option for the Chamfer mod. In the gif below the more rounded versions are 2017 and older behavior.
In some cases (where then angle between the edges is sharper), it results in even more reduced bevel amount though:
Did you set the smoothing groups?
1) Unwrap the base object (without rounded corners)
2) Use inset chamfer + quad chamfer
This would result in a much faster unwrap and better-aligned geometry instead of relaxing the UVW afterward.
And as the Chamfer's Quad Intersection option added in 2018 was also mentioned above, here's a comparison turning it on and off (long story short, it's not always an improvement), compared to InsetSG on the right:
And if you find yourself setting the values of the modifier to the same values over and over again, there's now a Preset rollout where you can save the current values as default ones and next time you add the modifier, it will use those: