Home Technical Talk

[3dsmax] EdgeSmooth - Free, open source smoothing plugin

EdgeSmooth is a free, open source plugin that makes smoothing in 3dsmax a lot easier. It allows you to smooth an editable poly by setting edges to "hard" or "soft". A "hard edge" means that the faces using the edge share no smoothing groups, a "soft edge" is the opposite. This will probably feel familiar to Maya users!

mVHcu.gif

Remarks:
-The plugin uses smoothing groups, so you can mix it with using traditional smoothing. It may however change the smoothing groups on all faces in the object!
-EdgeSmooth only works with Editable Poly objects, not with the Edit Poly modifier.
-Take a look at this preview video to see the installation procedure: http://vimeo.com/33974467

The source code of the plugin is made available under the BSD license and can be found here: https://github.com/Pjanssen/EdgeSmooth
Here you can also find information about how to use the plugin through maxscript.

If you find this plugin a useful addition to your workflow, please consider making a small donation to support future development and maintenance: http://script.threesixty.nl/outliner/index.php/donate (temporary, I'll create a page for this plugin specifically later).


Download EdgeSmooth 1.0 here
To install, drag the .mzp file into 3dsmax and click "install". Make sure that the extension (.mzp) is not changed!

Replies

  • Pedro Amorim
    Man. This looks mighty handy! Like the hardedges in maya. Super cool. I guess if I had to add something would be for like.. Make a small script that,
    1: smooth the entire object.
    2: select the outer edges of each uv island
    3: run this script.


    Very nice.
  • DEElekgolo
    Offline / Send Message
    DEElekgolo interpolator
    Yay free scripts!
    Do you take requests?
  • AlecMoody
    Offline / Send Message
    AlecMoody ngon master
    Man. This looks mighty handy! Like the hardedges in maya. Super cool. I guess if I had to add something would be for like.. Make a small script that,
    1: smooth the entire object.
    2: select the outer edges of each uv island
    3: run this script.


    Very nice.

    Pedro- you can do that with textools already. its in the tools drop down at the top of the toolbar
  • Pedro Amorim
    yeah yeah. I do that already. But was refering that workflow to be used with this script :D
  • leslievdb
    Offline / Send Message
    leslievdb polycounter lvl 15
    great gonna try it lateron!
    i can only applaud opensource free scripts , tnx for sharing this
  • cw
    Offline / Send Message
    cw polycounter lvl 17
  • Pjanssen
    Thanks guys!
    I guess if I had to add something would be for like.. Make a small script that,
    1: smooth the entire object.
    2: select the outer edges of each uv island
    3: run this script.
    I guess the tricky bit here is converting the uv shell boundaries into geometry edges. After that it's a matter of giving it as input to the EdgeSmooth.Apply function:
    https://github.com/Pjanssen/EdgeSmooth/blob/master/README.md
    DEElekgolo wrote: »
    Yay free scripts!
    Do you take requests?
    Sure I'm always open to new ideas.
  • Noors
    Offline / Send Message
    Noors greentooth
    It doesn't work as (I) expected. It's fine with loops but if is start to use the way i'd use maya soften/harden, the SG's go funky. I'm not sure it the way you wanted it to work thou.
    edgesmooth1.jpg
    Must be a freaking nightmare to code as it's pretty hard to do it manually with smoothing groups compare to edit normals (which is also a pain in the ass anyway)

    edgesmooth2.gif
    Apparently it's because you should share the SG on an additional face at the angles.
  • Pjanssen
    Yes I have noticed these artifacts at times too. For me they don't show up when rendering however.
    I guessed they were viewport artifacts, but maybe the smoothing actually doesn't work correctly?
  • Noors
    Offline / Send Message
    Noors greentooth
    Ha you're right. It renders correctly. I've added an edit normals modifier and the normals are ok + the edit normals fixes the display.
    Better, if I start by applying an edit normal modifier, just collapse and use your script, there's no problem at all.
    Weird ! Maybe the primitives normals are fucked up by default.
    My bad then, the script works fine !
  • Pjanssen
    It might be worthwhile to investigate the viewport artifacts though. I've put it up as an issue on github for now: https://github.com/Pjanssen/EdgeSmooth/issues/1
  • Pjanssen
    I've updated this plugin to support 3dsMax 2013.
    Download EdgeSmooth 1.0.1 here
  • Scruples
    Offline / Send Message
    Scruples polycounter lvl 10
    That was quick, nice job...and with max 2013's new Maya type navigation I am suddenly tempted to switch over.
  • Ace-Angel
    Offline / Send Message
    Ace-Angel polycounter lvl 12
    Does it work with Max 2012/2011?

    Also, is Max 2013 really already out?!
  • Pjanssen
    Ace-Angel wrote: »
    Does it work with Max 2012/2011?
    Yes. The installer includes a compiled version for 3dsMax 2010, 2011, 2012 and 2013. And both 32 and 64bit versions for all those. The installer will automatically install the right version for your 3dsMax version.
    It should also be possible to compile the plugin from the source for earlier 3dsMax versions, provided you have the SDK.
    Also, is Max 2013 really already out?!
    Apparently some people on subscription have access to it since a week or so.
  • EarthQuake
    AlecMoody wrote: »
    Pedro- you can do that with textools already. its in the tools drop down at the top of the toolbar

    Actually, the functionality isn't quite the same. In textools it simply sets each uv island to its own smoothing group.

    When I run my script in Maya, it sets every uv border edge too hard. This may seem like the same thing but its not, with the Maya type you actually get more hard edges. Think of a box with its back face removed, uv'ed as one island but fanned out with seams at each face edge(but not the front face). With textools this = 1sg, but the Maya type would give you hard edges along each uv seam, which can be really helpful for smoothing errors etc.

    Setting up that sort of smoothing is a pain with SG's in max, the Maya hard edge type system makes it a lot easier.
  • Pjanssen
    Using the edgesmooth plugin this should be easy to script as well. It exposes a number of useful function to set hard/soft edges:
    https://github.com/Pjanssen/EdgeSmooth/blob/master/README.md
  • Revel
    Offline / Send Message
    Revel interpolator
    Hi Pjanssen, I have notice something wrong going on at my office computer installation which doesn't appear on my home computer. In office I use Max2011 whenever I restart my computer EdgeSmooth seems to disappear, not even on the customize user interface list. But when I drop the .mzp back to viewport it prompt me to uninstall first which means it actually detect it on my machine but just didn't display it (somehow?), after uninstall and install everything works fine........until I restart my computer, and it disappear again. But if I just simply restart Max, its all still there and works fine, the problem only appear when I restart computer.

    My wild guess will be about the Win7 "user admin account right" thingy, but just to inform that your Outliner script works fine and no problem at all.
    Any idea regarding this issue?
  • Eric Chadwick
    Pjanssen, the http://script.threesixty.nl server seems to be down, so I can't download the script.

    When I download the master ZIP from github, move the Installer folder into a MZP, then try a drag-n-drop install in Max 2010 32bit, I get these errors:
    EdgeSmooth Plugin Installation
    Beginning installation.
    Checking requirements...failed
    Installation failed
    Close


    Error
    This 3dsmax version is not supported by the EdgeSmooth plugin in this installer.
    OK
  • Pjanssen
    Revel wrote:
    Hi Pjanssen, I have notice something wrong going on at my office computer installation which doesn't appear on my home computer. In office I use Max2011 whenever I restart my computer EdgeSmooth seems to disappear, not even on the customize user interface list. But when I drop the .mzp back to viewport it prompt me to uninstall first which means it actually detect it on my machine but just didn't display it (somehow?), after uninstall and install everything works fine........until I restart my computer, and it disappear again. But if I just simply restart Max, its all still there and works fine, the problem only appear when I restart computer.
    Could it be that the plugin.usersettings.ini is being overwritten, or not being written to by the installer? This should contain a path to the edgesmooth plugin location.

    Pjanssen, the http://script.threesixty.nl server seems to be down, so I can't download the script.
    Yep, I managed to not migrate my old website in time...
    I've put up a temporary download location for it: http://edgesmooth.pjanssen.nl/
    When I download the master ZIP from github, move the Installer folder into a MZP, then try a drag-n-drop install in Max 2010 32bit, I get these errors:
    The sourcecode on github does not contain any precompiled plugins or installers. It's just the source code for them.
    To compile the EdgeSmooth plugin from the source, you'll have to:
    1) Make sure you have an appropriate version of the SDK installed.
    2) (Optional) Add a build configuration for a new 3dsMax version.
    3) Modify the build_all.bat to suit your version requirements.
    4) Run build_and_bundle.bat

    This will build the plugin and bundle it into an installer.
  • Eric Chadwick
    Thanks for the new download link, that installer works perfectly.

    Is there a way for you to add a fix for the viewport display errors? If I harden some edges, then add an Edit Normals modifier, this fixes the errors. But it would be great if your script made the fix automatically instead.
  • Pjanssen
    Hmm I don't really have time for that at the moment. But the plugin exposes maxscript methods, so you should be able to create your own macroscripts which do the standard action + anything else you'd like to have done.
  • Eric Chadwick
  • Revel
    Offline / Send Message
    Revel interpolator
    Pjanssen wrote: »
    Could it be that the plugin.usersettings.ini is being overwritten, or not being written to by the installer? This should contain a path to the edgesmooth plugin location.

    You were right, i check the plugin.usersettings.ini at my office computer keeps on update with our company internal plugins list, even after I put in manually the part to edge smooth. Is there any way to reference the location of the edge smooth plugins other then use the plugin.usersettings.ini?
  • Pjanssen
    You could set the same key in the plugin.ini in the 3dsMax program files directory.
  • AlecMoody
    Offline / Send Message
    AlecMoody ngon master
    has there been any new info involving the viewport artifacts? It makes it very difficult to evaluate normal maps in the viewport.
  • Eric Chadwick
    No change. To solve it, add an Edit Normals modifier, and collapse it. You could add that step to a macroscript if you want.
  • AlecMoody
    Offline / Send Message
    AlecMoody ngon master
    yeah, that fixes most of the errors- I occasionally have some other funky stuff crop up and the edit normals modifier fix needs to be reapplied occasionally.
  • oXYnary
    Offline / Send Message
    oXYnary polycounter lvl 18
    I am not sure the edit normals collapse actually helps. Though it looks like it gets rid of the errors, in some cases as shown here it adds them which show up when you do a projection (and thus will be on your cage).


    Also, this doesn't seem to work correctly with the sbm export. It is confusing the smoothing groups. Before I post this for Jogshy, is this the fault of max? Is this plugin flawed? As you can see, the reimport of the obj even though it has the normals correct, but one smoothing groups. SBM incorrectly will not see the edge. In other words, SMB is limited to smoothing group based normal modification versus hard edge modification.
  • Eric Chadwick
    I didn't go any further than looking at it in the viewport. Hmm, I wonder if it might help to select all the normals and set them to Explicit, then collapse, then export?

    About your projection test... it says in the Help that some modifiers don't fully support edited normals, so I bet the Projection modifier is doing some wonkiness there.

    Is EdgeSmooth simply applying Smoothing Groups? Or is the script actually editing the vertex normals directly?
  • Pjanssen
    Is EdgeSmooth simply applying Smoothing Groups? Or is the script actually editing the vertex normals directly?
    It only sets smoothing groups and leaves the vertex normals to 3dsMax.
  • K-PAX
    Offline / Send Message
    K-PAX polycounter lvl 7
    Noors wrote: »
    It doesn't work as (I) expected. It's fine with loops but if is start to use the way i'd use maya soften/harden, the SG's go funky. I'm not sure it the way you wanted it to work thou.
    edgesmooth1.jpg
    Must be a freaking nightmare to code as it's pretty hard to do it manually with smoothing groups compare to edit normals (which is also a pain in the ass anyway)

    edgesmooth2.gif
    Apparently it's because you should share the SG on an additional face at the angles.

    this is what i waiting for . =]

    maya's soft hard edge tools is more powerful than this tools.
  • Pjanssen
    I don't have the time to maintain this tool, but the source code is available under BSD license on github:
    https://github.com/Pjanssen/EdgeSmooth
  • krabat
    this is great, please do not leave ...
  • Avis Para.doc's
    Offline / Send Message
    Avis Para.doc's polycounter lvl 9
    Hi! Can someone compile that awesome plugin to support 3ds max 2016 or at least 2015?
  • huffer
    Offline / Send Message
    huffer interpolator
    I don.t think you need it anymore since buttons for hard/soften edge are now included in 3dsmax 2016
  • Avis Para.doc's
    Offline / Send Message
    Avis Para.doc's polycounter lvl 9
    Wow, I've not noticed it in new features. Using 2014 yet. Thanks for the tip! Now I understand why there is no support any more, I believe autodesk bought that script like outliner but why it took a several versions to implement it in :poly121:
  • spacefrog
    Offline / Send Message
    spacefrog polycounter lvl 14
    Recompiles of Edgesmooth for all Max versions including Max 2016 can be found in this package at maxplugin.de
    http://www.maxplugins.de/r2015_files/pier/edgesmooth_1_0_2.mzp

    After i recompiled it myself i found out that generaous David Baker from maxplugins.de already has done so ...

    BTW: Autodesk did NOT buy Outliner, they did'nt buy anything from Pier Janssen
Sign In or Register to comment.