No texture filtering works best for vray?

Hey there. So I had a scene where I was looking at a flat plane with a texture on it from a glancing angle, and the texture was getting really blurry.

After some playing, I found that setting filter to “None” in the texture solved the issue. I assume the same would happen if I turned down the blur setting to a very low value.

So my question is, do you guys find that you’re constantly turning your blur settings down or off with textures in vray? Should I just default all my texture maps to no blur? Is there a disadvantage to doing that (the textures get too sharp in other situations?)

- Neil

it speed up rendering time, too. I always turn mine to none with a .01 blur value.

Turning off filtering has massive speed benefits when used in displacement maps and refraction / opacity map slots. You may find that using bitmaps to drive things like bump, glossy and reflection strength values can lead to tough sampling situations which don’t clean up easily. The resident vray sampling expert Lele from the forum has said that he converted all of his big files to multiresolution exr files using the “image to tiled multires exr” tool you get with vray, then loaded all his images using the vray HDRI loader instead of the standard max bitmap. There are more interpolation settings in this loader which might take a tiny bit longer to render but are apparently incredibly smooth and resolve the sampling issues with tricky bitmaps. He was the head of image pipeline / quality for pixomondo on oblivion and had some really detailed maps on the flying droids and used this trick to sort things out. Since it’s making a multi res exr file too, you can feed in an 8k map, it’ll make recursive version that get smaller and smaller by powers of 2 and then pick the appropriate one for the distance of the object when it comes to render time, so it’s more memory efficient too.

Filtering Off works best most of the time, but sometimes I have bump maps which are not that great and look too rough (too sharp) without it, in that case I find it’s better to leave the filtering on, but reduce blur to something like 0.1-0.5

Starting to do this also but to answer your question, yes 100%, put everything to .01

I switch all of them to ‘none’ with a script, and then during testing if some are still super noisy i’ll put it up to .2 or whatever it needs. usually only do that in the reflection glossiness when it’s picking up light at a glancing angle, rare that it needs doing in the diffuse too.

Yes. there is a script for this over on the MAXSCRIPT site.

Thanks for all the feedback everyone!

Yup, as someone who deals with prman all day, I know lots about the advantages of mipmapping :slight_smile:

- Neil

I find the most important map to always have set to ‘None’ is the bitmap on the opacity channel. Elsewhere it doesn’t seem to make much difference in rendering times. Also, once the map is set to ‘None’ it will ignore the Blur value, so you don’t need to waste time changing it. Here’s a script that does this to all the materials on objects in a scene:

-- Script to set all texture filtering on bitmaps on an opacity map channel to ‘None’

(
    fn getMtlMaps mtl maps =
    (
        if mtl != undefined and mtl.numsubs != 0 do
        (
            for m = 1 to mtl.numsubs where (mtl != undefined) do
            (
                if (isKindOf mtl SubAnim) and (isKindOf mtl.Object textureMap) do
                (
                    append maps #((filterstring (getSubAnimName mtl m asstring:on) “:”)[1], mtl.Object)

)
                getMtlMaps mtl maps
            )
        )
    )

(
        local mapSlots = #(“Opacity”, “Cutout Map”)
        for obj in geometry where obj.material != null do
        (
            mapsArr = #()
            getMtlMaps obj.material mapsArr
            if mapsArr.count != 0 do
            (
                for i = 1 to mapsArr.count where findItem mapSlots mapsArr[1] != 0 do mapsArr*[2].filtering = 2*
            )
        )
    )
)

It depends on the specific usage of the map; turning off filtering for opacity maps has definite advantages when rendering tree leaves and such. However if you have massive amounts of (tiled) textures (either OpenEXR or .tx/.tex files) in VRayHDRI, then turning off filtering completely may drastically increase the RAM required for rendering. I still remember vividly a client case where the artists had worked on individual assets and turned filtering off because “it made things crisper” and then when all assets where brought in the same scene, the RAM exploded… Filtering off might also cause flickering and scintillation in animation. But if you are rendering stills and the textures mostly fit in RAM, then I guess turning filtering off will produce somewhat better results.

Best regards,
Vlado

Thanks for the extra info Vlado. I’ll probably do some more experimenting and post a tutorial to try and organize all of the caveats.

- Neil

BTW, I assume the ram usage went so high because, since the images weren’t being blurred, the renderer was choosing a larger mipmap level than it would normally choose, and hence had way more texture data in memory?

- Neil

Yes, exactly.

Best regards,
Vlado

There is a reason I need 32gb of ram and this is it haha!

0.2 blur is the magic number for me as well.

The HDRI is about the only thing that I don’t disable filtering on. Just before render-time on every project, I run a script to disable it on all other textures/bitmaps.

Posted a new tutorial on my website discussing the advantages and disadvntages of reducing bitmap blur. Thanks to everyone for your feedback:

http://www.neilblevins.com/cg\_education/bitmap\_blurring/bitmap\_blurring.htm

- Neil

read it, thanks![quote=“Crayox13, post:8, topic:42801, username:Crayox13”]
Posted a new tutorial on my website discussing the advantages and disadvntages of reducing bitmap blur. Thanks to everyone for your feedback:

http://www.neilblevins.com/cg\_education/bitmap\_blurring/bitmap\_blurring.htm

- Neil
[/quote]