DeclanRussell / NvidiaAIDenoiser

A simple implementation of Nvidia's AI denoiser
MIT License
398 stars 52 forks source link

Issue with example normal image; lack of documentation for normal + motion/flow images #25

Open Hueburtsonly opened 1 year ago

Hueburtsonly commented 1 year ago

Based on my brief research attempts, the input normal AOV image must be capable of representing negative numbers; in order to represent normal vectors that happen to point in a negative direction. However, the current example file is a PNG, which is incapable of this; and inspection of the image itself shows that the left wall and ceiling and indistinguishable from the back wall, which is clearly wrong. (BTW, sometime normal vectors are represented in PNGs by rescaling [-1, 1] to [0, 255], but IIUC this would be invalid input into Optix unless you added code to transform it back, or at least subtract the 128 bias).

But my overarching point in this bug is that this needs to be addressed in the README.md file, because TL;DR there is no universal standard for what a "normal AOV" is; and even if there is, it is IIUC incompatible with what Optix is expecting. Which channel is which, and which directions are positive?

Similarly, I've found suggestions online that the Cycles renderer outputs motion/flow data that is inversed from what Optix is expecting. Again, there's no universal standard for what a motion/flow AOV is, and this needs to be defined. Which channel is which, and which directions are positive?