7#ifndef NVIDIA_INDEX_IDISTRIBUTED_COMPUTE_DESTINATION_BUFFER_H
8#define NVIDIA_INDEX_IDISTRIBUTED_COMPUTE_DESTINATION_BUFFER_H
11#include <mi/base/interface_declare.h>
42 public mi::base::Interface_declare<0xfaae5c5,0x2701,0x442e,0x8f,0x77,0xe3,0x3,0xed,0xd,0x6f,0x5c>
105 public mi::base::Interface_declare<0x9da831bb,0x8425,0x4590,0xaa,0x10,0x8,0xcc,0x8d,0x5f,0x90,0xc1,
106 nv::index::IDistributed_compute_destination_buffer>
166 public mi::base::Interface_declare<0x384f6eca,0xd09c,0x47a1,0xa0,0x91,0x1e,0x5f,0xc3,0xfb,0x47,0x6,
167 nv::index::IDistributed_compute_destination_buffer>
197 public mi::base::Interface_declare<0x8993a772,0xbde1,0x4424,0x9b,0xec,0xc7,0x86,0xa1,0x38,0x85,0xac,
198 nv::index::IDistributed_compute_destination_buffer>
228 public mi::base::Interface_declare<0x131bc471, 0xb557, 0x4e80, 0x8e, 0x71, 0xa1, 0x3a, 0x58, 0xd5, 0xa5, 0x1f,
229 nv::index::IDistributed_compute_destination_buffer>
269 public mi::base::Interface_declare<0xd985cb6a,0xe5c2,0x4c40,0x95,0xe3,0x29,0xa7,0x22,0x3e,0x35,0x9f,
270 mi::neuraylib::ISerializable>
289 mi::Uint32& nb_points) = 0;
305 public mi::base::Interface_declare<0x1ea87c20,0xdae0,0x4b81,0xa3,0x16,0xa0,0x52,0x2d,0xf7,0xb4,0x3c,
306 nv::index::IDistributed_compute_destination_buffer>
339 FORMAT_INVALID = 0x00,
452 public mi::base::Interface_declare<0xfb33be9,0x8b65,0x400d,0xb3,0xfe,0xc2,0x3a,0x47,0x2d,0x4e,0xcf>
488 mi::Uint32 mip_level,
535 public mi::base::Interface_declare<0xb25d2721,0xab95,0x450c,0x8d,0x64,0xd0,0xc5,0xd1,0xaa,0xac,0xca,
536 nv::index::IDistributed_compute_destination_buffer>
545 FORMAT_INVALID = 0x00,
583 const mi::math::Vector_struct<mi::Uint32, 2>& global_texture_resolution,
584 const mi::math::Bbox_struct<mi::Float32, 2>& texture_tile_surface_area,
585 mi::Uint32 texture_tile_border)
const = 0;
639 const mi::math::Vector_struct<mi::Uint32, 2>& lod_level_range) = 0;
653 mi::Uint32& nb_required_levels,
654 mi::Uint32*& required_levels)
const = 0;
667 mi::Uint32 lod_level) = 0;
692class IDistributed_compute_destination_buffer_container :
693 public mi::base::Interface_declare<0xdb6a75e3,0x86c0,0x494a,0xac,0xd9,0x4a,0xd9,0x68,0x56,0xb7,0x3c>
696 virtual mi::Uint32 get_nb_destination_buffers()
const = 0;
Definition: idistributed_compute_destination_buffer.h:453
virtual LOD_level_info get_mip_level_info(mi::Uint32 mip_level) const =0
Information regarding the mipmap-levels in the configuration.
virtual mi::Uint32 get_nb_mipmap_levels() const =0
Number of mipmap-levels in the configuration.
virtual void set_mip_level_info(mi::Uint32 mip_level, const LOD_level_info &mip_level_info)=0
Information regarding the mipmap-levels in the configuration.
virtual void set_nb_mipmap_levels(mi::Uint32 nb_mipmaps)=0
Number of mipmap-levels in the configuration.
Compute-destination buffer for 2D LOD-texture generation techniques.
Definition: idistributed_compute_destination_buffer.h:537
Buffer_format
Texture destination buffer format description.
Definition: idistributed_compute_destination_buffer.h:544
@ FORMAT_SCALAR_UINT8
8-bit integer used for indexing a color table of 256 entries
Definition: idistributed_compute_destination_buffer.h:546
@ FORMAT_RGBA_UINT8
8-bit integer per RGBA component
Definition: idistributed_compute_destination_buffer.h:547
@ FORMAT_RGBA_FLOAT32
32-bit float per RGBA component
Definition: idistributed_compute_destination_buffer.h:548
virtual const IDistributed_compute_destination_buffer_2d_texture_LOD_configuration * get_active_LOD_configuration() const =0
Returns the currently active IDistributed_compute_destination_buffer_2d_texture_LOD_configuration.
virtual void set_active_LOD_level_range(const mi::math::Vector_struct< mi::Uint32, 2 > &lod_level_range)=0
Set the active LOD-level range to be used by NVIDIA IndeX.
virtual mi::math::Vector_struct< mi::Uint32, 2 > get_active_LOD_level_range() const =0
Returns the currently active LOD-level range to be used by NVIDIA IndeX.
virtual void get_required_LOD_levels(mi::Uint32 &nb_required_levels, mi::Uint32 *&required_levels) const =0
Query the required LOD-levels for which to generate and write data to this LOD-texture instance.
virtual IDistributed_compute_destination_buffer_2d_texture_LOD_configuration * generate_LOD_configuration(const mi::math::Vector_struct< mi::Uint32, 2 > &global_texture_resolution, const mi::math::Bbox_struct< mi::Float32, 2 > &texture_tile_surface_area, mi::Uint32 texture_tile_border) const =0
Generate an instance of IDistributed_compute_destination_buffer_2d_texture_LOD_configuration.
virtual mi::math::Bbox_struct< mi::Float32, 2 > get_surface_area() const =0
Returns the 2D surface area for which the generation of the texture buffer is requested.
virtual bool generate_LOD_buffer_storage(const IDistributed_compute_destination_buffer_2d_texture_LOD_configuration *lod_config, Buffer_format texture_buffer_format)=0
Generate LOD-buffer storage.
virtual const IDistributed_data_subset * get_subregion_geometry_data() const =0
Returns the per-subregion data of the geometry associated with this buffer.
virtual bool is_LOD_buffer_storage_initialized() const =0
Query if the LOD-buffer storage is initialized.
virtual mi::Uint8 * get_LOD_level_buffer_storage(mi::Uint32 lod_level)=0
Query the currently valid texture buffer storage for a particular compute-tile LOD-level.
virtual Buffer_format get_texture_buffer_format() const =0
Returns the currently active Buffer_format.
Compute-destination buffer for 2D texture generation techniques.
Definition: idistributed_compute_destination_buffer.h:307
virtual IDistributed_compute_intersection_points * get_intersection_points() const =0
The texture generation can rely on pre-computed ray/geometry intersections.
virtual mi::Uint8 * get_buffer_storage() const =0
Get the current valid texture buffer storage.
virtual mi::math::Bbox_struct< mi::Float32, 2 > get_surface_area() const =0
Returns the 2D surface area for which the generation of the texture buffer is requested.
virtual const Buffer_config & get_buffer_config() const =0
Get the texture buffer config parameters of the currently valid buffer storage.
Buffer_format
Texture destination buffer format description.
Definition: idistributed_compute_destination_buffer.h:338
@ FORMAT_RGBA_FLOAT32
32-bit float per RGBA component
Definition: idistributed_compute_destination_buffer.h:342
@ FORMAT_RGBA_UINT8
8-bit integer per RGBA component
Definition: idistributed_compute_destination_buffer.h:341
@ FORMAT_SCALAR_UINT8
8-bit integer used for indexing a color table of 256 entries
Definition: idistributed_compute_destination_buffer.h:340
virtual bool generate_buffer_storage(const Buffer_config &buffer_cfg)=0
Generate buffer storage.
virtual const IDistributed_data_subset * get_subregion_geometry_data() const =0
Returns the per-subregion data of the geometry associated with this buffer.
Buffer_layout
The layout of the buffer.
Definition: idistributed_compute_destination_buffer.h:328
@ ONE_DIMENSIONAL_ARRAY
Buffer layout that corresponds to a 1D array of ray/geometry intersections.
Definition: idistributed_compute_destination_buffer.h:329
@ TWO_DIMENSIONAL_ARRAY
Buffer layout that corresponds to a 2D array.
Definition: idistributed_compute_destination_buffer.h:330
Compute-destination buffer for 3D sparse-volume generation techniques.
Definition: idistributed_compute_destination_buffer.h:107
virtual mi::math::Bbox_struct< mi::Sint32, 3 > get_already_computed_volume_subset_data_bbox() const =0
Returns the bounding box of the volume subset for which the compute technique is required to generate...
virtual mi::math::Bbox_struct< mi::Sint32, 3 > get_clipped_volume_subset_data_bbox() const =0
Returns the clipped bounding box of the volume subset for which the compute technique is required to ...
virtual ISparse_volume_subset * get_distributed_data_subset()=0
Returns the volume data-subset for which the compute technique is required to generate voxel values.
virtual mi::math::Bbox_struct< mi::Sint32, 3 > get_volume_subset_data_bbox() const =0
Returns the bounding box of the volume subset for which the compute technique is required to generate...
Compute-destination buffer for VDB (NanoVDB) volume generation techniques.
Definition: idistributed_compute_destination_buffer.h:199
virtual mi::math::Bbox_struct< mi::Float32, 3 > get_volume_subset_data_bbox() const =0
Returns the bounding box of the volume subset for which the compute technique is required to generate...
virtual IVDB_subset * get_distributed_data_subset()=0
Returns the VDB volume data-subset for which the compute technique is required to generate data value...
Compute-destination buffer for irregular volume generation techniques.
Definition: idistributed_compute_destination_buffer.h:168
virtual IIrregular_volume_subset * get_distributed_data_subset()=0
Returns the volume data-subset for which the compute technique is required to generate data values.
virtual mi::math::Bbox_struct< mi::Float32, 3 > get_volume_subset_data_bbox() const =0
Returns the bounding box of the volume subset for which the compute technique is required to generate...
Compute-destination buffer for particle volumes (point sets).
Definition: idistributed_compute_destination_buffer.h:230
virtual IParticle_volume_subset * get_distributed_data_subset()=0
Returns the particle volume data-subset for which the compute technique is required to generate data ...
virtual mi::math::Bbox_struct< mi::Float32, 3 > get_volume_subset_data_bbox() const =0
Returns the bounding box of the volume subset for which the compute technique is required to generate...
The interface class enables the asynchronous generation of 2D texture buffers and 3D volume data.
Definition: idistributed_compute_destination_buffer.h:43
virtual mi::math::Bbox_struct< mi::Uint32, 2 > get_screen_space_area() const =0
Returns the 2D area that the subregion covers in screen space.
virtual void notify_compute_completion() const =0
Notity IndeX about the completion of the compute operation performed on an instance of IDistributed_c...
virtual mi::Sint32 get_gpu_device_id() const =0
GPU-device id if the destination buffer is located on a GPU-device.
virtual mi::math::Bbox_struct< mi::Float32, 3 > get_subregion_bbox() const =0
The interface method returns the bounding box of the subregion for which the compute technique has be...
virtual Compute_frame_id get_compute_frame_id() const =0
Compute operations run asynchronous to a frame, which is uniquely defined by an id.
The interface class exposes intersection points that can be used, for instance, to texture or shade t...
Definition: idistributed_compute_destination_buffer.h:271
virtual const mi::math::Vector_struct< mi::Float32, 3 > * generate_intersection_points(mi::Uint32 &nb_points)=0
The interface method computes the intersections of rays with the geometry and returns a buffer of all...
A data subset represent the unique entity representing a distributed dataset inside a single subregio...
Definition: idistributed_data_subset.h:157
Distributed data storage class for irregular volume subsets.
Definition: iirregular_volume_subset.h:39
Distributed data storage class for particle volume subsets.
Definition: iparticle_volume_subset.h:81
Distributed data storage class for sparse volume subsets.
Definition: isparse_volume_subset.h:286
Distributed data storage class for VDB subsets.
Definition: ivdb_subset.h:34
Distributed subset interaces for a large-scale distributed datasets.
Distributed subsets of irregular volume datasets.
Distributed subsets of particle volume datasets.
Distributed subsets of sparse volume datasets.
Distributed subsets of VDB datasets.
Common namespace for all NVIDIA APIs.
Definition: iindex.h:349
Unique identifier that corresponds to the frame for which the compute was issued.
Definition: idistributed_compute_destination_buffer.h:73
mi::Uint32 frame_id
Globally unique frame identifier.
Definition: idistributed_compute_destination_buffer.h:74
mi::Uint32 scope_id
Scope id the compute task is issued under.
Definition: idistributed_compute_destination_buffer.h:75
mi::Uint32 host_id
Host-id of the host issuing the compute task.
Definition: idistributed_compute_destination_buffer.h:76
Texture buffer configuration.
Definition: idistributed_compute_destination_buffer.h:369
mi::math::Vector_struct< mi::Uint32, 2 > resolution
! Resolution of the buffer.
Definition: idistributed_compute_destination_buffer.h:374
Buffer_layout layout
! The buffer layout can be either 1- or 2-dimensional.
Definition: idistributed_compute_destination_buffer.h:370
mi::math::Bbox_struct< mi::Float32, 2 > covered_area
! Covered 2d area in screen space.
Definition: idistributed_compute_destination_buffer.h:373
Buffer_format format
Texture destination buffer format.
Definition: idistributed_compute_destination_buffer.h:372
Structural information regarding the level-of-detail data.
Definition: idistributed_compute_destination_buffer.h:457
mi::math::Vector_struct< mi::Uint32, 2 > mip_level_image_resolution
Image resolution for specified mipmap-level.
Definition: idistributed_compute_destination_buffer.h:458
mi::math::Bbox_struct< mi::Uint32, 2 > mip_level_image_tile_bounds
Image-tile bounds for specified mipmap-level.
Definition: idistributed_compute_destination_buffer.h:459
mi::Float32 mip_level_selection_distance
World-distance for selection of specified mipmap-level.
Definition: idistributed_compute_destination_buffer.h:460