An abstract interface for sharing global settings that configure NVIDIA IndeX rendering and computing functionality. More...
#include <iconfig_settings.h>
Inherits mi::base::Interface_declare< 0xf7d37400, ... >.
Classes | |
struct | Corner_point_grid_config |
Configuration settings for corner-point grid scene elements. More... | |
struct | Data_transfer_config |
Settings for data transfer over the network. More... | |
struct | Height_field_lod_config |
Configuration settings for tiled/level-of-detail height-field scene elements. More... | |
struct | Sparse_volume_config |
Configuration settings for sparse volume scene elements. More... | |
struct | Subdivision_config |
Configuration settings for spatial subdivision. More... | |
Public Types | |
enum | Rendering_mode { CPU_RENDERING = 0 , GPU_RENDERING = 1 , GPU_OR_CPU_RENDERING = 2 } |
NVIDIA IndeX supports both a CUDA-based GPU or CPU renderers. More... | |
enum | Compositing_mode { COMPOSITING_ALL = 0 , COMPOSITING_LOCAL_ONLY = 1 , COMPOSITING_REMOTE_ONLY = 2 , NO_COMPOSITING = 3 } |
The workload for compositing of the rendering results can be distributed to all machines, to the local viewer/head machine only, or to all but the local machine. More... | |
enum | Data_import_mode { DATA_IMPORT_DELAYED = 0 , DATA_IMPORT_IMMEDIATE = 1 } |
The import of distributed data can be performed in different ways by NVIDIA IndeX, these modes define when data subsets, generated by the spatial subdivision of the scene, are loaded. More... | |
enum | Heightfield_normal_calculation_mode { FACE_NORMAL_AVERAGE = 0 , AREA_WEIGHTED_FACE_NORMAL_AVERAGE = 1 } |
The heightfield vertex normal calculation mode. More... | |
Public Member Functions | |
virtual void | set_pick_origin (bool pixel_center)=0 |
NVIDIA IndeX uses the pixel centers to perform pick operations. More... | |
virtual bool | get_pick_origin () const =0 |
NVIDIA IndeX uses the pixel centers to perform pick operations. More... | |
System configuration settings | |
The set methods of the system configuration settings can only be called before rendering of the first frame is started. Instead, the get methods can be called any time. | |
virtual bool | set_sparse_volume_configuration (const Sparse_volume_config &svol_config)=0 |
Sets the sparse volume renderer configuration. More... | |
virtual const Sparse_volume_config & | get_sparse_volume_configuration () const =0 |
Returns the current sparse volume renderer configuration. More... | |
virtual bool | set_corner_point_grid_configuration (const Corner_point_grid_config &cpg_config)=0 |
Sets the corner-point grid renderer configuration. More... | |
virtual const Corner_point_grid_config & | get_corner_point_grid_configuration () const =0 |
Returns the current corner-point grid renderer configuration. More... | |
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. More... | |
virtual const Height_field_lod_config & | get_height_field_lod_configuration () const =0 |
Returns the current level-of-detail height-field renderer configuration. More... | |
virtual bool | set_subdivision_configuration (const Subdivision_config &subdiv_config)=0 |
Set spatial subdivision configuration. More... | |
virtual const Subdivision_config & | get_subdivision_configuration () const =0 |
Returns the current spatial subdivision configuration. More... | |
virtual const Subdivision_config & | get_default_subdivision_configuration () const =0 |
Returns the default spatial subdivision configuration. More... | |
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. More... | |
virtual void | get_subcube_size (mi::math::Vector_struct< mi::Uint32, 3 > &subcube_size) const =0 |
Returns the subcube size. More... | |
virtual bool | get_continuous_volume_translation_supported () const =0 |
Returns whether continuous translation of volume scene elements is currently supported. More... | |
virtual bool | get_volume_rotation_supported () const =0 |
Returns whether rotation of volume scene elements is currently supported. More... | |
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. More... | |
virtual mi::Uint32 | get_subcube_border_size () const =0 |
Returns the size of the subcube border. More... | |
virtual void | set_cuda_debug_checks_enabled (bool debug_checks)=0 |
Controls additional internal runtime checks for potential CUDA errors. More... | |
virtual bool | is_cuda_debug_checks_enabled () const =0 |
Returns whether additional CUDA runtime checks are enabled or disabled. More... | |
virtual void | set_dynamic_memory_management_enabled (bool dyn_mm)=0 |
Controls the state of dynamic memory management. More... | |
virtual bool | is_dynamic_memory_management_enabled () const =0 |
Returns whether the dynamic memory management is enabled or disabled. More... | |
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 rendering system. More... | |
virtual Data_import_mode | get_data_import_mode () const =0 |
Returns the currently configured import mode. More... | |
Performance settings | |
These settings are used for performance tuning depends on your system and data. See also the span settings. | |
virtual Rendering_mode | get_rendering_mode () const =0 |
Returns whether GPU or CPU rendering is used. More... | |
virtual void | set_rendering_mode (Rendering_mode mode)=0 |
Sets the rendering mode to either GPU or CPU. More... | |
virtual mi::Uint32 | get_cpu_thread_count () const =0 |
Returns the number of CPU threads used for rendering. More... | |
virtual void | set_cpu_thread_count (mi::Uint32 count)=0 |
Sets the number of CPU threads to be used for rendering. More... | |
virtual Compositing_mode | get_compositing_mode () const =0 |
Returns the workload distribution mode used for compositing intermediate rendering results. More... | |
virtual void | set_compositing_mode (Compositing_mode mode)=0 |
Sets the workload distribution mode used for compositing intermediate rendering results (default: COMPOSITING_ALL) More... | |
virtual bool | is_parallel_rendering_and_compositing () const =0 |
Returns true when rendering and compositing are performed in parallel. More... | |
virtual void | set_parallel_rendering_and_compositing (bool is_parallel)=0 |
Controls if rendering and compositing should be performed in parallel. More... | |
virtual bool | set_size_of_rendering_results_in_queue (mi::Uint32 size)=0 |
Sets the size of the rendering result queue. More... | |
virtual mi::Uint32 | get_size_of_rendering_results_in_queue () const =0 |
Returns the size of the rendering result queue. More... | |
virtual bool | is_monitor_performance_values () const =0 |
Returns if detailed performance monitoring is active. More... | |
virtual void | set_monitor_performance_values (bool monitor)=0 |
Enables or disables detailed performance monitoring. More... | |
virtual Data_transfer_config | get_data_transfer_config () const =0 |
Return the current settings for data transfer over the network. More... | |
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) More... | |
Span settings | |
These span composition settings affects the system performance also. | |
virtual bool | is_automatic_span_control () const =0 |
Returns if automatic span control is enabled. More... | |
virtual void | set_automatic_span_control (bool automatic_span_control)=0 |
Enable or disable the automatic span control (default: true) More... | |
virtual mi::Uint32 | get_max_spans_per_machine () const =0 |
Returns the maximum number of spans per machine. More... | |
virtual bool | set_max_spans_per_machine (mi::Uint32 max_spans_per_machine)=0 |
Set the Maximum number of spans per machine (default: 4) More... | |
virtual mi::Uint32 | get_nb_spans () const =0 |
Returns the number of horizontal spans. More... | |
virtual bool | set_nb_spans (mi::Uint32 nb_spans)=0 |
Sets the current number of horizontal spans. More... | |
Rendering settings | |
Rendering settings alter the rendering quality. This also affects the system performance since there usually is a trade off between the rendering quality and the performance. | |
virtual mi::Uint32 | get_rendering_samples () const =0 |
Returns the number of samples per pixel used during rendering. More... | |
virtual void | set_rendering_samples (mi::Uint32 samples)=0 |
Set the number of samples per pixel used during rendering. More... | |
virtual bool | is_boost_geometry_colormap_opacity () const =0 |
Returns the current boost geometry color opacity mode. More... | |
virtual void | set_boost_geometry_colormap_opacity (bool boost_opacity)=0 |
Set boost geometry color opacity mode. More... | |
virtual void | set_depth_test (nv::index::IDepth_test::Depth_test_mode test_mode)=0 |
Set global depth test mode. More... | |
virtual nv::index::IDepth_test::Depth_test_mode | get_depth_test () const =0 |
Get current global depth test mode. More... | |
Data loading and workload balancing | |
virtual bool | is_forced_data_upload () const =0 |
Returns if an upload of all scene data is forced. More... | |
virtual void | set_force_data_upload (bool upload)=0 |
Enable or disable the forced upload of scene data. More... | |
virtual bool | is_workload_balancing_enabled () const =0 |
Returns if the workload balancing is enabled. More... | |
virtual void | set_workload_balancing (bool enable)=0 |
Enable or disable the workload balancing. More... | |
Experimental settings | |
These settings are only experimental. They are not officially supported. | |
virtual mi::Uint32 | get_nb_timesteps () const =0 |
Time step animation settings. More... | |
virtual void | set_nb_timesteps (mi::Uint32 nb_timesteps)=0 |
Set total number of timesteps (default: 0) More... | |
virtual mi::Uint32 | get_current_timestep () const =0 |
virtual void | set_current_timestep (mi::Uint32 current_timestep)=0 |
Set current timestep (default: 0) More... | |
virtual void | enable_frame_buffer_blending (bool enable_flag)=0 |
Frame buffer blending allows for colored backgrounds also in a non GL frame buffer. More... | |
virtual bool | is_frame_buffer_blending_enabled () const =0 |
virtual void | set_heightfield_normal_calculation_mode (Heightfield_normal_calculation_mode calculation_mode)=0 |
Set heightfield normal calculation mode. More... | |
virtual Heightfield_normal_calculation_mode | get_heightfield_normal_calculation_mode () const =0 |
Get heightfield normal calculation mode. More... | |
virtual void | flush_custom_cuda_programs ()=0 |
Triggers recompilation of all custom CUDA programs on next use. More... | |
virtual void | set_volume_picking_threshold (mi::Float32 threshold)=0 |
Set threshold and mode for picking inside a volume. More... | |
virtual mi::Float32 | get_volume_picking_threshold () const =0 |
Return the threshold for picking inside a volume. More... | |
An abstract interface for sharing global settings that configure NVIDIA IndeX rendering and computing functionality.
The workload for compositing of the rendering results can be distributed to all machines, to the local viewer/head machine only, or to all but the local machine.
The import of distributed data can be performed in different ways by NVIDIA IndeX, these modes define when data subsets, generated by the spatial subdivision of the scene, are loaded.
NVIDIA IndeX supports both a CUDA-based GPU or CPU renderers.
The renderers can be switched at runtime. The GPU renderer gives the best performance especially when rendering large-scale data. Moreover, the GPU renderer has the complete and more comprehensive feature set compared to the CPU renderer. The CPU renderer is restricted to volume and heightfield rendering only.
Enumerator | |
---|---|
CPU_RENDERING | CPU rendering mode. |
GPU_RENDERING | GPU rendering mode (using CUDA). |
GPU_OR_CPU_RENDERING | GPU rendering with automatic fallback to CPU when no GPU is available. |
|
pure virtual |
Frame buffer blending allows for colored backgrounds also in a non GL frame buffer.
enable_flag | Enables or disables blending. |
|
pure virtual |
Triggers recompilation of all custom CUDA programs on next use.
|
pure virtual |
Returns the workload distribution mode used for compositing intermediate rendering results.
|
pure virtual |
Returns whether continuous translation of volume scene elements is currently supported.
|
pure virtual |
Returns the current corner-point grid renderer configuration.
Corner_point_grid_config
).
|
pure virtual |
Returns the number of CPU threads used for rendering.
|
pure virtual |
ITime_step_assignment
.
|
pure virtual |
Returns the currently configured import mode.
|
pure virtual |
Return the current settings for data transfer over the network.
|
pure virtual |
Returns the default spatial subdivision configuration.
|
pure virtual |
|
pure virtual |
Returns the current level-of-detail height-field renderer configuration.
Height_field_lod_config
).
|
pure virtual |
Get heightfield normal calculation mode.
|
pure virtual |
Returns the maximum number of spans per machine.
|
pure virtual |
Returns the minimum scaling factor for volume scene elements currently supported.
The default of (1, 1, 1) means these scene elements will only be made larger but not smaller.
[out] | minimal_scaling | The minimal scaling factors for each axis |
|
pure virtual |
Returns the number of horizontal spans.
|
pure virtual |
Time step animation settings.
ITime_step_assignment
.
|
pure virtual |
NVIDIA IndeX uses the pixel centers to perform pick operations.
true
if the pixel center is used for picking.
|
pure virtual |
Returns whether GPU or CPU rendering is used.
|
pure virtual |
Returns the number of samples per pixel used during rendering.
|
pure virtual |
Returns the size of the rendering result queue.
|
pure virtual |
Returns the current sparse volume renderer configuration.
Sparse_volume_config
).
|
pure virtual |
Returns the size of the subcube border.
|
pure virtual |
Returns the subcube size.
This is the size of the logical subcubes into which the volume dataset is split up.
[out] | subcube_size | Current subcube size It can be smaller than the value that was passed to set_subcube_configuration() if rotation or scaling were enabled. The returned value does not include the size of the border. |
|
pure virtual |
Returns the current spatial subdivision configuration.
|
pure virtual |
Return the threshold for picking inside a volume.
|
pure virtual |
Returns whether rotation of volume scene elements is currently supported.
|
pure virtual |
Returns if automatic span control is enabled.
|
pure virtual |
Returns the current boost geometry color opacity mode.
|
pure virtual |
Returns whether additional CUDA runtime checks are enabled or disabled.
|
pure virtual |
Returns whether the dynamic memory management is enabled or disabled.
|
pure virtual |
Returns if an upload of all scene data is forced.
|
pure virtual |
|
pure virtual |
Returns if detailed performance monitoring is active.
|
pure virtual |
Returns true when rendering and compositing are performed in parallel.
|
pure virtual |
Returns if the workload balancing is enabled.
|
pure virtual |
Enable or disable the automatic span control (default: true)
[in] | automatic_span_control | True to enable the automatic span control mechanism. |
|
pure virtual |
Set boost geometry color opacity mode.
This will increase the opacity of colormaps for geometry such as slices, so that the same colormap can be used for volume and geometric data, without the geometry becoming invisible, because it is too thin to be visible with the standard colormap settings.
When this mode is enabled, an internal copy of the active colormap is created where the opacity values are modified as follows:
alpha_dest = min(1.0, 0.3 + (alpha_src * 100.0) * 0.7)
(default: false)
[in] | boost_opacity | true when opacity boosting is on |
|
pure virtual |
Sets the workload distribution mode used for compositing intermediate rendering results (default: COMPOSITING_ALL)
[in] | mode | New compositing mode |
|
pure virtual |
Sets the corner-point grid renderer configuration.
[in] | cpg_config | The new corner-point grid configuration. |
true
if the configuration succeeded, false otherwise.
|
pure virtual |
Sets the number of CPU threads to be used for rendering.
(default: 12)
[in] | count | Number of CPU threads |
|
pure virtual |
Controls additional internal runtime checks for potential CUDA errors.
[in] | debug_checks | Enable or disable the runtime checks. |
|
pure virtual |
Set current timestep (default: 0)
ITime_step_assignment
.[in] | current_timestep | current timestep to be set |
|
pure virtual |
Controls the data import mode, defining when data subsets are imported into the NVIDIA IndeX rendering system.
The default mode is DATA_IMPORT_DELAYED
.
[in] | import_mode | The import mode, defining when data subsets are imported. |
|
pure virtual |
Controls the settings for data transfer over the network (default: see the Data_transfer_config)
[in] | config | network data transfer configuration (e.g., compression mode, encoding mode.) |
|
pure virtual |
Set global depth test mode.
This mode affects raster object and non-raster object. Non-raster object can be specified per-object test mode via IDepth_test attribute node. (default: nv::index::IDepth_test::TEST_LESS_EQUAL)
[in] | test_mode | depth test operator |
|
pure virtual |
Controls the state of dynamic memory management.
The dynamic memory management is enabled by default.
[in] | dyn_mm | Enable or disable the dynamic memory management. |
|
pure virtual |
Enable or disable the forced upload of scene data.
(default: false)
[in] | upload | True enables the forced data upload. |
|
pure virtual |
Sets the level-of-detail height-field renderer configuration.
[in] | hf_lod_config | The new level-of-detail height-field configuration. |
true
if the configuration succeeded, false otherwise.
|
pure virtual |
Set heightfield normal calculation mode.
[in] | calculation_mode | The mode of normal calculation. |
|
pure virtual |
Set the Maximum number of spans per machine (default: 4)
max_spans_per_machine | Maximum number of spans per machine. |
true
on success.
|
pure virtual |
Enables or disables detailed performance monitoring.
(default: false)
[in] | monitor | Monitoring state |
|
pure virtual |
Sets the current number of horizontal spans.
The rendering job will be split up in this many vertically stacked rectangles, to improve workload distribution. This setting can have a great influence on overall rendering performance, especially when running with a large number of hosts. (default: 1)
[in] | nb_spans | Number of horizontal spans to use |
true
on success.
|
pure virtual |
Set total number of timesteps (default: 0)
ITime_step_assignment
.[in] | nb_timesteps | total number of timesteps |
|
pure virtual |
Controls if rendering and compositing should be performed in parallel.
(default: true)
[in] | is_parallel | If true, parallel rendering and compositing will be used |
|
pure virtual |
NVIDIA IndeX uses the pixel centers to perform pick operations.
If the lower left corner of the pixel shall be used then the following call could be used. (default: true)
[in] | pixel_center | If true , then the pixel center will be used. |
|
pure virtual |
Sets the rendering mode to either GPU or CPU.
(default: GPU_RENDERING)
[in] | mode | Rendering mode to use |
|
pure virtual |
Set the number of samples per pixel used during rendering.
Using a sample value of 1 or less effectively disables the full screen antialiasing. (default: 1)
[in] | samples | The number of samples to be used for each pixel when rendering the scene. |
|
pure virtual |
Sets the size of the rendering result queue.
Intermediate rendering results are not immediately transferred to other cluster nodes, but are temporarily stored in a rendering result queue. Only when this queue is full is the transfer started. This reduces overhead, because a single transfer can be used for multiple results. (default: 1)
[in] | size | Number of Rendering results in the queue |
true
on success.
|
pure virtual |
Sets the sparse volume renderer configuration.
[in] | svol_config | The new sparse volume configuration. |
true
if the configuration succeeded, false otherwise.
|
pure virtual |
Sets the size of the logical subcubes into which the volume dataset is split up.
The subcubes may shrink if volume rotation or scaling is enabled.
To get the internal subcube size for memory allocation, the border (see set_subcube_border()) is added to the given subcube size. For example, with an initial subcube size of 510 and a border size of 1 (on each side) subcubes with a size of 512 would be allocated. These are also the default settings.
[in] | initial_subcube_size | The initial subcube size to use. It actually used size might become smaller is rotation or scaling is enabled. (default: 510) |
[in] | subcube_border_size | Controls the size of the border around each subcube, for which neighboring voxel data is stored. The default border size is 1, which makes trilinear filtering possible. For more complex filters (using larger kernels) a larger border size may be required. |
[in] | support_continuous_volume_translation | Controls whether a translation of volume scene elements should be supported for arbitrary float values (true) or just for integer values (false). Since enabling this feature reduces the usable subcube size, it should only be enabled when needed. (default: false) |
[in] | support_volume_rotation | Controls whether rotation of volume scene elements should be supported. Since enabling this feature reduces the usable subcube size, it should only be enabled when needed. (default: false) |
[in] | minimal_volume_scaling | The minimum scaling factor for volume scene elements that should be supported. Since any value less than 1 reduces the usable subcube size, the scaling factor should be chosen only as small as absolutely needed. The default of (1, 1, 1) should be used if no scaling is required. Values given here must be greater than 0.0 and less or equal to 1.0. When a scene element is scaled by a negative scaling factor then the absolute value of this factor should be used to determine the minimal volume scaling. |
true
if the configuration succeeded.
|
pure virtual |
Set spatial subdivision configuration.
subdiv_config | Subdivision settings. |
true
if the configuration succeeded, false otherwise.
|
pure virtual |
Set threshold and mode for picking inside a volume.
There are two threshold modes: When the threshold value is negative or 0 then the picking will return the first volume sample that has a opacity above the absolute threshold, i.e. sample >= fabs(threshold).
When the threshold value is positive then the volume picking will use color accumulation and will return when the accumulated opacity is above the threshold. This the same approach as for volume rendering, meaning that picking result will match the rendering.
The default threshold value is -1.
[in] | threshold | Threshold value. |
|
pure virtual |
Enable or disable the workload balancing.
(default: false)
[in] | enable | True enables the workload balancing. |