Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
13 changes: 9 additions & 4 deletions Source/RenderPasses/OptixDenoiser/OptixDenoiser.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -86,7 +86,10 @@ OptixDenoiser_::OptixDenoiser_(ref<Device> 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);
}
Expand All @@ -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;
}
Expand Down Expand Up @@ -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.");
}
Expand Down
2 changes: 1 addition & 1 deletion Source/RenderPasses/OptixDenoiser/OptixDenoiser.h
Original file line number Diff line number Diff line change
Expand Up @@ -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<CUdeviceptr>(0), 0.0f, static_cast<CUdeviceptr>(0)};
OptixDenoiserParams params = {static_cast<CUdeviceptr>(0), 0.0f, static_cast<CUdeviceptr>(0), 0u};
OptixDenoiserSizes sizes = {};

// TODO: Parameters currently set to false and not exposed to the user. These parameters are here to
Expand Down