Iray SDK API nvidia_logo_transpbg.gif Up
irendering_configuration.h
Go to the documentation of this file.
1/***************************************************************************************************
2 * Copyright 2024 NVIDIA Corporation. All rights reserved.
3 **************************************************************************************************/
6
7#ifndef MI_NEURAYLIB_IRENDERING_CONFIGURATION_H
8#define MI_NEURAYLIB_IRENDERING_CONFIGURATION_H
9
11#include <mi/base/enum_util.h>
13
14namespace mi {
15
16class IArray;
17class IString;
18class IStructure;
19
20namespace neuraylib {
21
22class IGpu_description;
23
30class ILpe_check_result : public
31 mi::base::Interface_declare<0xec3bc890,0x4ea8,0x4465,0x9e,0x83,0xd8,0x41,0xa8,0xb4,0x77,0x94>
32{
33public:
35 virtual Size get_messages_length() const = 0;
36
39 virtual Size get_index( Size i) const = 0;
40
42 virtual bool get_color_expression_flag( Size i) const = 0;
43
46 virtual Size get_position( Size i) const = 0;
47
50 virtual const char* get_message( Size i) const = 0;
51};
52
69 mi::base::Interface_declare<0xec3bc890,0x4ea8,0x4465,0x9e,0x83,0xd8,0x41,0xa8,0xb4,0x77,0x95,
70 ILpe_check_result>
71{
72public:
86
92
94 virtual Size get_overlap_count() const = 0;
95
97 virtual bool get_color_overlap_flag( Size i) const = 0;
98
100 virtual bool get_overlap_indices( Size i, Size& o1, Size& o2) const = 0;
101
103 virtual bool get_overlap_expressions( Size i, const char*& lpe1, const char*& lpe2) const = 0;
104};
105
108 mi::base::Interface_declare<0x8e148c6e,0x3515,0x4368,0xba,0xb7,0x97,0xfd,0x26,0x35,0xbb,0x91>
109{
110public:
112
113
124 virtual Sint32 add_mdl_path( const char* path) = 0;
125
136 virtual Sint32 remove_mdl_path( const char* path) = 0;
137
142 virtual void clear_mdl_paths() = 0;
143
150 virtual Size get_mdl_paths_length() const = 0;
151
158 virtual const IString* get_mdl_path( Size index) const = 0;
159
161
163
175 virtual Sint32 add_resource_path( const char* path) = 0;
176
188 virtual Sint32 remove_resource_path( const char* path) = 0;
189
195 virtual void clear_resource_paths() = 0;
196
204 virtual Size get_resource_paths_length() const = 0;
205
213 virtual const IString* get_resource_path( Size index) const = 0;
214
216
218
229 virtual Sint32 add_include_path( const char* path) = 0;
230
241 virtual Sint32 remove_include_path( const char* path) = 0;
242
247 virtual void clear_include_paths() = 0;
248
255 virtual Size get_include_paths_length() const = 0;
256
263 virtual const IString* get_include_path( Size index) const = 0;
264
281 virtual Sint32 add_custom_attribute_filter(const char* name_pattern) = 0;
282
294 virtual Sint32 remove_custom_attribute_filter(const char* name_pattern) = 0;
295
302
311
320 virtual const char* get_custom_attribute_filter(Size index) const = 0;
321
323
325
330 virtual Uint32 get_renderers_length() const = 0;
331
337 virtual const char* get_renderer( Uint32 index) const = 0;
338
361 virtual Sint32 set_renderer_option( const char* name, const char* value) = 0;
362
370 virtual const IString* get_renderer_option( const char* name) const = 0;
371
373
380 static const Uint32 CPU = 0xffffffff;
381
385 static const Uint32 ALL_GPUS = 0xfffffffe;
386
390 static const Uint32 ALL_HOSTS = 0xfffffffd;
391
395 static const Uint32 LOCAL_HOST = 0;
396
398
399
409 virtual Sint32 set_gpu_enabled( bool value) = 0;
410
414 virtual bool get_gpu_enabled() const = 0;
415
425 virtual Sint32 set_cpu_fallback_enabled( bool value) = 0;
426
430 virtual bool get_cpu_fallback_enabled() const = 0;
431
440 virtual Sint32 set_driver_version_check_enabled( bool value) = 0;
441
445 virtual bool get_driver_version_check_enabled() const = 0;
446
457 virtual Uint32 get_highest_gpu_id( Uint32 host_id = 0) = 0;
458
473 virtual const IGpu_description* get_gpu_description( Uint32 gpu_id, Uint32 host_id = 0) = 0;
474
503 Uint32 resource_id, Uint32 host_id, const char* render_mode, bool enable) = 0;
504
529 Uint32 resource_id, Uint32 host_id, const char* render_mode, bool& enable) = 0;
530
532
545 ALPHA_NONE = 0x03u,
546
549
554
555 // Undocumented, for alignment only
556 ALPHA_MODE_FORCE_32_BIT = 0xffffffffU
557 };
558
560
561
580 const IArray* expressions) const = 0;
581
594 const char* canvas_name) const = 0;
595
609 virtual const IString* make_alpha_expression( Alpha_mode alpha_mode) const = 0;
610
636 const IArray* labels, bool exclude, Alpha_mode alpha_mode) const = 0;
637
658 const IArray* labels, bool exclude) const = 0;
659
678 const IArray* expressions) const = 0;
679
681
689 virtual ICanvas_parameters* map_canvas_name(const char* name) const = 0;
690
702
707 virtual const char* map_canvas_type(Canvas_type) const = 0;
708};
709
711MI_MAKE_ENUM_BITOPS(IRendering_configuration::Alpha_mode);
712 // end group mi_neuray_configuration
714
715} // namespace neuraylib
716
717} // namespace mi
718
719#endif // MI_NEURAYLIB_IRENDERING_CONFIGURATION_H
This interface represents static arrays, i.e., arrays with a fixed number of elements.
Definition: iarray.h:37
A simple string class.
Definition: istring.h:22
This interface represents structures, i.e., a key-value based data structure.
Definition: istructure.h:44
Mixin class template for deriving new interface declarations.
Definition: interface_declare.h:43
Abstract interface for render target canvas parameters.
Definition: irender_target.h:106
This interface describes a GPU.
Definition: igpu_description.h:27
This interface represents the return value of mi::neuraylib::IRendering_configuration::analyze_light_...
Definition: irendering_configuration.h:71
virtual bool get_overlap_expressions(Size i, const char *&lpe1, const char *&lpe2) const =0
Retrieves the LPEs of a given overlap pair.
virtual Size get_overlap_count() const =0
Indicates the number of entries in the list of LPE overlaps.
virtual bool get_color_overlap_flag(Size i) const =0
Indicates whether a given overlap pair refers to color or alpha LPEs.
virtual Size get_alpha_classification_count() const =0
Reflects the number of classifications that are made possible by the alpha LPEs that were analyzed.
virtual Size get_color_classification_count() const =0
Reflects the number of classifications that are made possible by the color LPEs that were analyzed.
virtual bool get_overlap_indices(Size i, Size &o1, Size &o2) const =0
Retrieves the input indices of a given overlap pair.
This interface represents the return value of mi::neuraylib::IRendering_configuration::check_light_pa...
Definition: irendering_configuration.h:32
virtual Size get_position(Size i) const =0
Returns the position of the offending character/token in the light path expression identified by get_...
virtual const char * get_message(Size i) const =0
Returns an error message describing why the light path expression identified by get_index() is invali...
virtual Size get_index(Size i) const =0
Returns the index of the light path expression in the input array that this error message applies to.
virtual Size get_messages_length() const =0
Returns the number of error messages represented by this interface.
virtual bool get_color_expression_flag(Size i) const =0
Indicates whether the error message applies to the color or alpha expression.
This interface is used to query and change the rendering configuration.
Definition: irendering_configuration.h:109
virtual Sint32 add_resource_path(const char *path)=0
Adds a path to the list of paths to search for resources, i.e., textures, light profiles,...
virtual void clear_resource_paths()=0
Clears the list of paths to search for resources, i.e., textures, light profiles, and BSDF measuremen...
virtual Uint32 get_renderers_length() const =0
Returns the number of render modes.
virtual Size get_custom_attribute_filter_length() const =0
Returns the number of configured custom attribute filters.
virtual const IStructure * extract_light_path_expressions_from_name(const char *canvas_name) const =0
Extract color and alpha light path expressions (LPEs) from a canvas name.
virtual const IString * get_resource_path(Size index) const =0
Returns the index -th path to search for resources, i.e., textures, light profiles,...
virtual Sint32 set_gpu_enabled(bool value)=0
Enables or disables GPU detection.
virtual Sint32 set_driver_version_check_enabled(bool value)=0
Enables or disables the check for the GPU driver version.
virtual bool get_driver_version_check_enabled() const =0
Returns whether the check for the GPU driver version is enabled.
virtual IString * map_canvas_parameters(const ICanvas_parameters *) const =0
Creates a canvas name from the provided parameters.
virtual Size get_resource_paths_length() const =0
Returns the number of paths to search for resources, i.e., textures, light profiles,...
Alpha_mode
Controls the behavior of the alpha channel.
Definition: irendering_configuration.h:537
@ ALPHA_PRIMARY
Alpha value is based on primary visibility.
Definition: irendering_configuration.h:539
@ ALPHA_MATTE_SHADOW
In combination with the primary modes: shadows on matte objects affect the alpha channel.
Definition: irendering_configuration.h:553
@ ALPHA_NONE
Alpha is transparent everywhere. Primarily useful together with ALPHA_MATTE_SHADOW.
Definition: irendering_configuration.h:545
@ ALPHA_TRANSMIT
Alpha is transparent for paths that transmit the environment.
Definition: irendering_configuration.h:541
@ ALPHA_TRANSMIT_SPECULAR
Alpha is transparent for paths that transmit the environment specularly.
Definition: irendering_configuration.h:543
@ ALPHA_MODE_MASK
Mask for primary modes.
Definition: irendering_configuration.h:548
virtual const IString * make_alpha_expression(Alpha_mode alpha_mode) const =0
Generates a light path expression that controls the alpha channel behavior.
virtual Sint32 remove_include_path(const char *path)=0
Removes a path from the list of paths to search for includes.
static const Uint32 CPU
Symbolic constant to refer to the CPU on a particular host.
Definition: irendering_configuration.h:380
virtual Sint32 remove_resource_path(const char *path)=0
Removes a path from the list of paths to search for resources, i.e., textures, light profiles,...
virtual const IString * get_mdl_path(Size index) const =0
Returns the index -th path to search for MDL modules.
virtual const char * get_renderer(Uint32 index) const =0
Returns the name of a given render mode.
virtual const ILpe_check_result * check_light_path_expressions(const IArray *expressions) const =0
Checks whether a sequence of light path expressions (LPEs) is valid.
virtual Sint32 set_resource_enabled(Uint32 resource_id, Uint32 host_id, const char *render_mode, bool enable)=0
Enables or disables a specific resource (GPU or CPU) for a render mode.
virtual const char * get_custom_attribute_filter(Size index) const =0
Returns the index -th custom attribute filter.
virtual Sint32 add_include_path(const char *path)=0
Adds a path to the list of paths to search for includes.
virtual const char * map_canvas_type(Canvas_type) const =0
Creates a canvas name for the provided type.
virtual Sint32 add_custom_attribute_filter(const char *name_pattern)=0
Adds a filter to the list of custom attribute filters.
virtual const IString * get_include_path(Size index) const =0
Returns the index -th path to search for includes.
virtual bool get_cpu_fallback_enabled() const =0
Returns if CPU fallback is enabled.
virtual Size get_include_paths_length() const =0
Returns the number of paths to search for includes.
virtual bool get_gpu_enabled() const =0
Returns if GPU detection is enabled.
virtual Size get_mdl_paths_length() const =0
Returns the number of paths to search for MDL modules.
virtual const IString * make_alpha_mask_expression(const IArray *labels, bool exclude, Alpha_mode alpha_mode) const =0
Generates a light path expression that can be used to render alpha masks.
virtual Sint32 remove_mdl_path(const char *path)=0
Removes a path from the list of paths to search for MDL modules.
virtual void clear_custom_attribute_filters()=0
Clears the list of custom attribute filters.
virtual Sint32 get_resource_enabled(Uint32 resource_id, Uint32 host_id, const char *render_mode, bool &enable)=0
Indicates whether a specific resource (GPU or CPU) is enabled or disabled for a render mode.
static const Uint32 LOCAL_HOST
Symbolic constant to refer to the local host in the cluster.
Definition: irendering_configuration.h:395
virtual Sint32 remove_custom_attribute_filter(const char *name_pattern)=0
Removes a filter from the list of custom attribute filters.
virtual Sint32 set_cpu_fallback_enabled(bool value)=0
Enables or disables CPU fallback.
virtual const ILpe_analysis_result * analyze_light_path_expressions(const IArray *expressions) const =0
Analyzes a sequence of light path expressions (LPEs).
virtual const IString * make_color_mask_expression(const IArray *labels, bool exclude) const =0
Generates a light path expression that can be used to render color masks.
virtual const IGpu_description * get_gpu_description(Uint32 gpu_id, Uint32 host_id=0)=0
Returns the description of a GPU with a given ID.
virtual Sint32 set_renderer_option(const char *name, const char *value)=0
Sets the value of a general rendering option.
virtual ICanvas_parameters * map_canvas_name(const char *name) const =0
Creates canvas parameters from a canvas names.
virtual void clear_include_paths()=0
Clears the list of paths to search for includes.
virtual const IString * get_renderer_option(const char *name) const =0
Returns the value of a general rendering option.
virtual Sint32 add_mdl_path(const char *path)=0
Adds a path to the list of paths to search for MDL modules.
static const Uint32 ALL_HOSTS
Symbolic constant to refer to all hosts in the cluster.
Definition: irendering_configuration.h:390
virtual Uint32 get_highest_gpu_id(Uint32 host_id=0)=0
Returns the highest GPU ID.
static const Uint32 ALL_GPUS
Symbolic constant to refer to all GPUs on a particular host.
Definition: irendering_configuration.h:385
virtual void clear_mdl_paths()=0
Clears the list of paths to search for MDL modules.
#define mi_static_assert(expr)
Compile time assertion that raises a compilation error if the constant expression expr evaluates to f...
Definition: assert.h:65
unsigned int Uint32
32-bit unsigned integer.
Definition: types.h:49
Uint64 Size
Unsigned integral type that is large enough to hold the size of all types.
Definition: types.h:112
signed int Sint32
32-bit signed integer.
Definition: types.h:46
Canvas_type
The type of a canvas in an mi::neuraylib::IRender_target_base.
Definition: irender_target.h:32
Mixin class template for deriving new interface declarations.
Abstract interface for render targets.
Common namespace for APIs of NVIDIA Advanced Rendering Center GmbH.
Definition: neuraylib.h:179