Jump to content

Suppress small Artefact in PBR render


Recommended Posts

Hi guys,


I was playing with mantra PBR to compare how it behave against Maxwell.

The render looks good but i have small artefact in certain area (square area), and i can't suppress them


i have try :

- polydoctor

- bias along normal

- facet node

- modify raytracing bias value up/down

without success


my settings are :


- pixel sample 4*4

- min sample 1

- max sample 64

- noise level 0.001

- sample lock on


Thanks for your lights or any useful input ! :)






Edited by sebkaine
Link to comment
Share on other sites

Thanks Petr !


sorry you are right the img is compress after upload ! :)

Here is a new attachment with a zoom on the black mark.


i think you are right i would also bet on a problem with the normals.

but i have check your link and the Mantra Shader already use the Geometric Tangent style.


So pb still not solve at the moment ...






Link to comment
Share on other sites

That looks like errors in the ray variance antialiasing, I'm not sure the best way to fix it without brute forcing the pixel samples but I see this error quite often when trying to chase noise out of shadows/darker areas by lowering the noise threshold

  • Like 1
Link to comment
Share on other sites

I got similar square pattern on dense random point cloud in vops today (with H13) when rand(@P) was set to "Clamp Position to Integer". Same think could be forgotten somewhere in the shading/render pipeline (sampling area (as this option is on by default for rand() vopspo)).


Btw.: I would definitely try to submit to support that file+render with pointing to that vex: rand(@P) "Clamp Position to Integer" hint (could be just error as this is on by default)




Did you tried to rise up Min Reflection Ration (on the Mantra ROP)?


What's your Houdini build version?

Did you tried different shader (more simple one)?

What's your lighting setup? Only Env Light? Is there HDR image in Env light? If do, does it have enough quality to serve as HDR light source (floating point, big enough resolution, without artefacts)?

Does the size of that square artefact match the bucket size? Did you tried different pixel filter?

Edited by pezetko
Link to comment
Share on other sites

Thanks a lot for all those great suggestion.


I think we are getting closer. It looks that john is right one of the possibility is error done in ray varriance antialiasing

when i go up to pixel sample 8*8 max sample 64 the problem is reduced but some black mark are still there.


i have

- reflection limit = 4

- diffuse limit = 2

- min reflection ratio = 0.01

- use direct lighting as background color

- i am not in IPR mode


- the setup is very simple a hdr + portal geometry

- the hdr is fine and come with maxwell 3

- i use houdini 14

- the artefact are smaller than my bucket size


Photon Mapping could be the way to go.


In this regards mantra can't compet with maxwell, which doesn't give any flicking and maxwell is i would say a little faster.

but using photon map could give the edge to mantra ...


I'm gonna try this way now ! Hope that brute forcing the scene is not the only alternative to this ?





Edited by sebkaine
Link to comment
Share on other sites

Yep i can confirm that the problem of black mark in dark area is coming from errors in the ray variance antialiasing.

By using a pixel sample of 6*6 and a constant ray sample of 36 the problem disapear completely


So now the question is to know if it's possible to avoid those mark with ray variance activated.


I am not sure that ray variance is a such good idea as

- it introduce the possibility of flicking area and glitch, and after 2h per frame of computation you don't want flicking ... :)

- pixel sample 6*6 with fix sample at 64 is pretty good with few noise + no black mark, and faster than 8*8 with ray variance beetween 1-64 on my scene


Maybe i'm telling total bullshit but i have find quite the same thing with volumetrics where i always disable stochastic sample,

while it's slower it give me a no flicking warranty.


But maybe those problem are more coming from my ignorance, than from mantra ... :)

Edited by sebkaine
Link to comment
Share on other sites

I managed to got that square artefacts with IPR and "Preview" set to "On" quite easily on this simple scene, when I turned Preview off they were gone.


The second way to eliminated them the was to rise up only the "Min Ray Samples" at least to 3.


Hope it helps.





Edited by pezetko
  • Like 1
Link to comment
Share on other sites

Thanks a lot for your help Petr, i think that you give me the answer.


if i augment min ray sample the black mark disappear.

i am trying a 5*5 with ray variance (25-50) and it's pretty fast and no black mark.


increase min sample is good enough solution imo, far better than pushing pixel sample :)



Thanks John i'm gonna investigate the min reflection ratio also !

Edited by sebkaine
Link to comment
Share on other sites

so with :

- PBR mode

- pixel sample :5 *5

- min sample : 25

- max sample :50

- noise : 0.001

- reflect limit : 2

- diffuse limit : 2

- min reflectio ratio : 0.001


i get an image with very few noise and no artefacts. i only have fireflies on the floor but it could be because of my use of GGX instead of blinn.




But in 1080P i am already at 2hours 40minutes of rendering time, and there are nearly no shading.

I think Maxwell with only diffuse / glossy surface would make a cleaner / faster job with a warranty of 0 flick.


So i would have an other question for you guys :)

- i want exactly this quality.

- but i want it with render time divide by 4, around 40minutes per frame in 1080p.

- and i want a free flicking warranty technics.  :)


What are the best tool in mantra to achieve this ?

- Bake diffuse irradiance into a Photon Map ?

- Bake diffuse irradiance into a Point Cloud ?

- Bake difffuse irradiance into a Voxel Grid like brickmap ?

- other obscur houdini magic tricks ?


Thanks for your input, i will try to post the scene without breaking the 16mb limit ...


OpenVDB and brickmaps have this similar concept of volume tree structure. But OpenVDB looks far more advanced than Brickmap structure.

Would it be possible to imagine a way to store all data at a reference frame in a VDB volume in order to get some sort of Voxel approach like Maxwell Do.

It could be a stupid idea , but does anybody here have try to use openVDB to store irrradiance or other lighting info ?


just some reading ....





You can dowwnload the complete scene here






Edited by sebkaine
Link to comment
Share on other sites

With Photon Map + Portal i am now able to speed up things.

I have try to push optimisation of render time as much as i can.


now in 720P i can render the image in 32min,

so basically 1h10min in 1080P. Photon Map allow to cut the rendertime by 2.3.

Some little detail were lost but the outpout is good enough imo.


mantra give very solid outpout but i would say that if you compare the time it take to setup everything

and the fact that the outpout is prone to flicking etc ... i would say that Maxwell has the edge on this case.


I will try to investigate if there are better way to bake stuff than photon map ?







Link to comment
Share on other sites

Awesome post!


I am not very experienced with portal lights but I would suggest, if you didn't try it yet,  to decrease pixel samples by 1 and increase just the light sample quality to see what happens.


Recently I am having the same experience with Mantra vs "other renders" but in my case is Mantra and Corona which guys here use it a lot at work it has a very fast preview for starters so figuring out how to get an edge with mantra with speed and setup, which imho is still overall more flexible and robust, is a really great exercise.


Keep the tips coming!

Edited by Mzigaib
Link to comment
Share on other sites

Thanks for the tips Michel , i'm curious about corona  ...looks very cool !


I am missing the now old school workflow were,

- you take all your diffuse component

- you compute a brute force GI pass with ultra high quality

- you bake the result of this computation into the medium the most efficient (ptc / brickmap ...) ?

- then for all the rest of your anim you are just making a read for all diffuse of non moving object

- your rendertime in 1080P is around 2 minutes ... for diffuse / indirect diffuse


Something like Panta-Ray on avatar



When i was using prman, the R&D guy had figure a way to access vray GI cache.

he was able to convert those in an efficient .ptc and rendertime were just blazing fast.

this was extremely cool !


I don't like photon map, i have always bad experience with them they are long to setup , prone to flicking and often inaccurate.


so sending a scene into mantra in PBR mode for 4 hours and store the result of this somewhere and just read it would be great !


I am pretty new to mantra so i am sure that it must exist a houdini nerds that have already achieve this on odForce ?

i think mantra get all his interest from the fantastic flexibility it offer, i'm quite sure that SYmek / eetu / Mario ... should have their idea on how to do this :)


i post the maxwell pass in 720p with 1hour of computation , the result is better than mantra and the setup time is 15seconds :)


Edited by sebkaine
Link to comment
Share on other sites

I have make a last try by decreasing pixel sample and augmenting light sample quality , and i gain a little sharpness.


Here is a new render in 1080P => 1h14 of computation

- pixel sample 4*4

- min sample 20

- max sample 60

- noise level 0.004


- PBR + Env Direct Lighting (sample quality 1.5) + Portal Geo + PhotonMap (filter sample 1 / Distance Threshold 1)


I think i a have reach the max i could do for reducing render time without affecting quality too much.

Now to go around 45 min per frame i would see 2 way ...

- replace direct lighting by ambient occlusion

- find a better way to cache GI ( ptc ? voxel tree ? other ? )


At the end Mantra is very solid, and the flexibility it offer is still very cool. In this regards better than Maxwell :)



Edited by sebkaine
  • Like 1
Link to comment
Share on other sites

I did this exact same test with exact same scene about 3 years ago Houdini vs Maxwell vs Arnold and I have gone pretty extensive pretty crazy with the tests. And almost every test, Maxwell came on top. I did not cut any corners and did not use any bias like photon mapping. Mantra was a little ahead of Arnold by then.

I did a similar test using a different scene recently and I saw that Maxwell again came on top but this time Arnold was pretty close to it and Mantra was lagging behind.

I have also experienced the same errors with ray variance. I am not sure about the source of the issue but I believe there is a lot of room for improvement for Mantra. Especially now there is tougher competition from Solidangle and Pixar's RIS is really good, Mantra has some catching up to do.

Link to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.

Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

  • Create New...