Search Issue Tracker
Won't Fix
Votes
0
Found in
2020.3.46f1
2021.3.20f1
2022.2.10f1
2023.1.0b7
2023.2.0a7
Issue ID
UUM-29797
Regression
No
CPU implementation of À-Trous filter not working as expected
The CPU implementation of the A-Trous filter has the following issues:
* As part of the decomposition, the filter computes the product of three sets of weights between pairs of pixels: colour, normal and neighbourhood distance. For some reason, the value of the colour weights always evaluates to one which means that the filter is not edge-stopping (i.e. it behaves like a regular box filter). I don't know why this is happening, but there's some code in there that's not in the paper that might be the cause of the issue.
* The neighbourhood distance weight is a function of the user-controlled parameter, which is effectively modulating the support of the mother wavelet itself. This explains why noise isn't being removed, even for high values of sigma.
* The colour weighting function is using the dot product of 4 colour channels instead of just 3. I fixed a bug a few weeks ago that was causing similar problems with the normal weights. However, since the colour weights are already broken, the side effects of the bad dot product are obfuscated.
||*Unity*||*Reference implementation*||
|!bunny-unity.gif|width=320,height=320!|!bunny-reference.gif|width=318,height=318!|
Add comment
All about bugs
View bugs we have successfully reproduced, and vote for the bugs you want to see fixed most urgently.
Latest issues
- FBX Resamples Curves incorrectly when importing FBX files
- ProBuilder GameObject Faces disappear when increasing the Sides Count value
- FileUtil.CopyFileOrDirectory throws IOException when destination parent folder does not exist
- The Editor is stuttering when G-Sync is enabled and set to "Enable for windowed and full screen mode"
- USS files are not marked as dirty when an element is added to the Hierarchy
Resolution Note:
We are focusing our efforts on upgrading denoisers which would make improvements to filtering like ATrous redundant.