Home Technical Talk

3Ds max 2014 / Unity - what type of smoothing is this and how do I work with it?

polycounter lvl 3
Offline / Send Message
amarillosebas polycounter lvl 3
Hey all, so my problem is that, for some reason I don't know, I ended up with this type of smoothing, that frankly, I don't understand. Now, I do have a fairly good (I think) understanding of what are smoothing groups and how they work. So, I will show you the model I'm working with, without any smoothing, with smoothing groups and with this weird smoothing I don't understand.

No smoothing:
tvDgpzW.png

With smoothing groups:
bm3zBF2.png

And, this weird smoothing:
v7S4WfO.png

Here's a sketchfab with the model having this weird smooth (which is downloadable, by the way):
https://skfb.ly/CWvJ

Now, the issue here is that both me and my client actually like how this weird smoothing looks. Here are some images of how the model looks in the game engine (Unity).

No smoothing:
aJcnHmA.png

Smoothing groups:
0usW9dE.png

With weird smoothing:
OHZ0oaS.png

As you can see, there are some patches that have no smoothing. I am, very desperately now, trying to smooth them, so they don't look all ugly like that, but I can't figure out how. Applying smoothing groups has no effect unless I transform to editable mesh and then to editable poly, but then I lose the weird smoothing.

Would you please help me to understand this? I really need to have all my model looking "weirdly" smoothed. And also, sorry for my lack of a better word. Thanks!

Replies

  • [Deleted User]
    Options
    Offline / Send Message
    [Deleted User] polycounter lvl 3
    Compare how normals are pointing in attached image. From top to bottom:

    - with smoothing
    - no smoothing
    - weird smoothing

    In the weird one most of the normals are point straight up, that's why it fools you in thinking that it's one flat geometry. The faces that doesn't look flat have their vertex normals pointing in the same direction that Primitive normal is pointing. I can mimic this in Houdini when select any face and cusp its normals.

    Can you select one face in 3dsmax and change its normals? But only one face.
  • [Deleted User]
    Options
    Offline / Send Message
    [Deleted User] polycounter lvl 3
    Another image:

    - top one shows primitive/polygon normals (I think primitives in 3dsmax are called faces if my memory doesn't fail me?) of with two faces cusped by me
    - middle shows cusped vertex normals of two faces by me
    - bottom one shows vertex normals of original downloaded geo

    As you can see after I manually changed vertex normals in middle example they started pointing in the same direction that face/polygon normal is pointing.

    Now, can you do this automatically in 3dsmax? I don't know. In Houdini manipulating normals is a piece of cake.

    I can record video to show you this more interactively.
  • amarillosebas
    Options
    Offline / Send Message
    amarillosebas polycounter lvl 3
    Thanks a lot. I will try it later when I can and I will post my results. I'm not sure really how to manipulate normals individually, but I'd guess it's very possible.
  • [Deleted User]
    Options
    Offline / Send Message
    [Deleted User] polycounter lvl 3
    In Houdini I can paint selection and just force this selected polygons to have cusped normals. Or do this procedurally.

    I think in 3dsmax you could use Edit Normals Modifier.
  • RN
    Options
    Offline / Send Message
    RN sublime tool
    That's an interesting challenge.
    Download this MacroScript to your desktop, then drag and drop it on a 3ds max viewport:

    Macro_WeirdSmoothing.ms

    To use the macro script, go to Customize -> Customize User Interface... -> Toolbars tab. In the Category combo-box select "Weird Smoothing," then drag the Weird Smoothing tool to your toolbar. It will become a button.
    Select mesh objects and press the button. It will modify all the normals of faces without smoothing groups to be pointing up.
    This means that before pressing the script button, you need to have gone to your mesh (in Edit Poly or Edit Mesh mode) and set one or more faces to have "zero" smoothing groups. That is, no smoothing groups at all.
  • RN
    Options
    Offline / Send Message
    RN sublime tool
    It's important to point out two things:


    - The effect comes when you have several normals pointing in the same direction, so the lighting term of the surface will be the same -- you won't see the facets of the mesh.
    What gives the brightness of the overall surface is how much these normals are pointing in the direction of the direct- or point-light.
    The light doesn't necessarily come 'down' at the surface, it may come from any direction.


    - You only need to use this approach of editing the normals of the mesh if you wish to have this effect only on certain parts of the mesh, so you can mix these areas of edited "fixed normals" with areas of smoothing group \ automatic normals.
    If you want this flat shaded effect on the entire mesh then you can just use an 'unlit' shader instead of having to edit normals. An unlit shader is a very simple shader program that just outputs a single colour which may be sampled from a texture or calculated in some simple way. It's much easier.
  • amarillosebas
    Options
    Offline / Send Message
    amarillosebas polycounter lvl 3
    Well everybody, many thanks to all because I managed to do it!

    Thanks for offering mantragora, but this is something that I had to do by myself. Still, I am in your debt. Kryzon, thank you very much for your help. I did try to use your script, and I followed your instructions as best as I could, but sadly nothing happened, though your explanation was very helpful.

    What I did was the following. I added an Edit Normals modifier and proceded to just copy values and paste them on the normals I wanted to correct. After that, just converted to editable poly again. It was pretty simple but I don't think I could ever have come with the cause of the problem this fast.

    Well, again, thanks guys!
Sign In or Register to comment.