Home Technical Talk

Aliasing artifact on 3ds max with small resolutions

polycounter lvl 8
Offline / Send Message
Bleed polycounter lvl 8
Okay, I realize this is probably no place for beginners on 3ds max, but I'm at wits' end, I can't find help with this by searching.

Here's the problem, sorry for the low resolution, but only appears on small renders:



I get random antialiasing artifacts on anything that has mesh underneath. To be clear it's not colliding with underlying faces, there's a fair distance between the two.

I've tried switching antialiasing filters, I've tried messing with shadows, I've tried tweaking the model thinking it's some problems with modifiers etc.
Here's the weird part, If I move the model in any direction, the issue appears on the same exact place on the screen. For example, if the problem was on the sleeves and I move the model up, now the issue appears on the torso.

The only way to fix this, that I've found is by turning off antialiasing completely or increasing the rendering resolution, in which case the artifacts are still there just get smaller.

Here's a gif better depicting the artifacts. Notice the random black dots that appear on the model.



I'm using 3ds max 2014 SP6 by the way. I also don't think it's anything related to my computer or graphics card driver since max 2009 does not have this problem.

Any help at all is greatly appreciated.

Replies

  • Obscura
    Options
    Offline / Send Message
    Obscura grand marshal polycounter
    Sounds like a Zdepth issue to me. Is this the viewport, or an offline renderer?
  • Bleed
    Options
    Offline / Send Message
    Bleed polycounter lvl 8

    Obscura said:
    Sounds like a Zdepth issue to me. Is this the viewport, or an offline renderer?

    It appears on the Max's render window, as well as the output image. Does not appear in the viewport though.
  • Bleed
    Options
    Offline / Send Message
    Bleed polycounter lvl 8
    Also, can it be a Zdepth issue if it's not present when antialiasing is off?
  • Eric Chadwick
    Options
    Offline / Send Message
    Antialiasing is probably sampling the zbuffer, thus you are seeing more artifacts. Are you using a Camera to render, or just using a Perspective/ortho view? With a camera you can define near and far clip planes, which will give you higher resolution for the zbuffer. You can also define clipping near/far in the viewport but I don't know if that actually affects the render. 
  • Bleed
    Options
    Offline / Send Message
    Bleed polycounter lvl 8
    Antialiasing is probably sampling the zbuffer, thus you are seeing more artifacts. Are you using a Camera to render, or just using a Perspective/ortho view? With a camera you can define near and far clip planes, which will give you higher resolution for the zbuffer. You can also define clipping near/far in the viewport but I don't know if that actually affects the render. 

    Free Camera with orthographic projection ON. I've changed the clipping plane to 0 and 1000000013848427900000000.0 (max) respectively, I still get the same artifacts.
  • Eric Chadwick
    Options
    Offline / Send Message
    Whoa there pardner!

    No, you need the clipping planes to be as tight as possible around the meshes. So like a few cm closer than the character, and a few cm further.

    This will compress the range that the Zbuffer has to cover, so you will get higher precision.
  • RyanB
    Options
    Offline / Send Message
    Bleed said:
    Here's the weird part, If I move the model in any direction, the issue appears on the same exact place on the screen. For example, if the problem was on the sleeves and I move the model up, now the issue appears on the torso.
    Sounds like a hidden object that is rendered because "Render Hidden" checkbox is ticked in the Render dialog (skeleton?).  Could be in a referenced scene.  Whatever it is, it's in world space.
  • Bleed
    Options
    Offline / Send Message
    Bleed polycounter lvl 8
    RyanB said:
    Bleed said:
    Here's the weird part, If I move the model in any direction, the issue appears on the same exact place on the screen. For example, if the problem was on the sleeves and I move the model up, now the issue appears on the torso.
    Sounds like a hidden object that is rendered because "Render Hidden" checkbox is ticked in the Render dialog (skeleton?).  Could be in a referenced scene.  Whatever it is, it's in world space.
    Oh, I apologize I should have mentioned that. There are no hidden object and render hidden is off (I always keep it off), I've checked and double-checked. But then again, if this was the case the artifacts would have been visible regardless of the antialiasing setting.
  • Bleed
    Options
    Offline / Send Message
    Bleed polycounter lvl 8
    Whoa there pardner!

    No, you need the clipping planes to be as tight as possible around the meshes. So like a few cm closer than the character, and a few cm further.

    This will compress the range that the Zbuffer has to cover, so you will get higher precision.
    Okay, I've checked that just now. Went as close as possible with both planes, but unfortunately same issues. Maybe it's not related to the Zbuffer?
  • Eric Chadwick
    Options
    Offline / Send Message
    Could be an artifact of an ortho projection. Try turning this off, moving the camera far away, setting a low FOV, and adjusting the clipping planes.
  • Eric Chadwick
    Options
    Offline / Send Message
    You might also try disabling AA and using supersampling instead.
  • Bleed
    Options
    Offline / Send Message
    Bleed polycounter lvl 8
    Could be an artifact of an ortho projection. Try turning this off, moving the camera far away, setting a low FOV, and adjusting the clipping planes.
    Now we're moving into "what if" territories. There's a reason the camera is orthographic and close to the target. It's because I need it exactly this way. If I were to make those drastic changes then whether it works or not, would not matter anymore.
  • Bleed
    Options
    Offline / Send Message
    Bleed polycounter lvl 8
    You might also try disabling AA and using supersampling instead.
    But antialiasing and supersampling are two entirely different things, aren't they? And I need antialiasing to be on, otherwise what would be the point of this post.
  • Eric Chadwick
    Options
    Offline / Send Message
    Supersampling is basically high-quality AA.

    A distant, tight-FOV camera is the same thing as an ortho camera. Just different math.

    However the fastest way to fix this is to render 2x scale with no AA, then resize in post with resampling. Then you get AA without the artifacts.
  • Bleed
    Options
    Offline / Send Message
    Bleed polycounter lvl 8
    Supersampling is basically high-quality AA.

    A distant, tight-FOV camera is the same thing as an ortho camera. Just different math.

    However the fastest way to fix this is to render 2x scale with no AA, then resize in post with resampling. Then you get AA without the artifacts.
    Hmm, I'm a bit lost. When you say supersampling you mean the Enable Global Supersampler in the Render Setup> Renderer tab, correct?
    Also, how would I go about "resizing in post with resampling"? Is this done outside of 3ds max?
    And last question: What would orthographic FOV 29.863 400x400 w/h translate to distant, tight-FOV non-orthographic?
  • Eric Chadwick
    Options
    Offline / Send Message
    Yes.

    Render 800x800 with AA off. Resize to 400x400 in Photoshop. You could also do this in Max if you wanted to, in a variety of ways. Rendering directly inside the Material Editor is very quick.

    Switch camera to non-ortho. Change FOV to something small like 5 degrees. Turn off clipping. Dolly camera backwards until whole character is seen. Adjust clipping.
  • Bleed
    Options
    Offline / Send Message
    Bleed polycounter lvl 8
    Yes.

    Render 800x800 with AA off. Resize to 400x400 in Photoshop. You could also do this in Max if you wanted to, in a variety of ways. Rendering directly inside the Material Editor is very quick.

    Switch camera to non-ortho. Change FOV to something small like 5 degrees. Turn off clipping. Dolly camera backwards until whole character is seen. Adjust clipping.

    Ugh, so there's no way to fix this issue inside Max then... I've also been messing around with the perspective camera trick that you mentioned. It does give similar results, but it's pretty hard to match it 100% to an orthographic view, especially if I rotate it around.
    Thank you very much for your help, though.
  • Eric Chadwick
    Options
    Offline / Send Message
    This might also be a world scale issue. Try the Rescale World Units utility.
  • Bleed
    Options
    Offline / Send Message
    Bleed polycounter lvl 8
    This might also be a world scale issue. Try the Rescale World Units utility.
    I can't, it will mess up my mesh since it's skinned.
  • Eric Chadwick
  • Bleed
    Options
    Offline / Send Message
    Bleed polycounter lvl 8
    Yep, seems I'm very unlucky regarding this issue. I'm not able to use Rescale World either way since I'm also using nVidia PhysX/Cloth and that also causes issues.
    What I hoped would be a simple fix, now escalated to unfixable, thanks for all your help.
  • Eric Chadwick
    Options
    Offline / Send Message
    Um, it's totally fixable. Just render 2x size with no AA, rescale after. Old school trick. You can do it all in Max if you really want.
  • Bleed
    Options
    Offline / Send Message
    Bleed polycounter lvl 8
    Um, it's totally fixable. Just render 2x size with no AA, rescale after. Old school trick. You can do it all in Max if you really want.

    I prefer all in Max if you say it's possible, how would I go about doing that?
  • Eric Chadwick
    Options
    Offline / Send Message
    After rendering, load the image sequence and re-render at half resolution. Many ways to load and render an image sequence. Simplest is to go to Material Editor, load it in a Bitmap map, then right-click the preview sphere and choose Render.
  • Bleed
    Options
    Offline / Send Message
    Bleed polycounter lvl 8
    After rendering, load the image sequence and re-render at half resolution. Many ways to load and render an image sequence. Simplest is to go to Material Editor, load it in a Bitmap map, then right-click the preview sphere and choose Render.
    Quick question. How can I load the whole animation sequence, since it has like 100+ frames?
  • Eric Chadwick
    Options
    Offline / Send Message
    In the image loader there's an option for it.
  • Bleed
    Options
    Offline / Send Message
    Bleed polycounter lvl 8
    In the image loader there's an option for it.
    Oh cool, I never knew that option existed, guess you learn something new every day.
    Hmm, I guess this could work. Will update here if it does.
  • Bleed
    Options
    Offline / Send Message
    Bleed polycounter lvl 8
    I've decided to go with the perspective trick, much easier to do and does not give too different results from orthographic. The re-scale after gives me too pixelated results. Thanks a ton for all your help.
Sign In or Register to comment.