diff --git a/Source/RenderPasses/OptixDenoiser/OptixDenoiser.cpp b/Source/RenderPasses/OptixDenoiser/OptixDenoiser.cpp index 5dd2a86a8..ac2103716 100644 --- a/Source/RenderPasses/OptixDenoiser/OptixDenoiser.cpp +++ b/Source/RenderPasses/OptixDenoiser/OptixDenoiser.cpp @@ -86,7 +86,10 @@ OptixDenoiser_::OptixDenoiser_(ref pDevice, const Properties& props) : R else if (key == kBlend) mDenoiser.params.blendFactor = value; else if (key == kDenoiseAlpha) - mDenoiser.params.denoiseAlpha = (value ? 1u : 0u); + mDenoiser.options.denoiseAlpha = + (value ? + OptixDenoiserAlphaMode::OPTIX_DENOISER_ALPHA_MODE_DENOISE : + OptixDenoiserAlphaMode::OPTIX_DENOISER_ALPHA_MODE_COPY); else logWarning("Unknown property '{}' in a OptixDenoiser properties.", key); } @@ -105,7 +108,7 @@ Properties OptixDenoiser_::getProperties() const props[kEnabled] = mEnabled; props[kBlend] = mDenoiser.params.blendFactor; props[kModel] = mDenoiser.modelKind; - props[kDenoiseAlpha] = bool(mDenoiser.params.denoiseAlpha > 0); + props[kDenoiseAlpha] = bool(mDenoiser.options.denoiseAlpha > 0); return props; } @@ -439,10 +442,12 @@ void OptixDenoiser_::renderUI(Gui::Widgets& widget) } { - bool denoiseAlpha = mDenoiser.params.denoiseAlpha != 0; + bool denoiseAlpha = mDenoiser.options.denoiseAlpha == OptixDenoiserAlphaMode::OPTIX_DENOISER_ALPHA_MODE_DENOISE; if (widget.checkbox("Denoise Alpha?", denoiseAlpha)) { - mDenoiser.params.denoiseAlpha = denoiseAlpha ? 1u : 0u; + mDenoiser.options.denoiseAlpha = (denoiseAlpha ? + OptixDenoiserAlphaMode::OPTIX_DENOISER_ALPHA_MODE_DENOISE : + OptixDenoiserAlphaMode::OPTIX_DENOISER_ALPHA_MODE_COPY); } widget.tooltip("Denoise the alpha channel, not just RGB."); } diff --git a/Source/RenderPasses/OptixDenoiser/OptixDenoiser.h b/Source/RenderPasses/OptixDenoiser/OptixDenoiser.h index 35d7b5814..559526c87 100644 --- a/Source/RenderPasses/OptixDenoiser/OptixDenoiser.h +++ b/Source/RenderPasses/OptixDenoiser/OptixDenoiser.h @@ -167,7 +167,7 @@ class OptixDenoiser_ : public RenderPass OptixDenoiserOptions options = {0u, 0u}; OptixDenoiserModelKind modelKind = OptixDenoiserModelKind::OPTIX_DENOISER_MODEL_KIND_HDR; OptixDenoiser denoiser = nullptr; - OptixDenoiserParams params = {0u, static_cast(0), 0.0f, static_cast(0)}; + OptixDenoiserParams params = {static_cast(0), 0.0f, static_cast(0), 0u}; OptixDenoiserSizes sizes = {}; // TODO: Parameters currently set to false and not exposed to the user. These parameters are here to