Announcement
Collapse
No announcement yet.
GTR and animation fireflies
Collapse
X
-
Do you mean GGX right?
We've experienced similar behaviours, i was just going to do some tests these day.
So far my solutions have been or pumping up A LOT glossy subdivisions/AA or reverting to ward as you did, but i guess there must be a more practical solution from the renderer side.
-
-
Originally posted by vlado View PostCan any of you get me a scene where this can be reproduced?
Best regards,
Vlado
Ok, so i managed to try and reproduce this problem.
I thought it was more or less a general problem with ggx needing more sampling (and it still is, i mean, with more glossy subd it tends to be removed), but with these simpler tests i think it just goes a bit crazy when the incidence angle of the camera starts to be very hard.
I made two scene, and here are two images. I think the first better shows this. Of course for a still it doesn't seem to be a problem, but with an animation where this small fireflies change every frame it gets really visible.
I pumped up the exposure on the images to better show it, let me know if you need anything. You may need to download and see the images at their original resolution, it can be difficult to spot these small single pixels.
Studio-like beauty shot
ggx_fireflies_prodscene.zip
Teapot test scene
ggx_fireflies_teapot.zipLast edited by kagemaru; 27-03-2015, 04:44 AM.
Comment
-
I think that's a different problem from the isolated bright speckles that the guys above have.
GGX has a longer tail which means that it tends to reflect from other directions as well, and not only from the perfectly specular direction. It's importance sampling is also not perfect in those cases, and it comes out noiser. You can improve this by increasing the tail falloff a bit, f.e. 2.5 might work better. Or you can maybe use a falloff map to make the glossiness higher at low angles.
Some other renderers seem to try to solve the problem by truncating those very bright contributions at low angles, but this leads to overall darkening of the surface.
It may be possible to improve the sampling for these cases - will need to think about it...
Best regards,
VladoLast edited by vlado; 27-03-2015, 06:22 AM.I only act like I know everything, Rogers.
Comment
-
Originally posted by vlado View PostI think that's a different problem from the isolated bright speckles that the guys above have.
GGX has a longer tail which means that it tends to reflect from other directions as well, and not only from the perfectly specular direction. It's importance sampling is also not perfect in those cases, and it comes out noiser. You can improve this by increasing the tail falloff a bit, f.e. 2.5 might work better. Or you can maybe use a falloff map to make the glossiness higher at low angles.
Some other renderers seem to try to solve the problem by truncating those very bright contributions at low angles, but this leads to overall darkening of the surface.
It may be possible to improve the sampling for these cases - will need to think about it...
Best regards,
Vlado
This is a screen from a render we are doing at the moment, the surface is highly irregular and there were plenty of those fireflies that went away with a ward brdf or pumping up ggx glossy subdv.
As you said, since ggx has this more complex tail, of course it was going to need more samples to be cleared: things is that in situation like these the noise/fireflies we get it's much more visible than one of a typical low dmc settings (that sometimes could be accepted as film grain), cause this pixel-sized variations really gets the eyes attention in animation.
The solutions you gave have their effects and can be used (thanks btw), but they are more workarounds then anything else and give us a quite different output.
I would say that the "truncate" solution is more production oriented: i would go a "slightly less bright but clearer image" against a "perfect bright but fireflied imaged" any day of the week, especially if i think that everytime one of the guys here use ggx i would have to fear the dreaded speckles
Ggx really is a step ahead.
And again, speaking about different darkening, in the same example as before, if i pump up the glossy subdv to 96 from 32, fireflies go away but as you can see if you do a before/after, the image gets darker anyway.
Anyway i can't stress enough about the great support you guys give us, thanks again.
Comment
-
I've had quite a lot of problem with fireflies in a ggx shader aswell.
When doing some fabric shaders, mimicking the falloff of a shader, which reacts to lighting, I quite like the result of lowering the tail falloff to a pretty low number. However this seemse to be where the firefly issue gets very noticable. If you combine it with some anisotropy you gets huge issues.
Before i've been able to fix fireflies in reflections by turning on subpixel mapping and clamping (on some value between 1-10). This does however not fix this issue. Neither does the new max ray intensity setting.
The only thing that seemse to reduce the fireflies is by increasing the reflection subdivs on the shader by very high numbers.
I've made a quick scene that should replicate the problem. (however its a maya scene)
But im not sure if im allowed to upload it as it says; invalid file, when I try to.
But these settings should replicated the problem clear enough I belive (and what I used in the preview below):
Glossiness: 0.6
GGX tail falloff: 0.5
Anisotropy: 0.75
Anisotropy Rotation: 0.25
IOR: 1.85
CG Artist - RnD and CG Supervision at Industriromantik
Comment
-
May I ask what's the reflection amount set to?
Historically, even with the simpler BRDFs at the avail (phong/blinn.) fireflies were caused bay super reflective shaders, WELL outside of the physically plausible bounds (ie. pure white, or thereabout, reflectance.), in conjunction with bright lights (even if those were in the physically plausible ranges.).
Ward, and all the more so GTR (GGX is a specific GTR domain case, when Gamma, or lobe-to-tail ratio, is at 2.0), especially when set to anisotropic, would exacerbate the issue, due to the much more complex behaviour those BRDFs sport.
For example, it's very common to find glass shaders with a pure white reflectivity, when in reality, for most of the glasses found in nature, the reflectance never goes above 15%, and it's often much lower. Some coated ones may be higher, but never near 100%.
That you should see issues at extreme grazing angles, under fresnel, it's only obvious, as that's where the full reflectivity values comes into full force.
cfr: http://glassproperties.com/reflection/
I'm not saying there isn't an issue to fix on our side, mind you, as i wouldn't know about that, but without a scene, and a thorough look at the setup, it's not a given the issue is with the code, either.
edit: glass is just an example. most hand-crafted shaders sport albedos WELL in excess of their real life counterparts, so the concept applies across the board.Last edited by ^Lele^; 28-04-2016, 05:53 AM.Lele
Trouble Stirrer in RnD @ Chaos
----------------------
emanuele.lecchi@chaos.com
Disclaimer:
The views and opinions expressed here are my own and do not represent those of Chaos Group, unless otherwise stated.
Comment
Comment