Blender
V3.3
source
blender
compositor
operations
COM_DenoiseOperation.h
Go to the documentation of this file.
1
/* SPDX-License-Identifier: GPL-2.0-or-later
2
* Copyright 2019 Blender Foundation. */
3
4
#pragma once
5
6
#include "
COM_SingleThreadedOperation.h
"
7
#include "
DNA_node_types.h
"
8
9
namespace
blender::compositor
{
10
11
bool
COM_is_denoise_supported
();
12
13
class
DenoiseBaseOperation
:
public
SingleThreadedOperation
{
14
protected
:
15
bool
output_rendered_
;
16
17
protected
:
18
DenoiseBaseOperation
();
19
20
public
:
21
bool
determine_depending_area_of_interest
(
rcti
*
input
,
22
ReadBufferOperation
*read_operation,
23
rcti
*
output
)
override
;
24
25
void
get_area_of_interest
(
int
input_idx,
const
rcti
&output_area,
rcti
&r_input_area)
override
;
26
};
27
28
class
DenoiseOperation
:
public
DenoiseBaseOperation
{
29
private
:
33
SocketReader
*input_program_color_;
34
SocketReader
*input_program_albedo_;
35
SocketReader
*input_program_normal_;
36
40
NodeDenoise
*settings_;
41
42
public
:
43
DenoiseOperation
();
47
void
init_execution
()
override
;
48
52
void
deinit_execution
()
override
;
53
54
void
set_denoise_settings
(
NodeDenoise
*settings)
55
{
56
settings_ = settings;
57
}
58
59
void
update_memory_buffer
(
MemoryBuffer
*
output
,
60
const
rcti
&
area
,
61
Span<MemoryBuffer *>
inputs
)
override
;
62
63
protected
:
64
void
hash_output_params
()
override
;
65
void
generate_denoise
(
MemoryBuffer
*
output
,
66
MemoryBuffer
*input_color,
67
MemoryBuffer
*input_normal,
68
MemoryBuffer
*input_albedo,
69
NodeDenoise
*settings);
70
71
MemoryBuffer
*
create_memory_buffer
(
rcti
*rect)
override
;
72
};
73
74
class
DenoisePrefilterOperation
:
public
DenoiseBaseOperation
{
75
private
:
76
std::string image_name_;
77
78
public
:
79
DenoisePrefilterOperation
(
DataType
data_type);
80
81
void
set_image_name
(
StringRef
name)
82
{
83
image_name_ = name;
84
}
85
86
void
update_memory_buffer
(
MemoryBuffer
*
output
,
87
const
rcti
&
area
,
88
Span<MemoryBuffer *>
inputs
)
override
;
89
90
protected
:
91
void
hash_output_params
()
override
;
92
MemoryBuffer
*
create_memory_buffer
(
rcti
*rect)
override
;
93
94
private
:
95
void
generate_denoise(
MemoryBuffer
*
output
,
MemoryBuffer
*
input
);
96
};
97
98
}
// namespace blender::compositor
COM_SingleThreadedOperation.h
DNA_node_types.h
blender::Span
Definition:
BLI_span.hh:73
blender::StringRef
Definition:
BLI_string_ref.hh:123
blender::compositor::DenoiseBaseOperation
Definition:
COM_DenoiseOperation.h:13
blender::compositor::DenoiseBaseOperation::determine_depending_area_of_interest
bool determine_depending_area_of_interest(rcti *input, ReadBufferOperation *read_operation, rcti *output) override
Definition:
COM_DenoiseOperation.cc:120
blender::compositor::DenoiseBaseOperation::output_rendered_
bool output_rendered_
Definition:
COM_DenoiseOperation.h:15
blender::compositor::DenoiseBaseOperation::DenoiseBaseOperation
DenoiseBaseOperation()
Definition:
COM_DenoiseOperation.cc:114
blender::compositor::DenoiseBaseOperation::get_area_of_interest
void get_area_of_interest(int input_idx, const rcti &output_area, rcti &r_input_area) override
Get input operation area being read by this operation on rendering given output area.
Definition:
COM_DenoiseOperation.cc:135
blender::compositor::DenoiseOperation
Definition:
COM_DenoiseOperation.h:28
blender::compositor::DenoiseOperation::create_memory_buffer
MemoryBuffer * create_memory_buffer(rcti *rect) override
Definition:
COM_DenoiseOperation.cc:185
blender::compositor::DenoiseOperation::DenoiseOperation
DenoiseOperation()
Definition:
COM_DenoiseOperation.cc:142
blender::compositor::DenoiseOperation::deinit_execution
void deinit_execution() override
Definition:
COM_DenoiseOperation.cc:158
blender::compositor::DenoiseOperation::update_memory_buffer
void update_memory_buffer(MemoryBuffer *output, const rcti &area, Span< MemoryBuffer * > inputs) override
Definition:
COM_DenoiseOperation.cc:253
blender::compositor::DenoiseOperation::set_denoise_settings
void set_denoise_settings(NodeDenoise *settings)
Definition:
COM_DenoiseOperation.h:54
blender::compositor::DenoiseOperation::generate_denoise
void generate_denoise(MemoryBuffer *output, MemoryBuffer *input_color, MemoryBuffer *input_normal, MemoryBuffer *input_albedo, NodeDenoise *settings)
Definition:
COM_DenoiseOperation.cc:200
blender::compositor::DenoiseOperation::init_execution
void init_execution() override
Definition:
COM_DenoiseOperation.cc:150
blender::compositor::DenoiseOperation::hash_output_params
void hash_output_params() override
Definition:
COM_DenoiseOperation.cc:178
blender::compositor::DenoisePrefilterOperation
Definition:
COM_DenoiseOperation.h:74
blender::compositor::DenoisePrefilterOperation::hash_output_params
void hash_output_params() override
Definition:
COM_DenoiseOperation.cc:270
blender::compositor::DenoisePrefilterOperation::DenoisePrefilterOperation
DenoisePrefilterOperation(DataType data_type)
Definition:
COM_DenoiseOperation.cc:263
blender::compositor::DenoisePrefilterOperation::create_memory_buffer
MemoryBuffer * create_memory_buffer(rcti *rect) override
Definition:
COM_DenoiseOperation.cc:275
blender::compositor::DenoisePrefilterOperation::update_memory_buffer
void update_memory_buffer(MemoryBuffer *output, const rcti &area, Span< MemoryBuffer * > inputs) override
Definition:
COM_DenoiseOperation.cc:306
blender::compositor::DenoisePrefilterOperation::set_image_name
void set_image_name(StringRef name)
Definition:
COM_DenoiseOperation.h:81
blender::compositor::MemoryBuffer
a MemoryBuffer contains access to the data of a chunk
Definition:
COM_MemoryBuffer.h:43
blender::compositor::NodeOperation
NodeOperation contains calculation logic.
Definition:
COM_NodeOperation.h:303
blender::compositor::ReadBufferOperation
Definition:
COM_ReadBufferOperation.h:12
blender::compositor::SingleThreadedOperation
Definition:
COM_SingleThreadedOperation.h:10
blender::compositor::DataType
DataType
possible data types for sockets
Definition:
COM_defines.h:30
output
ccl_global KernelShaderEvalInput ccl_global float * output
Definition:
kernel/device/gpu/kernel.h:751
input
ccl_global KernelShaderEvalInput * input
Definition:
kernel/device/gpu/kernel.h:750
blender::compositor
Definition:
COM_defines.h:10
blender::compositor::COM_is_denoise_supported
bool COM_is_denoise_supported()
Definition:
COM_DenoiseOperation.cc:14
blender::compositor::area
static void area(int d1, int d2, int e1, int e2, float weights[2])
Definition:
COM_SMAAOperation.cc:113
inputs
static bNodeSocketTemplate inputs[]
Definition:
node_texture_at.c:11
NodeDenoise
Definition:
DNA_node_types.h:1172
rcti
Definition:
DNA_vec_types.h:62
Generated on Sat Jul 27 2024 14:57:55 for Blender by
doxygen
1.9.1