Blender  V3.3
denoise.cpp
Go to the documentation of this file.
1 /* SPDX-License-Identifier: Apache-2.0
2  * Copyright 2011-2022 Blender Foundation */
3 
4 #include "device/denoise.h"
5 
7 
9 {
10  switch (type) {
11  case DENOISER_OPTIX:
12  return "OptiX";
14  return "OpenImageDenoise";
15 
16  case DENOISER_NUM:
17  case DENOISER_NONE:
18  case DENOISER_ALL:
19  return "UNKNOWN";
20  }
21 
22  return "UNKNOWN";
23 }
24 
26 {
27  static NodeEnum type_enum;
28 
29  if (type_enum.empty()) {
30  type_enum.insert("optix", DENOISER_OPTIX);
31  type_enum.insert("openimageio", DENOISER_OPENIMAGEDENOISE);
32  }
33 
34  return &type_enum;
35 }
36 
38 {
39  static NodeEnum prefilter_enum;
40 
41  if (prefilter_enum.empty()) {
42  prefilter_enum.insert("none", DENOISER_PREFILTER_NONE);
43  prefilter_enum.insert("fast", DENOISER_PREFILTER_FAST);
44  prefilter_enum.insert("accurate", DENOISER_PREFILTER_ACCURATE);
45  }
46 
47  return &prefilter_enum;
48 }
49 
51 {
52  NodeType *type = NodeType::add("denoise_params", create);
53 
54  const NodeEnum *type_enum = get_type_enum();
55  const NodeEnum *prefilter_enum = get_prefilter_enum();
56 
57  SOCKET_BOOLEAN(use, "Use", false);
58 
59  SOCKET_ENUM(type, "Type", *type_enum, DENOISER_OPENIMAGEDENOISE);
60 
61  SOCKET_INT(start_sample, "Start Sample", 0);
62 
63  SOCKET_BOOLEAN(use_pass_albedo, "Use Pass Albedo", true);
64  SOCKET_BOOLEAN(use_pass_normal, "Use Pass Normal", false);
65 
66  SOCKET_BOOLEAN(temporally_stable, "Temporally Stable", false);
67 
68  SOCKET_ENUM(prefilter, "Prefilter", *prefilter_enum, DENOISER_PREFILTER_FAST);
69 
70  return type;
71 }
72 
73 DenoiseParams::DenoiseParams() : Node(get_node_type())
74 {
75 }
76 
_GL_VOID GLfloat value _GL_VOID_RET _GL_VOID const GLuint GLboolean *residences _GL_BOOL_RET _GL_VOID GLsizei GLfloat GLfloat GLfloat GLfloat const GLubyte *bitmap _GL_VOID_RET _GL_VOID GLenum type
static const NodeEnum * get_prefilter_enum()
Definition: denoise.cpp:37
static const NodeEnum * get_type_enum()
Definition: denoise.cpp:25
#define CCL_NAMESPACE_END
Definition: cuda/compat.h:9
NODE_DEFINE(DenoiseParams)
Definition: denoise.cpp:50
CCL_NAMESPACE_BEGIN const char * denoiserTypeToHumanReadable(DenoiserType type)
Definition: denoise.cpp:8
@ DENOISER_PREFILTER_FAST
Definition: denoise.h:33
@ DENOISER_PREFILTER_NONE
Definition: denoise.h:29
@ DENOISER_PREFILTER_ACCURATE
Definition: denoise.h:37
DenoiserType
Definition: denoise.h:12
@ DENOISER_NONE
Definition: denoise.h:17
@ DENOISER_OPTIX
Definition: denoise.h:13
@ DENOISER_OPENIMAGEDENOISE
Definition: denoise.h:14
@ DENOISER_ALL
Definition: denoise.h:18
@ DENOISER_NUM
Definition: denoise.h:15
std::unique_ptr< IDProperty, IDPropertyDeleter > create(StringRefNull prop_name, int32_t value)
Allocate a new IDProperty of type IDP_INT, set its name and value.
#define SOCKET_INT(name, ui_name, default_value,...)
Definition: node_type.h:187
#define SOCKET_BOOLEAN(name, ui_name, default_value,...)
Definition: node_type.h:185
#define SOCKET_ENUM(name, ui_name, values, default_value,...)
Definition: node_type.h:207
bool empty() const
Definition: node_enum.h:16
void insert(const char *x, int y)
Definition: node_enum.h:20
static NodeType * add(const char *name, CreateFunc create, Type type=NONE, const NodeType *base=NULL)