NVIDIA IndeX API nvidia_logo_transpbg.gif Up
iconfig_settings.h
Go to the documentation of this file.
1/******************************************************************************
2 * Copyright 2023 NVIDIA Corporation. All rights reserved.
3 *****************************************************************************/
6
7#ifndef NVIDIA_INDEX_ICONFIG_SETTINGS_H
8#define NVIDIA_INDEX_ICONFIG_SETTINGS_H
9
10#include <mi/dice.h>
11#include <mi/base/interface_declare.h>
12
14
15namespace nv
16{
17namespace index
18{
19
26 public mi::base::Interface_declare<0xf7d37400,0xdf43,0x49f2,0x8e,0x12,0x67,0xe3,0x62,0x90,0xad,0xee,
27 mi::neuraylib::IElement>
28{
29public:
37 {
44 };
45
49 {
58 };
59
63 {
70 };
71
74 {
79 };
80
83 {
89 span_alpha_channel(false),
97 {}
98
102
106
110
114
119
122
125
129
133
137
140
143 };
144
147 {
153 mi::math::Vector_struct<mi::Uint32, 3> brick_dimensions;
154
159 };
160
163 {
166 mi::math::Vector_struct<mi::Uint32, 2> tile_dimensions;
167 };
168
171 {
176 mi::math::Vector_struct<mi::Uint32, 2> tile_dimensions;
177
182 };
183
184
187 {
192
201 };
202
205
208
215
218 };
219
220
228
236 const Sparse_volume_config& svol_config) = 0;
237
243
251 const Corner_point_grid_config& cpg_config) = 0;
252
258
266 const Height_field_lod_config& hf_lod_config) = 0;
267
273
281 const Subdivision_config& subdiv_config) = 0;
282
288
294
334 const mi::math::Vector_struct<mi::Uint32, 3>& initial_subcube_size,
335 mi::Uint32 subcube_border_size,
336 bool support_continuous_volume_translation,
337 bool support_volume_rotation,
338 const mi::math::Vector_struct<mi::Float32, 3>& minimal_volume_scaling) = 0;
339
347 virtual void get_subcube_size(mi::math::Vector_struct<mi::Uint32, 3>& subcube_size) const = 0;
348
353
356 virtual bool get_volume_rotation_supported() const = 0;
357
363 virtual void get_minimal_volume_scaling(mi::math::Vector_struct<mi::Float32, 3>& minimal_scaling) const = 0;
364
367 virtual mi::Uint32 get_subcube_border_size() const = 0;
368
378 virtual void set_cuda_debug_checks_enabled(bool debug_checks) = 0;
379
384 virtual bool is_cuda_debug_checks_enabled() const = 0;
385
400 virtual void set_dynamic_memory_management_enabled(bool dyn_mm) = 0;
401
406 virtual bool is_dynamic_memory_management_enabled() const = 0;
407
413 virtual void set_data_import_mode(Data_import_mode import_mode) = 0;
414
421
427
434 virtual void set_rendering_mode(Rendering_mode mode) = 0;
435
438 virtual mi::Uint32 get_cpu_thread_count() const = 0;
442 virtual void set_cpu_thread_count(mi::Uint32 count) = 0;
443
447
452
456
461 virtual void set_parallel_rendering_and_compositing(bool is_parallel) = 0;
462
474 virtual bool set_size_of_rendering_results_in_queue(mi::Uint32 size) = 0;
475
479 virtual mi::Uint32 get_size_of_rendering_results_in_queue() const = 0;
480
484 virtual bool is_monitor_performance_values() const = 0;
485
491 virtual void set_monitor_performance_values(bool monitor) = 0;
492
497
503 virtual void set_data_transfer_config(const Data_transfer_config& config) = 0;
505
511
516 virtual bool is_automatic_span_control() const = 0;
517
523 virtual void set_automatic_span_control(bool automatic_span_control) = 0;
524
527 virtual mi::Uint32 get_max_spans_per_machine() const = 0;
528
535 virtual bool set_max_spans_per_machine(mi::Uint32 max_spans_per_machine) = 0;
536
539 virtual mi::Uint32 get_nb_spans() const = 0;
540
551 virtual bool set_nb_spans(mi::Uint32 nb_spans) = 0;
553
562 virtual void set_pick_origin(bool pixel_center) = 0;
563
570 virtual bool get_pick_origin() const = 0;
571
578
581 virtual mi::Uint32 get_rendering_samples() const = 0;
582
589 virtual void set_rendering_samples(mi::Uint32 samples) = 0;
590
593 virtual bool is_boost_geometry_colormap_opacity() const = 0;
594
612 virtual void set_boost_geometry_colormap_opacity(bool boost_opacity) = 0;
613
626
633
635
638
643 virtual bool is_forced_data_upload() const = 0;
644
650 virtual void set_force_data_upload(bool upload) = 0;
651
656 virtual bool is_workload_balancing_enabled() const = 0;
657
663 virtual void set_workload_balancing(bool enable) = 0;
665
669
675 virtual mi::Uint32 get_nb_timesteps() const = 0;
676
682 virtual void set_nb_timesteps(mi::Uint32 nb_timesteps) = 0;
683
687 virtual mi::Uint32 get_current_timestep() const = 0;
688
694 virtual void set_current_timestep(mi::Uint32 current_timestep) = 0;
695
701 virtual void enable_frame_buffer_blending(bool enable_flag) = 0;
702
704 virtual bool is_frame_buffer_blending_enabled() const = 0;
705
710
715
717 virtual void flush_custom_cuda_programs() = 0;
718
735 virtual void set_volume_picking_threshold(mi::Float32 threshold) = 0;
736
740 virtual mi::Float32 get_volume_picking_threshold() const = 0;
741
743};
744
745}} // namespace index / nv
746
747#endif // NVIDIA_INDEX_ICONFIG_SETTINGS_H
An abstract interface for sharing global settings that configure NVIDIA IndeX rendering and computing...
Definition: iconfig_settings.h:28
virtual bool set_size_of_rendering_results_in_queue(mi::Uint32 size)=0
Sets the size of the rendering result queue.
virtual nv::index::IDepth_test::Depth_test_mode get_depth_test() const =0
Get current global depth test mode.
virtual Data_transfer_config get_data_transfer_config() const =0
Return the current settings for data transfer over the network.
virtual void flush_custom_cuda_programs()=0
Triggers recompilation of all custom CUDA programs on next use.
virtual bool is_monitor_performance_values() const =0
Returns if detailed performance monitoring is active.
virtual bool is_frame_buffer_blending_enabled() const =0
virtual void set_cpu_thread_count(mi::Uint32 count)=0
Sets the number of CPU threads to be used for rendering.
virtual mi::Uint32 get_nb_timesteps() const =0
Time step animation settings.
virtual bool set_subcube_configuration(const mi::math::Vector_struct< mi::Uint32, 3 > &initial_subcube_size, mi::Uint32 subcube_border_size, bool support_continuous_volume_translation, bool support_volume_rotation, const mi::math::Vector_struct< mi::Float32, 3 > &minimal_volume_scaling)=0
Sets the size of the logical subcubes into which the volume dataset is split up.
virtual Heightfield_normal_calculation_mode get_heightfield_normal_calculation_mode() const =0
Get heightfield normal calculation mode.
virtual void set_cuda_debug_checks_enabled(bool debug_checks)=0
Controls additional internal runtime checks for potential CUDA errors.
virtual Rendering_mode get_rendering_mode() const =0
Returns whether GPU or CPU rendering is used.
Compositing_mode
The workload for compositing of the rendering results can be distributed to all machines,...
Definition: iconfig_settings.h:49
@ COMPOSITING_LOCAL_ONLY
Perform compositing on the local (viewer or head) cluster machine only.
Definition: iconfig_settings.h:53
@ NO_COMPOSITING
Disable compositing for performance testing.
Definition: iconfig_settings.h:57
@ COMPOSITING_REMOTE_ONLY
Perform compositing on all cluster machines except the local (viewer or head) cluster machine.
Definition: iconfig_settings.h:55
@ COMPOSITING_ALL
Perform compositing on all available cluster machines.
Definition: iconfig_settings.h:51
virtual bool is_workload_balancing_enabled() const =0
Returns if the workload balancing is enabled.
virtual void set_boost_geometry_colormap_opacity(bool boost_opacity)=0
Set boost geometry color opacity mode.
virtual mi::Uint32 get_max_spans_per_machine() const =0
Returns the maximum number of spans per machine.
virtual void set_workload_balancing(bool enable)=0
Enable or disable the workload balancing.
virtual bool set_max_spans_per_machine(mi::Uint32 max_spans_per_machine)=0
Set the Maximum number of spans per machine (default: 4)
virtual const Subdivision_config & get_subdivision_configuration() const =0
Returns the current spatial subdivision configuration.
virtual bool is_automatic_span_control() const =0
Returns if automatic span control is enabled.
virtual bool set_subdivision_configuration(const Subdivision_config &subdiv_config)=0
Set spatial subdivision configuration.
virtual bool set_sparse_volume_configuration(const Sparse_volume_config &svol_config)=0
Sets the sparse volume renderer configuration.
virtual Data_import_mode get_data_import_mode() const =0
Returns the currently configured import mode.
virtual void set_volume_picking_threshold(mi::Float32 threshold)=0
Set threshold and mode for picking inside a volume.
virtual bool set_nb_spans(mi::Uint32 nb_spans)=0
Sets the current number of horizontal spans.
virtual mi::Uint32 get_subcube_border_size() const =0
Returns the size of the subcube border.
virtual void set_nb_timesteps(mi::Uint32 nb_timesteps)=0
Set total number of timesteps (default: 0)
virtual mi::Uint32 get_rendering_samples() const =0
Returns the number of samples per pixel used during rendering.
virtual void enable_frame_buffer_blending(bool enable_flag)=0
Frame buffer blending allows for colored backgrounds also in a non GL frame buffer.
virtual void set_data_transfer_config(const Data_transfer_config &config)=0
Controls the settings for data transfer over the network (default: see the Data_transfer_config)
virtual void set_rendering_mode(Rendering_mode mode)=0
Sets the rendering mode to either GPU or CPU.
virtual mi::Uint32 get_size_of_rendering_results_in_queue() const =0
Returns the size of the rendering result queue.
virtual bool set_corner_point_grid_configuration(const Corner_point_grid_config &cpg_config)=0
Sets the corner-point grid renderer configuration.
virtual mi::Float32 get_volume_picking_threshold() const =0
Return the threshold for picking inside a volume.
virtual void set_dynamic_memory_management_enabled(bool dyn_mm)=0
Controls the state of dynamic memory management.
virtual const Height_field_lod_config & get_height_field_lod_configuration() const =0
Returns the current level-of-detail height-field renderer configuration.
virtual mi::Uint32 get_cpu_thread_count() const =0
Returns the number of CPU threads used for rendering.
virtual bool get_volume_rotation_supported() const =0
Returns whether rotation of volume scene elements is currently supported.
virtual bool get_pick_origin() const =0
NVIDIA IndeX uses the pixel centers to perform pick operations.
Data_import_mode
The import of distributed data can be performed in different ways by NVIDIA IndeX,...
Definition: iconfig_settings.h:63
@ DATA_IMPORT_DELAYED
Import data delayed.
Definition: iconfig_settings.h:66
@ DATA_IMPORT_IMMEDIATE
Import data immediately.
Definition: iconfig_settings.h:69
virtual bool get_continuous_volume_translation_supported() const =0
Returns whether continuous translation of volume scene elements is currently supported.
virtual void set_monitor_performance_values(bool monitor)=0
Enables or disables detailed performance monitoring.
virtual bool is_dynamic_memory_management_enabled() const =0
Returns whether the dynamic memory management is enabled or disabled.
virtual mi::Uint32 get_current_timestep() const =0
virtual bool is_forced_data_upload() const =0
Returns if an upload of all scene data is forced.
virtual void get_subcube_size(mi::math::Vector_struct< mi::Uint32, 3 > &subcube_size) const =0
Returns the subcube size.
virtual Compositing_mode get_compositing_mode() const =0
Returns the workload distribution mode used for compositing intermediate rendering results.
virtual bool set_height_field_lod_configuration(const Height_field_lod_config &hf_lod_config)=0
Sets the level-of-detail height-field renderer configuration.
virtual bool is_parallel_rendering_and_compositing() const =0
Returns true when rendering and compositing are performed in parallel.
virtual const Subdivision_config & get_default_subdivision_configuration() const =0
Returns the default spatial subdivision configuration.
virtual void set_depth_test(nv::index::IDepth_test::Depth_test_mode test_mode)=0
Set global depth test mode.
virtual void set_force_data_upload(bool upload)=0
Enable or disable the forced upload of scene data.
virtual void set_parallel_rendering_and_compositing(bool is_parallel)=0
Controls if rendering and compositing should be performed in parallel.
virtual void set_heightfield_normal_calculation_mode(Heightfield_normal_calculation_mode calculation_mode)=0
Set heightfield normal calculation mode.
virtual mi::Uint32 get_nb_spans() const =0
Returns the number of horizontal spans.
virtual bool is_boost_geometry_colormap_opacity() const =0
Returns the current boost geometry color opacity mode.
virtual void set_pick_origin(bool pixel_center)=0
NVIDIA IndeX uses the pixel centers to perform pick operations.
virtual void set_automatic_span_control(bool automatic_span_control)=0
Enable or disable the automatic span control (default: true)
virtual void get_minimal_volume_scaling(mi::math::Vector_struct< mi::Float32, 3 > &minimal_scaling) const =0
Returns the minimum scaling factor for volume scene elements currently supported.
virtual const Sparse_volume_config & get_sparse_volume_configuration() const =0
Returns the current sparse volume renderer configuration.
Heightfield_normal_calculation_mode
The heightfield vertex normal calculation mode.
Definition: iconfig_settings.h:74
@ AREA_WEIGHTED_FACE_NORMAL_AVERAGE
Triangle area weighted one ring neighbor triangle face normal average.
Definition: iconfig_settings.h:78
@ FACE_NORMAL_AVERAGE
One ring neighbor triangle face normal average.
Definition: iconfig_settings.h:76
Rendering_mode
NVIDIA IndeX supports both a CUDA-based GPU or CPU renderers.
Definition: iconfig_settings.h:37
@ CPU_RENDERING
CPU rendering mode.
Definition: iconfig_settings.h:39
@ GPU_RENDERING
GPU rendering mode (using CUDA).
Definition: iconfig_settings.h:41
@ GPU_OR_CPU_RENDERING
GPU rendering with automatic fallback to CPU when no GPU is available.
Definition: iconfig_settings.h:43
virtual void set_rendering_samples(mi::Uint32 samples)=0
Set the number of samples per pixel used during rendering.
virtual void set_current_timestep(mi::Uint32 current_timestep)=0
Set current timestep (default: 0)
virtual void set_data_import_mode(Data_import_mode import_mode)=0
Controls the data import mode, defining when data subsets are imported into the NVIDIA IndeX renderin...
virtual void set_compositing_mode(Compositing_mode mode)=0
Sets the workload distribution mode used for compositing intermediate rendering results (default: COM...
virtual bool is_cuda_debug_checks_enabled() const =0
Returns whether additional CUDA runtime checks are enabled or disabled.
virtual const Corner_point_grid_config & get_corner_point_grid_configuration() const =0
Returns the current corner-point grid renderer configuration.
Depth_test_mode
Depth test modes that are supported by NVIDIA IndeX.
Definition: idepth_test.h:36
Depth test shape rendering attribute.
Common namespace for all NVIDIA APIs.
Definition: iindex.h:349
Configuration settings for corner-point grid scene elements.
Definition: iconfig_settings.h:163
mi::math::Vector_struct< mi::Uint32, 2 > tile_dimensions
Controls the dimensions of corner-point grid layer tiles and therefore the granularity of the corner-...
Definition: iconfig_settings.h:166
Settings for data transfer over the network.
Definition: iconfig_settings.h:83
bool tile_image_encoding
Use special image encoding to improve compression for intermediate tile image data (default: true).
Definition: iconfig_settings.h:113
mi::Uint32 z_buffer_compression_mode
Compression mode for depth buffer data, experimental (default: 0).
Definition: iconfig_settings.h:139
mi::Uint8 span_compression_threads
Number of threads for compression of horizontal span image data, 0 means to use the default.
Definition: iconfig_settings.h:128
bool span_image_encoding
Use special image encoding to improve compression for horizontal span image data (default: true).
Definition: iconfig_settings.h:109
bool span_alpha_channel
Enable transfer of the alpha channel for horizontal span image data.
Definition: iconfig_settings.h:118
mi::Uint8 z_buffer_compression_threads
Number of threads for compression of depth buffer data, 0 means to use the default.
Definition: iconfig_settings.h:142
mi::Uint8 span_compression_level
Compression level for transfer of horizontal span image data.
Definition: iconfig_settings.h:101
mi::Uint8 z_buffer_compression_level
Compression level for transfer of depth buffer data.
Definition: iconfig_settings.h:136
mi::Uint8 tile_compression_level
Compression level for transfer of intermediate tile image data.
Definition: iconfig_settings.h:105
mi::Uint32 tile_compression_mode
Compression mode for intermediate tile image data, experimental (default: 0).
Definition: iconfig_settings.h:124
mi::Uint8 tile_compression_threads
Number of threads for compression of intermediate tile image data, 0 means to use the default.
Definition: iconfig_settings.h:132
mi::Uint32 span_compression_mode
Compression mode for horizontal span image data, experimental (default: 0).
Definition: iconfig_settings.h:121
Configuration settings for tiled/level-of-detail height-field scene elements.
Definition: iconfig_settings.h:171
mi::math::Vector_struct< mi::Uint32, 2 > tile_dimensions
Controls the dimensions of height-field tiles.
Definition: iconfig_settings.h:176
mi::Uint32 tile_shared_border_size
Controls the size of shared border around height-field tiles.
Definition: iconfig_settings.h:181
Configuration settings for sparse volume scene elements.
Definition: iconfig_settings.h:147
mi::math::Vector_struct< mi::Uint32, 3 > brick_dimensions
Controls the dimensions of sparse volume bricks and therefore the granularity of the sparse volume re...
Definition: iconfig_settings.h:153
mi::Uint32 brick_shared_border_size
Controls the size of shared border around volume bricks.
Definition: iconfig_settings.h:158
Configuration settings for spatial subdivision.
Definition: iconfig_settings.h:187
mi::Uint32 subdivision_part_count
Number of parts the scene should be subdivided. Used in adaptive subdivision modes like SUBDIVIDE_USI...
Definition: iconfig_settings.h:207
bool suppress_y_axis_subdivision
Suppress subdivision of Y-axis.
Definition: iconfig_settings.h:212
bool save_subdivision
Save generated subdivision. This can be used to avoid subdivision work on later scene loads.
Definition: iconfig_settings.h:217
Subdivision_mode
Spatial subdivision modes.
Definition: iconfig_settings.h:189
@ SUBDIVIDE_USING_GRID
Subdivide scene using a regular 3D grid. The grid cell size is based on subcube size settings.
Definition: iconfig_settings.h:191
@ SUBDIVIDE_USING_KD_TREE
Subdivide scene adaptively into number_adaptive_parts, using a Kd-tree.
Definition: iconfig_settings.h:200
bool suppress_x_axis_subdivision
Suppress subdivision of X-axis.
Definition: iconfig_settings.h:210
bool suppress_z_axis_subdivision
Suppress subdivision of Z-axis.
Definition: iconfig_settings.h:214
Subdivision_mode subdivision_mode
Spatial subdivision mode used for complete scene.
Definition: iconfig_settings.h:204