Iray SDK API nvidia_logo_transpbg.gif Up
irender_target.h
Go to the documentation of this file.
1/***************************************************************************************************
2 * Copyright 2024 NVIDIA Corporation. All rights reserved.
3 **************************************************************************************************/
6
7#ifndef MI_NEURAYLIB_IRENDER_TARGET_H
8#define MI_NEURAYLIB_IRENDER_TARGET_H
9
11#include <mi/base/handle.h>
12
13#include <mi/neuraylib/idata.h>
15
16namespace mi {
17
18namespace neuraylib {
19
32{
37
40
49
52
54
56
58
60
62 TYPE_UNDEFINED = 0xffffffffU
63};
64
70{
95
97 PARAM_UNDEFINED = 0xffffffffU
98};
99
104class ICanvas_parameters : public
105 mi::base::Interface_declare<0x8aafab6f,0x57d0,0x4817,0x87,0xfe,0x9f,0x97,0x9b,0xc9,0xc2,0x11>
106{
107public:
111 virtual Canvas_type get_type() const = 0;
112
121 virtual const IData* get_parameter(Canvas_parameter param) const = 0;
122
124 template <typename T>
126 {
127 return base::make_handle(this->get_parameter(param)).template get_interface<const T>();
128 }
129};
130
151 mi::base::Interface_declare<0x8aafab6e,0x57d9,0x4816,0x87,0xfe,0x9f,0x97,0x9b,0xc9,0xc2,0xbf>
152{
153public:
157 virtual Uint32 get_canvas_count() const = 0;
158
165 virtual Canvas_type get_canvas_type( Uint32 index) const = 0;
166
173 virtual const ICanvas_base* get_canvas( Uint32 index) const = 0;
174
181 virtual ICanvas_base* get_canvas( Uint32 index) = 0;
182
192 virtual const ICanvas_parameters* get_canvas_parameters( Uint32 index) const = 0;
193};
194
206class IRender_target : public
207 mi::base::Interface_declare<0xd4dff23d,0x9b42,0x48d4,0x80,0x01,0x8c,0x9a,0x13,0x51,0x83,0x69,
208 neuraylib::IRender_target_base>
209{
210public:
217 virtual const ICanvas* get_canvas( Uint32 index) const = 0;
218
225 virtual ICanvas* get_canvas( Uint32 index) = 0;
226};
227 // end group mi_neuray_rendering
229
230} // namespace neuraylib
231
232} // namespace mi
233
234#endif // MI_NEURAYLIB_IRENDER_TARGET_H
This interface is the base interface of all types.
Definition: idata.h:297
Handle class template for interfaces, automatizing the lifetime control via reference counting.
Definition: handle.h:113
Mixin class template for deriving new interface declarations.
Definition: interface_declare.h:43
Abstract interface for a canvas (base class).
Definition: icanvas.h:34
Abstract interface for render target canvas parameters.
Definition: irender_target.h:106
virtual Canvas_type get_type() const =0
Returns the type of the given canvas.
base::Handle<const T> get_parameter(const Canvas_parameter param) const
Returns a parameter of the current canvas.
Definition: irender_target.h:125
virtual const IData * get_parameter(Canvas_parameter param) const =0
Returns a parameter of the current canvas.
Abstract interface for a canvas represented by a rectangular array of tiles.
Definition: icanvas.h:85
Abstract interface for a render target (base class).
Definition: irender_target.h:152
virtual const ICanvas_base * get_canvas(Uint32 index) const =0
Returns a canvas by index.
virtual ICanvas_base * get_canvas(Uint32 index)=0
Returns a canvas by index.
virtual const ICanvas_parameters * get_canvas_parameters(Uint32 index) const =0
Returns a set of parameters of the given canvas.
virtual Uint32 get_canvas_count() const =0
Returns the number of canvases to render to.
virtual Canvas_type get_canvas_type(Uint32 index) const =0
Returns the type of the given canvas.
Abstract interface for a render target.
Definition: irender_target.h:209
virtual ICanvas * get_canvas(Uint32 index)=0
Returns a canvas by index.
virtual const ICanvas * get_canvas(Uint32 index) const =0
Returns a canvas by index.
Handle<Interface> make_handle(Interface *iptr)
Returns a handle that holds the interface pointer passed in as argument.
Definition: handle.h:428
unsigned int Uint32
32-bit unsigned integer.
Definition: types.h:49
Canvas_parameter
The type of a render target canvas parameter in mi::neuraylib::ICanvas_parameters.
Definition: irender_target.h:70
Canvas_type
The type of a canvas in an mi::neuraylib::IRender_target_base.
Definition: irender_target.h:32
@ PARAM_EDGE_COLOR_2
IFloat32_4 secondary edge color.
Definition: irender_target.h:75
@ PARAM_MULTI_INDEX
ISint32_4 multidimensional index.
Definition: irender_target.h:92
@ PARAM_PROCESSING_DISABLED
Disables all processing for the canvas.
Definition: irender_target.h:78
@ PARAM_UNDEFINED
not a valid parameter
Definition: irender_target.h:97
@ PARAM_SELECTION_SUBSET
internal use only
Definition: irender_target.h:93
@ PARAM_INDEX
ISint32 channel index or canvas index.
Definition: irender_target.h:73
@ PARAM_COLOR_LPE
IString color LPE.
Definition: irender_target.h:71
@ PARAM_EDGE_COLOR
IFloat32_4 edge color.
Definition: irender_target.h:74
@ PARAM_BIAS
IFloat32_2 bias, meaning depends on type of canvas.
Definition: irender_target.h:94
@ PARAM_ALPHA_LPE
IString alpha channel LPE.
Definition: irender_target.h:72
@ PARAM_COUNT
number elements in this enum
Definition: irender_target.h:96
@ PARAM_SHADE_COLOR
IFloat32_4 shading color.
Definition: irender_target.h:76
@ PARAM_SCALE
IFloat32 scale, meaning depends on type of canvas.
Definition: irender_target.h:77
@ TYPE_RAYLENGTH
"Float32" ray length
Definition: irender_target.h:41
@ TYPE_MATERIAL_ID
"Float32_4" material_id attribute
Definition: irender_target.h:44
@ TYPE_TEXTURE_COORDINATE
"Float32_3" texture coordinates
Definition: irender_target.h:47
@ TYPE_MULTI_MATTE
"Float32_4" multi-matte: one mask per channel
Definition: irender_target.h:59
@ TYPE_MATERIAL_TAG
"Float32_4" material DB tag
Definition: irender_target.h:43
@ TYPE_DEPTH
"Float32" orthogonal distance to sensor
Definition: irender_target.h:42
@ TYPE_WORLD_POSITION
"Float32_3" worldspace hit point
Definition: irender_target.h:55
@ TYPE_SELECTION_OUTLINE
"Color" or "Rgb_fp" result with outlines around selection
Definition: irender_target.h:57
@ TYPE_BSDF_WEIGHT
"Float32_3" BSDF weight estimate
Definition: irender_target.h:48
@ TYPE_UNDEFINED
not a valid canvas type
Definition: irender_target.h:62
@ TYPE_OBJECT_ID
"Float32_4" object_id attribute
Definition: irender_target.h:45
@ TYPE_MOTION_VECTOR
"Float32_3" motion vector
Definition: irender_target.h:53
@ TYPE_RESULT_IRRADIANCE_PROBE
"Rgb_fp" irradiance probes
Definition: irender_target.h:35
@ TYPE_ALPHA
"Float32" alpha channel
Definition: irender_target.h:36
@ TYPE_SHADOW
"Rgb_fp" shadows
Definition: irender_target.h:38
@ TYPE_RESULT
"Color" (includes alpha) or "Rgb_fp" result
Definition: irender_target.h:33
@ TYPE_RESULT_IRRADIANCE
"Rgb_fp" irradiance instead of standard result
Definition: irender_target.h:34
@ TYPE_COUNT
number of elements in this enum
Definition: irender_target.h:61
@ TYPE_AMBIENT_OCCLUSION
"Rgb_fp" ambient occlusion
Definition: irender_target.h:39
@ TYPE_CONVERGENCE_HEATMAP
"Float32" convergence heatmap
Definition: irender_target.h:50
@ TYPE_NORMAL
"Float32_3" shading normal
Definition: irender_target.h:46
@ TYPE_POST_TOON
"Color" (includes alpha) or "Rgb_fp" toon shading effect
Definition: irender_target.h:51
Smart-pointer handle class for interfaces, const and non-const version.
Abstract interface for canvases.
Types.
Mixin class template for deriving new interface declarations.
Common namespace for APIs of NVIDIA Advanced Rendering Center GmbH.
Definition: neuraylib.h:179