Community
Arnold for Maya Forum
Rendering with Arnold in Maya using the MtoA plug-in.
cancel
Showing results for 
Show  only  | Search instead for 
Did you mean: 

aiImage node noisy texture filtering in distance

6 REPLIES 6
SOLVED
Reply
Message 1 of 7
arnoldT4FLB
450 Views, 6 Replies

aiImage node noisy texture filtering in distance

Hi,

I just noticed that the aiImage node doesn't seem to filter correctly (or just not?).

I created a plane, assigned an aiFlat material  with a gras texture and switched between the maya native "file [texture]" node and the arnold aiImage node. The maya native one seems to render much smoother (correctly) in the distance.

I tried adjusting all settings in the aiImage node, but nothing seems to change anything. Is this expected behaviour?
Render settings - Camera (AA) = 3

 

image filter comparison.png

6 REPLIES 6
Message 2 of 7
Stephen.Blair
in reply to: arnoldT4FLB

A Maya file node is replaced with an aiImage at render time.
Export the shader tree with a Maya file node and then re-import. You'll get an aiImage with probably some other nodes connected (eg to replace the place2Dtexture)



// Stephen Blair
// Arnold Renderer Support
Message 3 of 7
arnoldT4FLB
in reply to: Stephen.Blair

thanks for the reply.

I don't know if you have some special export/import settings, but my file texture node won't be replaced with an aiImage node.export_import.png

does your aiImage node not produce noisy results at 3 Camera (AA)?

Even on 8 Camera (AA) settings the aiImage node produces a bit noisy results on the horizon line of the plane for me and that isn't reasonable when I try to render animations.

Message 4 of 7
thiago.ize
in reply to: arnoldT4FLB

Post your scene here, along with the texture, and maybe someone can take a quick look to see if there's any obvious issues. In theory, the arnold image node should work properly and not be noisy at AA=3.

Message 5 of 7
arnoldT4FLB
in reply to: thiago.ize

Hi,

thx for the reply.

I attached a maya 2020 binary and ASCII file. The persp camera has a bookmark. I left out the image itself, you would have to repath them anyway and the effect should be ovbvious with any file. I added an aiSwitch node for a side by side comparison, feel free to attach the texture outputs directly to the aiFlat shader.

Also, thanks Autodesk... again:


Autodesk Forum:

The attachment's texture_noisy_aiimage_maya2020.mb content type (application/octet-stream) does not match its file extension and has been removed.


So that's why I attached a zipfile too with the *.mb file...

Message 6 of 7
thiago.ize
in reply to: arnoldT4FLB

I exported your scene to a .ass file to see what is really being fed to Arnold, and as Stephen said, under the hood mtoa is using an Arnold image node for both versions. The reason the right side has all that noise is that the image node has its uvcoords param set to the place2dTexture. When uvcoords are set, it means Arnold can no longer compute the uv texture differentials and the highest res mipmap of the texture is used and we get this noise that only goes away with really high camera sample rates. Here's what it looks like in the .ass file. Note how the uv_transform is fed into the image node's uvcoords:

image
{
 name aiImage1
 filename "your_texture.tx"
 uvcoords place2dTexture1
}

uv_transform
{
 name place2dTexture1
 repeat 5000 5000
}

The left side, which has no noise does the opposite, the image is instead fed into the uv_transform, which is then passed to your switch shader:

image
{
 name file1
 filename "your_texture.tx"
}

uv_transform
{
 name file1/uv
 passthrough file1
 repeat 5000 5000
}

So, that's what is going on under the hood. The question on our end is why does one way do the good method and the other way does the not at all good method. I'll report back if I can find more info on this. Thanks for bringing it to our attention!

 

By the way, for those interested, the optimal solution would be to do everything in the image node. In this case not only does it do the proper filtering, but it'll be slightly faster (barely a fraction of a percent) since it just evaluates one node instead of two nodes:

image
{
 name aiImage1
 filename "your_texture.tx"
 sscale 5000
 tscale 5000
}

 

Message 7 of 7
arnoldT4FLB
in reply to: thiago.ize


@thiago.ize wrote:

[...] When uvcoords are set, it means Arnold can no longer compute the uv texture differentials [...]

Ah, I see. That's the reason why there is an aiUVTransform node. I think it can manipulate the coordinates and preserve the differential calulation. I am actually trying to deforming the UV coordinates and wanted to use world space coordinates, but I guess I have to stick to UV space if I want smooth texture sampling.

 

Thank you so much for the effort.

Can't find what you're looking for? Ask the community or share your knowledge.

Post to forums  

Autodesk Design & Make Report