Home Technical Talk

3Ds Max - How do I get my viewport to display unfiltered low res textures?

I have a problem that's driving me insane.

Background:
  • I'm learning 3dsm and modelled a bus in 3dsm 18. I'm doing a low-res texture (128px png 32 bit depth) 
  • 3Dsm's viewport shows a filtered version of the texture. It looks like this. Left side is 3Dsm viewport, Right side is photoshop. 
My unsuccessful attempts to try to remedy the problem:
I have also googled, but I have not come to a solution. Does anyone know how to make 3Dsm viewport display unfiltered low res textures? Thank you in beforehand. 

Replies

  • ridger_drift
    Offline / Send Message
    ridger_drift polycounter lvl 5
    Try this possible solution (I'm on Max 17, but it has worked in the past when I worked on older Max versions):

    1) Press F10
    2) Scroll down to "Bitmap Performance and Memory Options" and enter "Setup:
    3) Enable Proxy System and set Downscale Map to "Full"
    4) Set Render mode to ".......(High Performance, High Memory)"
    5) Click on the "Generate Proxies" now button on the bottom.

    You may need to restart Max.
  • Raka_Maka_Phon
    Thank you ridger_drift, I tried what do you suggested but unfortunately it does not help. The renders turn out crisp, but the viewport still shows a blurry version of the texture. I have attached a screenshot of the result. Render is to the left, and viewport to the right.





  • ridger_drift
    Offline / Send Message
    ridger_drift polycounter lvl 5
    Have you tried setting material option to "Show Realistic Material in Viewport"?
  • PolyHertz
    Offline / Send Message
    PolyHertz polycount lvl 666
    Customize > Preferences > Viewports > Choose Driver > Legacy Direct 3D

    Autodesk never added the ability to view textures unfiltered in the viewport when using Nitrous.
  • poopipe
    Offline / Send Message
    poopipe grand marshal polycounter
    ShaderFX will probably support it
  • Axi5
    Offline / Send Message
    Axi5 interpolator
    The pyramidal or summed area filters in the material are anti-aliasing techniques which you don't want. You want to find a way to switch from bilinear filtering to nearest neighbour filtering which apparently just isn't available in nitrous viewport. 

    I'm not a Max user any more so I don't know what the exact solution is for you but I'd Google around for nearest neighbour filtering in Max. 
  • poopipe
    Offline / Send Message
    poopipe grand marshal polycounter
    This is in Maya shaderFX but should work the same in max

    Make a new shaderFX material,  go to advanced mode,  delete everything and then recreate what you see below

    In the texturemap node simply set the filter type to point

  • Raka_Maka_Phon
    Thanks for the replies everyone!
    Have you tried setting material option to "Show Realistic Material in Viewport"?
    Yes. That did not work unfortunately. 

    poopipe said:
    This is in Maya shaderFX but should work the same in max

    Make a new shaderFX material,  go to advanced mode,  delete everything and then recreate what you see below

    In the texturemap node simply set the filter type to point

    Thank you. I'll have to google and familiarize myself with ShaderFX, I will attempt this. Much appreciated. 

    It truly boggles the mind that an expensive application such as 3D Studio Max does not have native support for showing unfiltered low res textures in the viewport. Maybe it's even best to abandon 3Dsm and use another program. It feels like maybe I am using the wrong application if it forces me to jump through hoops just to show a low res texture in the viewport. 
  • Raka_Maka_Phon
    I tried with ShaderFX but it did not work. Doesn't seem possible in 3Dsm. Time for me to find another application than 3D Studio Max. Thank you for trying to help though. I really appreciate it. 




  • poopipe
    Offline / Send Message
    poopipe grand marshal polycounter
    It's got to be a bug surely? 

    so..
    I've tried the following in both 2017 and 2018 

    Doing the shaderFX thing - no joy,  it completely ignores filtering from texture samplers
    I tried loading an old HLSL shader I wrote that had filtering disabled for this specific purpose
    I modified the standard DX11 HLSL shader  to disable filtering 

    nothing worked. In all cases it ignores what the texture samplers say.  which is pretty crap. 

    I suspect it's like this for a while (since the full DX nitrous support came in with 2016 I expect)  I've not needed to do this since i was using 2012

    As  Polyhertz says - Its worth trying the legacy DirectX/OpenGL viewport drivers  - you certainly used to be able to display unfiltered maps on a standard material in old versions of max (pre-nitrous)  


  • ProzackPH7
    Not sure if this helps, but instead of changing your Driver to Direct 3D just change it to Open GL.
    It annoyed me for hours to just have low res textures come up low res so I can line my UV maps up correctly.
  • DynamoDavo
    Hello! I've encountered the same issue and have been able to solve it.

    Here's what I did:
    1. Switch your Display Driver to 'Legacy Direct 3D' (as suggested by PolyHertz earlier in this thread)

      Customize > Preferences > Viewports > Choose Driver... > Legacy Direct 3D



    2. Restart 3dsmax so that the new driver is used.

    3. Update the following Direct 3D settings. (I suspect that not all of these are required, but it works for me!)

      Customize > Preferences > Viewports > Configure Driver...



    4. Ensure that 'Enable Hardware Shading' is disabled for your viewports.

      Right-click the viewport mode text in the top left of your viewport ( It'll say [Smooth + Highlights +HW] or similar).
      > Lighting and Shadows > Enable Hardware Shading (<-- Make sure this is not enabled).

    5. If you intend to render, ensure that your textures have their 'Filtering' mode set to 'None' in the Material Editor.



    Good luck! Please let us know if this helps you out!
  • tuxmask75
    Offline / Send Message
    tuxmask75 polycounter lvl 10
    @DynamoDavo
    Seems that the legacy Direct3D mode no longer works properly in both 2021 and 2022, anyone know if there was another method introduced recently?
  • Eric Chadwick
    I wonder if you could rig something up with a custom OSL node?
  • PolyHertz
    Offline / Send Message
    PolyHertz polycount lvl 666
    You need to use ShaderFX: Create a ShaderFX material with the TextureMaps "Sampler / Filter" property set to "MIN_MAG_MIP_POINT" (This setting used to be broken in ShaderFX but apparently it got stealthily fixed in one of Max 2018s updates). If you want the material to be unlit just plug your maps directly into emissive, and set MaxNumberLights to 0.

    I'd recommend saving the material as a .fx since ShaderFX still has a bug (at least in Max 2021, haven't checked 2022) that resets the "MIN_MAG_MIP_POINT" property anytime the .sfx graph is reloaded.
  • Cathodeus
    Offline / Send Message
    Cathodeus polycounter lvl 15
    Best solution to date in 2023, work in previous Max versions too : 
    1. Create your Material
    2. Inside the texture channel add a "composite map"
    3. Than add inside the composite map a bitmap with filtering set to none
  • iam717
    Offline / Send Message
    iam717 interpolator
    I had a similar issue with 2016 version and the view port for me the solution was in view port [+] Display performance, increase the resolutions, profit.  Works great for me with adding a plane with reference images, hope it works i needed it for the reference and plane stuff.
  • Eric Chadwick
    Can confirm this works in latest version!


Sign In or Register to comment.