Blender
V4.5
intern
cycles
integrator
denoiser_oidn.h
Go to the documentation of this file.
1
/* SPDX-FileCopyrightText: 2011-2022 Blender Foundation
2
*
3
* SPDX-License-Identifier: Apache-2.0 */
4
5
#pragma once
6
7
#include "
integrator/denoiser.h
"
8
#include "
util/thread.h
"
9
10
CCL_NAMESPACE_BEGIN
11
12
/* Implementation of a CPU based denoiser which uses OpenImageDenoise library. */
13
class
OIDNDenoiser
:
public
Denoiser
{
14
public
:
15
/* Forwardly declared state which might be using compile-flag specific fields, such as
16
* OpenImageDenoise device and filter handles. */
17
class
State;
18
19
OIDNDenoiser
(
Device
*denoiser_device,
const
DenoiseParams
&
params
);
20
21
bool
denoise_buffer
(
const
BufferParams
&buffer_params,
22
RenderBuffers
*render_buffers,
23
const
int
num_samples,
24
bool
allow_inplace_modification)
override
;
25
26
protected
:
27
uint
get_device_type_mask
()
const override
;
28
29
/* We only perform one denoising at a time, since OpenImageDenoise itself is multithreaded.
30
* Use this mutex whenever images are passed to the OIDN and needs to be denoised. */
31
static
thread_mutex
mutex_
;
32
};
33
34
CCL_NAMESPACE_END
uint
unsigned int uint
Definition
BLI_sys_types.h:64
BufferParams
Definition
buffers.h:65
DenoiseParams
Definition
denoise.h:51
Denoiser
Definition
denoiser.h:40
Device
Definition
device/device.h:129
OIDNDenoiser
Definition
denoiser_oidn.h:13
OIDNDenoiser::denoise_buffer
bool denoise_buffer(const BufferParams &buffer_params, RenderBuffers *render_buffers, const int num_samples, bool allow_inplace_modification) override
Definition
denoiser_oidn.cpp:612
OIDNDenoiser::OIDNDenoiser
OIDNDenoiser(Device *denoiser_device, const DenoiseParams ¶ms)
Definition
denoiser_oidn.cpp:22
OIDNDenoiser::get_device_type_mask
uint get_device_type_mask() const override
Definition
denoiser_oidn.cpp:665
OIDNDenoiser::mutex_
static thread_mutex mutex_
Definition
denoiser_oidn.h:31
RenderBuffers
Definition
buffers.h:152
denoiser.h
CCL_NAMESPACE_END
#define CCL_NAMESPACE_END
Definition
device/cuda/compat.h:10
params
uiWidgetBaseParameters params[MAX_WIDGET_BASE_BATCH]
Definition
interface_widgets.cc:1056
CCL_NAMESPACE_BEGIN
Definition
python.cpp:37
thread.h
thread_mutex
std::mutex thread_mutex
Definition
thread.h:27
Generated on Fri Apr 3 2026 06:33:18 for Blender by
doxygen
1.11.0