[OptiX 8.0] Denoiser: Camera space vs World space?

Hello,

OptiX 8.0 release notes say:

Camera space normals still work, but for better results world space normal should be used (OPTIX_DENOISER_MODEL_KIND_AOV mode only).

This description is unclear.
Is world space generally recommended? Or recommended only for OPTIX_DENOISER_MODEL_KIND_AOV? How about other AOV denoiser models OPTIX_DENOISER_MODEL_KIND_TEMPORAL_AOV, OPTIX_DENOISER_MODEL_KIND_UPSCALE2X, OPTIX_DENOISER_MODEL_KIND_TEMPORAL_UPSCALE2X?

Thanks,

I asked around internally and only the two old modes OPTIX_DENOISER_MODEL_KIND_LDR and OPTIX_DENOISER_MODEL_KIND_HDR require camera space normals. These two models are considered legacy and shouldn’t be used in new applications anymore.

All other denoiser models will still work with camera space normal vectors as well, but it’s recommended to use world space normal vectors as denoiser input on current drivers (R535 and newer) for optimal quality instead, which also makes the application implementation simpler.

We’re going to update the OptiX Programming Guide about that. The OptiX API reference documentation is a little sparse in the OptixDenoiserGuideLayer struct mentioning world space normals.

Thanks for the quick reply.
I understand that we should basically use world space for everything.

These two models are considered legacy and shouldn’t be used in new applications anymore

a bit surprised that even the (non-AOV) HDR model is considered legacy.
So does this mean that all the up-to-date models except for OPTIX_DENOISER_MODEL_KIND_TEMPORAL can handle AOV?
Or perhaps should we consider OPTIX_DENOISER_MODEL_KIND_TEMPORAL legacy as well?

LDR and HDR models are using the same network and that hasn’t changed in quite some time.
The other models work differently and get continued training and architectural improvements.
The R535 and newer drivers should also show improved quality in these models.

So the recommendation is to not use the LDR or HDR models anymore if you can implement one of the other models in your application because those will potentially get better with every driver branch.

Of those models, pick what works best for your specific use case.

1 Like

This topic was automatically closed 14 days after the last reply. New replies are no longer allowed.