Skip to content
Merged
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
2 changes: 2 additions & 0 deletions export/aovs.py
Original file line number Diff line number Diff line change
Expand Up @@ -257,6 +257,8 @@ def get_OIDN_props(definitions, scene, index):
definitions[str(index) + ".oidnmemory"] = denoiser.max_memory_MB
definitions[str(index) + ".sharpness"] = 0
definitions[str(index) + ".prefilter.enable"] = denoiser.prefilter_AOVs
if denoiser.oidn_firefly_suppression:
definitions[str(index) + ".firefly.sigma"] = denoiser.oidn_firefly_sigma
return index + 1


Expand Down
9 changes: 9 additions & 0 deletions properties/denoiser.py
Original file line number Diff line number Diff line change
Expand Up @@ -61,3 +61,12 @@ class LuxCoreDenoiser(PropertyGroup):
default="REFLECT_TRANSMIT", description="How to treat specular materials in the albedo AOV")
prefilter_AOVs: BoolProperty(name="Prefilter Auxiliary AOVs", default=True,
description="Denoise the albedo and avg. shading normal AOVs before using them to denoise the main image")
oidn_firefly_suppression: BoolProperty(name="Firefly Suppression", default=False,
description="Scale down isolated outlier pixels before denoising, so the "
"denoiser does not smear fireflies into blobs. Only the denoised "
"result is affected, the raw render is untouched. Intended for "
"mostly converged renders: at very low sample counts the noise "
"is the signal and suppressing it darkens the image")
oidn_firefly_sigma: FloatProperty(name="Threshold", default=4.0, min=1.0, soft_max=10.0,
description="Outlier threshold in units of local noise (median absolute "
"deviation). Lower values suppress more aggressively")
5 changes: 5 additions & 0 deletions ui/render/denoiser.py
Original file line number Diff line number Diff line change
Expand Up @@ -60,6 +60,11 @@ def draw(self, context):
sub.prop(denoiser, "max_memory_MB")
sub.prop(denoiser, "albedo_specular_passthrough_mode")
sub.prop(denoiser, "prefilter_AOVs")
row = layout.row()
row.prop(denoiser, "oidn_firefly_suppression")
sub = row.row()
sub.active = denoiser.oidn_firefly_suppression
sub.prop(denoiser, "oidn_firefly_sigma")


class LUXCORE_RENDER_PT_denoiser_bcd_advanced(RenderButtonsPanel, Panel):
Expand Down
Loading