diff --git a/2025R2/avxcelerate-asset-preparation-api-2025-r2/changelog/changelog.md b/2025R2/avxcelerate-asset-preparation-api-2025-r2/changelog/changelog.md new file mode 100644 index 0000000000..dc6aa0acd9 --- /dev/null +++ b/2025R2/avxcelerate-asset-preparation-api-2025-r2/changelog/changelog.md @@ -0,0 +1,88 @@ +# Changelog + +## v3 2025 R2 + +No change has been made to the Asset Preparation API version 3 delivered in 2025 R2 compared to version v3 delivered in 2025 R1. + +## v3 2025 R1 + +This section lists all the changes introduced in Asset Preparation API version 3 delivered in 2025 R1 compared to version v3 delivered in 2024 R2. + +### Changes to Geometry Preparation Service + +#### geometry_description.proto + +[Behavior-breaking change] The default value for the `ambient_occlusion` property of vertices is now 1 (instead of 0). + +### Changes to the Environment Preparation service + +#### environment.proto + +[Non-breaking changes] New methods have been added to the *Environment Preparation* service to import an environment from: + +- a .track file: **PutEnvironmentFromTrackFile** +- a stream of chunks: **PutEnvironmentFromTrackChunks** + +[Behavior breaking change] When importing a track including a surface source or point light with a **GaussianDiagram** angle (x or y) set to a value superior to 180, it will be automatically set to 180. + +[Behavior breaking change] When importing a track including a surface source, a directional light or point light with a wavelength for the **Monochromatic** spectrum set to a value inferior to 360 (that is to say out of the validity range [360, 813]), the value will be automatically set to 360. + +#### environment_description.proto + +[Non-breaking changes] The **PutEnvironmentFromTrackFileRequest** and **PutEnvironmentFromTrackResponse** messages have been added. + +### Changes to the Scene Tree Preparation service + +#### scenetree.proto + +[Non-breaking changes] New methods have been added to the *Scene Tree Preparation* service to import a scene tree from: + +- a .asset file: **PutSceneTreeFromTrackFile** +- a stream of chunks: **PutSceneTreeFromTrackChunks** + +[Behavior change] Several scene trees can now have the same name. + +[Behavior breaking change] When importing an asset including a surface source or point light with a **GaussianDiagram** angle (x or y) set to a value superior to 180, it will be automatically set to 180. + +[Behavior breaking change] When importing an asset including a surface source, a directional light or point light with a wavelength for the **Monochromatic** spectrum set to a value inferior to 360 (that is to say out of the validity range [360, 813]), the value will be automatically set to 360. + +#### scenetree_description.proto + +The **PutSceneTreeFromTrackFileRequest** and **PutSceneTreeFromTrackResponse** messages have been added. + +[Behavior change] Several scene trees can now have the same name. +### Changes to Point Light Preparation service + +#### point_light_description.proto + +[Behavior breaking change] An upper limit has been added to the Angular Precision field. This value cannot exceed 57 degrees anymore. + +[Non-breaking changes] Two new possibilities have been added to the **Spectrum** oneOf: `ColorRgb` and `ColorHsv`. + +### Changes to Surface Source Preparation service + +#### surface_source_description.proto + +[Behavior breaking change] An upper limit has been added to the `Angular Precision` field. This value cannot exceed 57 degrees anymore. + +[Non-breaking changes] Two new possibilities have been added to the **Spectrum** oneOf: `ColorRgb` and `ColorHsv`. + +### Changes to Directional Light Preparation service + +#### directional_light_description.proto + +[Non-breaking changes] Two new possibilities have been added to the **Spectrum** oneOf: `ColorRgb` and `ColorHsv`. + +### Changes to the common.proto + +[Non-breaking changes] The `ConflictPolicy` enumeration has been added. + +[Non-breaking changes] Two new messages have been added: **ColorHsv** and **ColorRgb**. Those new messages are used in the `Spectrum` oneOf in *directional_light_description.proto*, *surface_source_description.proto* and *point_light_description.proto*. + +### Changes to the tag.proto + +[Non-breaking changes] The **BASIC_TYPE_ILLUMINANCE_SENSOR** has been added to the `BasicType` enumeration. + +## v3 2024 R2 + +The changes introduced in Asset Preparation API version 3 delivered in 2024 R2 compared to version v2 delivered in 2024 R1 are listed in the [2024 R2 AVxcelerate Sensors Release Notes](https://ansyshelp.ansys.com/account/secured?returnurl=/Views/Secured/corp/v242/en/vss_releasenotes/vss_releasenotes.html) in the section **Changes** > **Asset Preparation API Changelog** > **AVxcelerate Asset Preparation API v3**. diff --git a/2025R2/avxcelerate-asset-preparation-api-2025-r2/desc/Asset_prep_API_directional_light_hierarchy_co.png b/2025R2/avxcelerate-asset-preparation-api-2025-r2/desc/Asset_prep_API_directional_light_hierarchy_co.png new file mode 100644 index 0000000000..f9614d27a4 Binary files /dev/null and b/2025R2/avxcelerate-asset-preparation-api-2025-r2/desc/Asset_prep_API_directional_light_hierarchy_co.png differ diff --git a/2025R2/avxcelerate-asset-preparation-api-2025-r2/desc/Asset_prep_API_display_source_hierarchy_co.png b/2025R2/avxcelerate-asset-preparation-api-2025-r2/desc/Asset_prep_API_display_source_hierarchy_co.png new file mode 100644 index 0000000000..b0c7697856 Binary files /dev/null and b/2025R2/avxcelerate-asset-preparation-api-2025-r2/desc/Asset_prep_API_display_source_hierarchy_co.png differ diff --git a/2025R2/avxcelerate-asset-preparation-api-2025-r2/desc/Asset_prep_API_env_hierarchy_co.png b/2025R2/avxcelerate-asset-preparation-api-2025-r2/desc/Asset_prep_API_env_hierarchy_co.png new file mode 100644 index 0000000000..0cab624f56 Binary files /dev/null and b/2025R2/avxcelerate-asset-preparation-api-2025-r2/desc/Asset_prep_API_env_hierarchy_co.png differ diff --git a/2025R2/avxcelerate-asset-preparation-api-2025-r2/desc/Asset_prep_API_geometry_hierarchy_co.png b/2025R2/avxcelerate-asset-preparation-api-2025-r2/desc/Asset_prep_API_geometry_hierarchy_co.png new file mode 100644 index 0000000000..3ebd186832 Binary files /dev/null and b/2025R2/avxcelerate-asset-preparation-api-2025-r2/desc/Asset_prep_API_geometry_hierarchy_co.png differ diff --git a/2025R2/avxcelerate-asset-preparation-api-2025-r2/desc/Asset_prep_API_geometry_hierarchy_material_parts.png b/2025R2/avxcelerate-asset-preparation-api-2025-r2/desc/Asset_prep_API_geometry_hierarchy_material_parts.png new file mode 100644 index 0000000000..77601a59e7 Binary files /dev/null and b/2025R2/avxcelerate-asset-preparation-api-2025-r2/desc/Asset_prep_API_geometry_hierarchy_material_parts.png differ diff --git a/2025R2/avxcelerate-asset-preparation-api-2025-r2/desc/Asset_prep_API_geometry_hierarchy_vertices.png b/2025R2/avxcelerate-asset-preparation-api-2025-r2/desc/Asset_prep_API_geometry_hierarchy_vertices.png new file mode 100644 index 0000000000..5f6e993e69 Binary files /dev/null and b/2025R2/avxcelerate-asset-preparation-api-2025-r2/desc/Asset_prep_API_geometry_hierarchy_vertices.png differ diff --git a/2025R2/avxcelerate-asset-preparation-api-2025-r2/desc/Asset_prep_API_geometry_hierarchy_vertices_array.png b/2025R2/avxcelerate-asset-preparation-api-2025-r2/desc/Asset_prep_API_geometry_hierarchy_vertices_array.png new file mode 100644 index 0000000000..8a542d194d Binary files /dev/null and b/2025R2/avxcelerate-asset-preparation-api-2025-r2/desc/Asset_prep_API_geometry_hierarchy_vertices_array.png differ diff --git a/2025R2/avxcelerate-asset-preparation-api-2025-r2/desc/Asset_prep_API_geometry_indices_array.png b/2025R2/avxcelerate-asset-preparation-api-2025-r2/desc/Asset_prep_API_geometry_indices_array.png new file mode 100644 index 0000000000..3438a459a3 Binary files /dev/null and b/2025R2/avxcelerate-asset-preparation-api-2025-r2/desc/Asset_prep_API_geometry_indices_array.png differ diff --git a/2025R2/avxcelerate-asset-preparation-api-2025-r2/desc/Asset_prep_API_geometry_indices_array_A.png b/2025R2/avxcelerate-asset-preparation-api-2025-r2/desc/Asset_prep_API_geometry_indices_array_A.png new file mode 100644 index 0000000000..b557e17d47 Binary files /dev/null and b/2025R2/avxcelerate-asset-preparation-api-2025-r2/desc/Asset_prep_API_geometry_indices_array_A.png differ diff --git a/2025R2/avxcelerate-asset-preparation-api-2025-r2/desc/Asset_prep_API_geometry_indices_array_BC.png b/2025R2/avxcelerate-asset-preparation-api-2025-r2/desc/Asset_prep_API_geometry_indices_array_BC.png new file mode 100644 index 0000000000..63a442e4ba Binary files /dev/null and b/2025R2/avxcelerate-asset-preparation-api-2025-r2/desc/Asset_prep_API_geometry_indices_array_BC.png differ diff --git a/2025R2/avxcelerate-asset-preparation-api-2025-r2/desc/Asset_prep_API_geometry_vertices_indices.png b/2025R2/avxcelerate-asset-preparation-api-2025-r2/desc/Asset_prep_API_geometry_vertices_indices.png new file mode 100644 index 0000000000..b0ae721b90 Binary files /dev/null and b/2025R2/avxcelerate-asset-preparation-api-2025-r2/desc/Asset_prep_API_geometry_vertices_indices.png differ diff --git a/2025R2/avxcelerate-asset-preparation-api-2025-r2/desc/Asset_prep_API_geometry_vertices_material.png b/2025R2/avxcelerate-asset-preparation-api-2025-r2/desc/Asset_prep_API_geometry_vertices_material.png new file mode 100644 index 0000000000..0fb7f1e7e0 Binary files /dev/null and b/2025R2/avxcelerate-asset-preparation-api-2025-r2/desc/Asset_prep_API_geometry_vertices_material.png differ diff --git a/2025R2/avxcelerate-asset-preparation-api-2025-r2/desc/Asset_prep_API_geometry_vertices_material_A.png b/2025R2/avxcelerate-asset-preparation-api-2025-r2/desc/Asset_prep_API_geometry_vertices_material_A.png new file mode 100644 index 0000000000..a7a63db47a Binary files /dev/null and b/2025R2/avxcelerate-asset-preparation-api-2025-r2/desc/Asset_prep_API_geometry_vertices_material_A.png differ diff --git a/2025R2/avxcelerate-asset-preparation-api-2025-r2/desc/Asset_prep_API_geometry_vertices_primitives.png b/2025R2/avxcelerate-asset-preparation-api-2025-r2/desc/Asset_prep_API_geometry_vertices_primitives.png new file mode 100644 index 0000000000..196fef0bae Binary files /dev/null and b/2025R2/avxcelerate-asset-preparation-api-2025-r2/desc/Asset_prep_API_geometry_vertices_primitives.png differ diff --git a/2025R2/avxcelerate-asset-preparation-api-2025-r2/desc/Asset_prep_API_hdri_sky_hierarchy_co.png b/2025R2/avxcelerate-asset-preparation-api-2025-r2/desc/Asset_prep_API_hdri_sky_hierarchy_co.png new file mode 100644 index 0000000000..d99e807bf1 Binary files /dev/null and b/2025R2/avxcelerate-asset-preparation-api-2025-r2/desc/Asset_prep_API_hdri_sky_hierarchy_co.png differ diff --git a/2025R2/avxcelerate-asset-preparation-api-2025-r2/desc/Asset_prep_API_material_SOP_anisotropy_hierarchy_co.png b/2025R2/avxcelerate-asset-preparation-api-2025-r2/desc/Asset_prep_API_material_SOP_anisotropy_hierarchy_co.png new file mode 100644 index 0000000000..668b899ea7 Binary files /dev/null and b/2025R2/avxcelerate-asset-preparation-api-2025-r2/desc/Asset_prep_API_material_SOP_anisotropy_hierarchy_co.png differ diff --git a/2025R2/avxcelerate-asset-preparation-api-2025-r2/desc/Asset_prep_API_material_SOP_diffuse_hierarchy_co.png b/2025R2/avxcelerate-asset-preparation-api-2025-r2/desc/Asset_prep_API_material_SOP_diffuse_hierarchy_co.png new file mode 100644 index 0000000000..557eb7ed07 Binary files /dev/null and b/2025R2/avxcelerate-asset-preparation-api-2025-r2/desc/Asset_prep_API_material_SOP_diffuse_hierarchy_co.png differ diff --git a/2025R2/avxcelerate-asset-preparation-api-2025-r2/desc/Asset_prep_API_material_SOP_hierarchy_co.png b/2025R2/avxcelerate-asset-preparation-api-2025-r2/desc/Asset_prep_API_material_SOP_hierarchy_co.png new file mode 100644 index 0000000000..26b49b23c6 Binary files /dev/null and b/2025R2/avxcelerate-asset-preparation-api-2025-r2/desc/Asset_prep_API_material_SOP_hierarchy_co.png differ diff --git a/2025R2/avxcelerate-asset-preparation-api-2025-r2/desc/Asset_prep_API_material_SOP_lambertian_layer_hierarchy.png b/2025R2/avxcelerate-asset-preparation-api-2025-r2/desc/Asset_prep_API_material_SOP_lambertian_layer_hierarchy.png new file mode 100644 index 0000000000..29c7bac5de Binary files /dev/null and b/2025R2/avxcelerate-asset-preparation-api-2025-r2/desc/Asset_prep_API_material_SOP_lambertian_layer_hierarchy.png differ diff --git a/2025R2/avxcelerate-asset-preparation-api-2025-r2/desc/Asset_prep_API_material_SOP_library_layer_hierarchy.png b/2025R2/avxcelerate-asset-preparation-api-2025-r2/desc/Asset_prep_API_material_SOP_library_layer_hierarchy.png new file mode 100644 index 0000000000..0790127868 Binary files /dev/null and b/2025R2/avxcelerate-asset-preparation-api-2025-r2/desc/Asset_prep_API_material_SOP_library_layer_hierarchy.png differ diff --git a/2025R2/avxcelerate-asset-preparation-api-2025-r2/desc/Asset_prep_API_material_SOP_mask_hierarchy_co.png b/2025R2/avxcelerate-asset-preparation-api-2025-r2/desc/Asset_prep_API_material_SOP_mask_hierarchy_co.png new file mode 100644 index 0000000000..50a81adef6 Binary files /dev/null and b/2025R2/avxcelerate-asset-preparation-api-2025-r2/desc/Asset_prep_API_material_SOP_mask_hierarchy_co.png differ diff --git a/2025R2/avxcelerate-asset-preparation-api-2025-r2/desc/Asset_prep_API_material_SOP_mirror_layer_hierarchy.png b/2025R2/avxcelerate-asset-preparation-api-2025-r2/desc/Asset_prep_API_material_SOP_mirror_layer_hierarchy.png new file mode 100644 index 0000000000..688d04493f Binary files /dev/null and b/2025R2/avxcelerate-asset-preparation-api-2025-r2/desc/Asset_prep_API_material_SOP_mirror_layer_hierarchy.png differ diff --git a/2025R2/avxcelerate-asset-preparation-api-2025-r2/desc/Asset_prep_API_material_SOP_normal_hierarchy_co.png b/2025R2/avxcelerate-asset-preparation-api-2025-r2/desc/Asset_prep_API_material_SOP_normal_hierarchy_co.png new file mode 100644 index 0000000000..80f89430fe Binary files /dev/null and b/2025R2/avxcelerate-asset-preparation-api-2025-r2/desc/Asset_prep_API_material_SOP_normal_hierarchy_co.png differ diff --git a/2025R2/avxcelerate-asset-preparation-api-2025-r2/desc/Asset_prep_API_material_SOP_optical_polish_layer_hierarchy.png b/2025R2/avxcelerate-asset-preparation-api-2025-r2/desc/Asset_prep_API_material_SOP_optical_polish_layer_hierarchy.png new file mode 100644 index 0000000000..01a575d79d Binary files /dev/null and b/2025R2/avxcelerate-asset-preparation-api-2025-r2/desc/Asset_prep_API_material_SOP_optical_polish_layer_hierarchy.png differ diff --git a/2025R2/avxcelerate-asset-preparation-api-2025-r2/desc/Asset_prep_API_material_SOP_rendering_layer_hierarchy.png b/2025R2/avxcelerate-asset-preparation-api-2025-r2/desc/Asset_prep_API_material_SOP_rendering_layer_hierarchy.png new file mode 100644 index 0000000000..f25bc40b1a Binary files /dev/null and b/2025R2/avxcelerate-asset-preparation-api-2025-r2/desc/Asset_prep_API_material_SOP_rendering_layer_hierarchy.png differ diff --git a/2025R2/avxcelerate-asset-preparation-api-2025-r2/desc/Asset_prep_API_material_SOP_roughness_hierarchy_co.png b/2025R2/avxcelerate-asset-preparation-api-2025-r2/desc/Asset_prep_API_material_SOP_roughness_hierarchy_co.png new file mode 100644 index 0000000000..51697c293e Binary files /dev/null and b/2025R2/avxcelerate-asset-preparation-api-2025-r2/desc/Asset_prep_API_material_SOP_roughness_hierarchy_co.png differ diff --git a/2025R2/avxcelerate-asset-preparation-api-2025-r2/desc/Asset_prep_API_material_SOP_specular_hierarchy_co.png b/2025R2/avxcelerate-asset-preparation-api-2025-r2/desc/Asset_prep_API_material_SOP_specular_hierarchy_co.png new file mode 100644 index 0000000000..c4be6ca702 Binary files /dev/null and b/2025R2/avxcelerate-asset-preparation-api-2025-r2/desc/Asset_prep_API_material_SOP_specular_hierarchy_co.png differ diff --git a/2025R2/avxcelerate-asset-preparation-api-2025-r2/desc/Asset_prep_API_material_VoP_hierarchy.png b/2025R2/avxcelerate-asset-preparation-api-2025-r2/desc/Asset_prep_API_material_VoP_hierarchy.png new file mode 100644 index 0000000000..f318a67cc4 Binary files /dev/null and b/2025R2/avxcelerate-asset-preparation-api-2025-r2/desc/Asset_prep_API_material_VoP_hierarchy.png differ diff --git a/2025R2/avxcelerate-asset-preparation-api-2025-r2/desc/Asset_prep_API_material_dielec_properties_hierarchy.png b/2025R2/avxcelerate-asset-preparation-api-2025-r2/desc/Asset_prep_API_material_dielec_properties_hierarchy.png new file mode 100644 index 0000000000..deaa730c20 Binary files /dev/null and b/2025R2/avxcelerate-asset-preparation-api-2025-r2/desc/Asset_prep_API_material_dielec_properties_hierarchy.png differ diff --git a/2025R2/avxcelerate-asset-preparation-api-2025-r2/desc/Asset_prep_API_material_dielectric_properties_hierarchy.png b/2025R2/avxcelerate-asset-preparation-api-2025-r2/desc/Asset_prep_API_material_dielectric_properties_hierarchy.png new file mode 100644 index 0000000000..a00773c3c8 Binary files /dev/null and b/2025R2/avxcelerate-asset-preparation-api-2025-r2/desc/Asset_prep_API_material_dielectric_properties_hierarchy.png differ diff --git a/2025R2/avxcelerate-asset-preparation-api-2025-r2/desc/Asset_prep_API_material_hierarchy_level_1_co.png b/2025R2/avxcelerate-asset-preparation-api-2025-r2/desc/Asset_prep_API_material_hierarchy_level_1_co.png new file mode 100644 index 0000000000..eff32c21a9 Binary files /dev/null and b/2025R2/avxcelerate-asset-preparation-api-2025-r2/desc/Asset_prep_API_material_hierarchy_level_1_co.png differ diff --git a/2025R2/avxcelerate-asset-preparation-api-2025-r2/desc/Asset_prep_API_material_reflection_effect_hierarchy_co.png b/2025R2/avxcelerate-asset-preparation-api-2025-r2/desc/Asset_prep_API_material_reflection_effect_hierarchy_co.png new file mode 100644 index 0000000000..5e9e47d86e Binary files /dev/null and b/2025R2/avxcelerate-asset-preparation-api-2025-r2/desc/Asset_prep_API_material_reflection_effect_hierarchy_co.png differ diff --git a/2025R2/avxcelerate-asset-preparation-api-2025-r2/desc/Asset_prep_API_material_thermal_properties_hierarchy.png b/2025R2/avxcelerate-asset-preparation-api-2025-r2/desc/Asset_prep_API_material_thermal_properties_hierarchy.png new file mode 100644 index 0000000000..5633232354 Binary files /dev/null and b/2025R2/avxcelerate-asset-preparation-api-2025-r2/desc/Asset_prep_API_material_thermal_properties_hierarchy.png differ diff --git a/2025R2/avxcelerate-asset-preparation-api-2025-r2/desc/Asset_prep_API_natural_sky_hierarchy_co.png b/2025R2/avxcelerate-asset-preparation-api-2025-r2/desc/Asset_prep_API_natural_sky_hierarchy_co.png new file mode 100644 index 0000000000..9ddddb9ae1 Binary files /dev/null and b/2025R2/avxcelerate-asset-preparation-api-2025-r2/desc/Asset_prep_API_natural_sky_hierarchy_co.png differ diff --git a/2025R2/avxcelerate-asset-preparation-api-2025-r2/desc/Asset_prep_API_point_light_hierarchy_co.png b/2025R2/avxcelerate-asset-preparation-api-2025-r2/desc/Asset_prep_API_point_light_hierarchy_co.png new file mode 100644 index 0000000000..1809e3b043 Binary files /dev/null and b/2025R2/avxcelerate-asset-preparation-api-2025-r2/desc/Asset_prep_API_point_light_hierarchy_co.png differ diff --git a/2025R2/avxcelerate-asset-preparation-api-2025-r2/desc/Asset_prep_API_scene-tree_hierarchy_co.png b/2025R2/avxcelerate-asset-preparation-api-2025-r2/desc/Asset_prep_API_scene-tree_hierarchy_co.png new file mode 100644 index 0000000000..ef5a76d77a Binary files /dev/null and b/2025R2/avxcelerate-asset-preparation-api-2025-r2/desc/Asset_prep_API_scene-tree_hierarchy_co.png differ diff --git a/2025R2/avxcelerate-asset-preparation-api-2025-r2/desc/Asset_prep_API_scene-tree_transform_co.png b/2025R2/avxcelerate-asset-preparation-api-2025-r2/desc/Asset_prep_API_scene-tree_transform_co.png new file mode 100644 index 0000000000..5a7de8b1f2 Binary files /dev/null and b/2025R2/avxcelerate-asset-preparation-api-2025-r2/desc/Asset_prep_API_scene-tree_transform_co.png differ diff --git a/2025R2/avxcelerate-asset-preparation-api-2025-r2/desc/Asset_prep_API_sky_hierarchy_co.png b/2025R2/avxcelerate-asset-preparation-api-2025-r2/desc/Asset_prep_API_sky_hierarchy_co.png new file mode 100644 index 0000000000..2d812dee7b Binary files /dev/null and b/2025R2/avxcelerate-asset-preparation-api-2025-r2/desc/Asset_prep_API_sky_hierarchy_co.png differ diff --git a/2025R2/avxcelerate-asset-preparation-api-2025-r2/desc/Asset_prep_API_source_hierarchy_co.png b/2025R2/avxcelerate-asset-preparation-api-2025-r2/desc/Asset_prep_API_source_hierarchy_co.png new file mode 100644 index 0000000000..a8acfc76a3 Binary files /dev/null and b/2025R2/avxcelerate-asset-preparation-api-2025-r2/desc/Asset_prep_API_source_hierarchy_co.png differ diff --git a/2025R2/avxcelerate-asset-preparation-api-2025-r2/desc/Asset_prep_API_source_lighting_contrib_hierarchy_co.png b/2025R2/avxcelerate-asset-preparation-api-2025-r2/desc/Asset_prep_API_source_lighting_contrib_hierarchy_co.png new file mode 100644 index 0000000000..029bd9a1da Binary files /dev/null and b/2025R2/avxcelerate-asset-preparation-api-2025-r2/desc/Asset_prep_API_source_lighting_contrib_hierarchy_co.png differ diff --git a/2025R2/avxcelerate-asset-preparation-api-2025-r2/desc/Asset_prep_API_surface_source_hierarchy_co.png b/2025R2/avxcelerate-asset-preparation-api-2025-r2/desc/Asset_prep_API_surface_source_hierarchy_co.png new file mode 100644 index 0000000000..51549f5de2 Binary files /dev/null and b/2025R2/avxcelerate-asset-preparation-api-2025-r2/desc/Asset_prep_API_surface_source_hierarchy_co.png differ diff --git a/2025R2/avxcelerate-asset-preparation-api-2025-r2/desc/_Asset_prep_API_env_hierarchy_co.png b/2025R2/avxcelerate-asset-preparation-api-2025-r2/desc/_Asset_prep_API_env_hierarchy_co.png new file mode 100644 index 0000000000..1155a6bbd6 Binary files /dev/null and b/2025R2/avxcelerate-asset-preparation-api-2025-r2/desc/_Asset_prep_API_env_hierarchy_co.png differ diff --git a/2025R2/avxcelerate-asset-preparation-api-2025-r2/desc/api-description.md b/2025R2/avxcelerate-asset-preparation-api-2025-r2/desc/api-description.md new file mode 100644 index 0000000000..809dc60cfd --- /dev/null +++ b/2025R2/avxcelerate-asset-preparation-api-2025-r2/desc/api-description.md @@ -0,0 +1,856 @@ +# API description + +> **Important Note:** You are reading the documentation for AVxcelerate Asset Preparation API v3 delivered in 2025 R2. +> +> To consult the documentation of the v3 delivered in 2025 R1, go to the [Ansys Developer Portal](https://developer.ansys.com/). +> +> Please refer to the [Changelog](../changelog/changelog.md) to get the complete list of changes introduced in this version. +> +## Overview + +Intended for developers who need to streamline the preparation of AVX assets and tracks, AVxcelerate Asset Preparation API exposes the interfaces required to prepare AVX assets and tracks. + +It allows you to: + +- create geometries, +- apply physical properties +- organize geometries into a scene tree in order to: + - generate an AVX asset, + - add the scene tree to an environment to generate an AVX track. + +The AVX assets and tracks created using the API can be: + +- exported as files written on the disk (.asset or .track), which can be used in a sensors simulation, and also opened in AVxcelerate Asset Preparation Editor + +- streamed to the Sensors Simulator API server, see [Data Streaming with Chunk](#streaming-data-with-chunk) + + A Python sample illustrating how to use this exchange format is provided in *Autonomy/AVxcelerateSensors/APIs/Asset_Preparation_API/Samples/Python* (*asset_prep_to_avx_sensors_streaming.py*). + +- imported back to Asset Preparation Server for further modifications + +Using AVxcelerate Asset Preparation API, you can develop: + +- an add-on for a terrain creation tool to export AVX tracks +- an add-on for a 3D computer graphics software to export AVX assets +- a custom exporter to convert data from any standard format (obj or fbx for instance) to the AVX format +- a script to automate the physics-based preparation process of AVX tracks and assets +- a "live terrain creation" capability in your custom co-simulation module (add-on for your driving simulator) created with AVxcelerate Sensors Simulator API + +### Current version limitations + +Creating animated pedestrians or animated animals is not possible. + +This API is meant to be a one-shot AVX Assets and Tracks creation tool. When the Asset Preparation Server is stopped, all the created or imported data, as well as collections and identifiers are removed from the server. + +When importing an asset file, the scene tree created on the server has an extra root node compared to the original scene tree. The extra node has the same name as the scene tree. + +It is not possible to import an asset or a track if it includes an object in which several states have the same name, or if it includes a geometry with several material parts with the same name. + +### Definition of terms + +Here are the definitions of some important terms used throughout the AVxcelerate Asset Preparation API. + +- An AVX **track** is the world environment in which the sensors simulation will take place. It must be based on the road/track/terrain (the terminology depends on the driving simulator) including the road logic, terrain topography, road and landscape decoration. + +- An **Asset** is an element to be included in an AVX sensors simulation, such as a vehicle, a street light or a traffic sign. + + - content: geometries (3D representation + properties) organized into a scene tree + - format: packaged in the format as expected by AVxcelerate Sensors Simulator + +- An **Entity** is any object created through the API that can be packaged into an AVX format and exported from the API. Among all the objects that can be created using the API, only the following are entities: + + - Scene Tree (asset) + - Environment (track) + - Resource + In the context of the AVxcelerate Asset Preparation API, a **Resource** is an external file that can be uploaded, then referenced as a property of an object. For more details about the accepted type of resources, see [Resource Preparation Service](#resource-preparation-service). + +- An **Object** is any component created through the API and accessible via its identifier. + +- A unique **Identifier** is automatically assigned to any object as soon as it has been created. This identifier is the key for accessing the binary data representing the object kept in memory. + +> **Note**: The "in-memory" data is non-persistent, objects are kept in the "collection" only as long as the server is running. + + The identifier of an object is needed for various purposes, for example: + +- when creating an object under a scene tree: to define its parent +- to reference an object in another service (e.g. referencing a scene tree in an environment, referencing a geometry as a geometry instance under the node of a scene tree, referencing a surface source in the material part properties of a geometry) +- for entities: to export an entity as chunks or as a file (e.g. exporting a scene tree as an asset) +- to edit the properties of an object + +### gRPC services + +AVxcelerate Asset Preparation API is composed of different [protocol buffer](https://developers.google.com/protocol-buffers) contracts and [gRPC](https://grpc.io/) services. + +The main benefit of using gRPC with protocol buffers is that the contract files (.proto) can be compiled into [different programming languages](https://grpc.io/docs/#official-support). + +In this document, some code snippets written in C# programming language are provided. Python samples demonstrating the usage of the Asset Preparation API are provided in the *Asset_Preparation_API* folder. + +This API includes the following gRPC services: + +- [Information service](#information-service) +- [Reset service](#reset-service) +- [Resource Preparation service](#resource-preparation-service) +- [Geometry Preparation service](#geometry-preparation-service) +- [Scene Tree Preparation service](#scene-tree-preparation-service) +- [Environment Preparation service](#environment-preparation-service) +- [Natural Sky Preparation service](#natural-sky-preparation-service) +- [HDRI Sky Preparation service](#hdri-sky-preparation-service) +- [Material Preparation service](#material-preparation-service) +- [Surface Source Preparation service](#surface-source-preparation-service) +- [Directional Light Preparation service](#directional-light-preparation-service) +- [Point Light Preparation service](#point-light-preparation-service) + +All those services rely on the [Asset Preparation server](#asset-preparation-server). + +## Asset Preparation server + +To access the AVxcelerate Asset Preparation API, the server must be started so that the services are active. + +The script to start the server is provided in the *Asset_Preparation_API* folder: + +- on Windows: `asset_preparation.ps1` (with the default installation path the script is located in `C:/Program Files/ANSYS Inc/v252/Autonomy/AVxcelerateSensors/APIs/Asset_Preparation_API`) +- on Linux: `asset_preparation.sh` (with the default installation path the script is located in `/ansys_inc/v252/Autonomy/AVxcelerateSensors/APIs/Asset_Preparation_API`) + +To access the user documentation of the API, launch the script with the `user-doc` argument. + +### Supported versions + +The Asset Preparation Server delivered in the 2025 R2 product package supports several versions of the API. You must specify which API version must be launched when starting the Asset Preparation Server. + +### Port + +The default port the server uses to communicate is TCP port 5001. If this port is already used by another application, specify the port parameter when starting the Asset Preparation Server. + +### Starting the Asset Preparation server + +To start the Asset preparation server, launch the script with the `start` argument and the following parameters: + +- `-apiVersion` to specify the version of the API + + > **Note**: If you do not set this parameter, the server will start the API v1. + +- `-port` to specify the port to communicate with the Asset Preparation server. If not set the default port (TCP 5001) is used. + +Example on Windows using PowerShell: + +```ps +PS C:\Users\myusername> cd "C:\Program Files\ANSYS Inc\v252\Autonomy\AVxcelerateSensors\APIs\Asset_Preparation_API" +PS C:\Program Files\ANSYS Inc\v252\Autonomy\AVxcelerateSensors\APIs\Asset_Preparation_API> .\asset_preparation.ps1 start -apiVersion 3 +``` + +Example on Linux using PowerShell: + +```ps +PS /home>cd "/ansys_inc/v252/Autonomy/AVxcelerateSensors/APIs/Asset_Preparation_API" +PS /ansys_inc/v252/Autonomy/AVxcelerateSensors/APIs/Asset_Preparation_API>./asset_preparation.sh start -apiVersion 3 +``` + +### Stopping the Asset Preparation server + +To stop the Asset preparation server, launch the script with the `stop` argument. + +Example on Windows using PowerShell: + +```ps +PS C:\Program Files\ANSYS Inc\v252\Autonomy\AVxcelerateSensors\APIs\Asset_Preparation_API> .\asset_preparation.ps1 stop +``` + +Example on Linux using PowerShell: + +```ps +PS /ansys_inc/v252/Autonomy/AVxcelerateSensors/APIs/Asset_Preparation_API>./asset_preparation.sh stop +``` + +## Status and error management + +All rpc calls return a response containing a **Status**. +The goal of this message is to inform about the level of success of the operations. It contains 3 pieces of information: + +- The Level of success: + - fully successful, + - successful with warnings, + - unsuccessful with errors. +- The error code following [gRPC standards](https://grpc.github.io/grpc/core/md_doc_statuscodes.html), most common codes are: + - 0 for success and warning, + - 3 if some input parameters are invalid, + - 5 if an identifier is not found on the server, + - 11 if some input parameters are out of range. +- The message that describes the operation's status. + +## Streaming data with chunk + +The **Chunk** message is used for streaming binary data: + +- to export tracks or assets as chunks (from the *Environment Preparation* service or *Scene Tree Preparation* service) +- to import tracks or assets from a stream of chunks (from the *Environment Preparation* service or *Scene Tree Preparation* service) +- to upload and download resources (*Resource Preparation* service) + +All stream requests or responses in AVX Asset Preparation API use with the following description: + +```cs +message Chunk { + map metadata = 1; + bytes bytes = 2; +} +``` + +A chunk can include either: + +- only metadata, +- only data, +- both metadata and data. + +The service receiving the data handles the chunks in the same order as it receives them, and ignores void data. If more than one chunk contains metadata, the maps will be merged in the order they are received, overwriting items with the same keys. Therefore, the service sending the data must send the chunks sequentially. + + For information about using streams as input in AVxcelerate Sensors Simulator, refer to the Upload service in AVX Sensors Simulator API documentation or to the Python sample *asset_prep_to_avx_sensors_streaming.py*. + +> **Performance advice** +> +> - Each chunk should not exceed 1MB. +> - If there are several chunks to send: +> - each chunk should be equal or superior to 256kB, +> - all the needed metadata should be sent in the first chunk and only the byte array in the other ones. + +## Services + +> The diagrams in the below *Data Structure* sections aim at illustrating the structure of each object that a service allows you to create. They do not represent the workflow to follow to create AVX entities. + + Diagrams reading convention: + +- ![Diagram Key reference](diagram_key_reference.png) Underlined texts represent references to an object or entity created from another service and which is accessible via its identifier. Examples: a scene tree is referenced in an environment, a geometry is referenced in a geometry instance. +- ![Diagram Key Repeated](diagram_key_repeated.png) Boxes with large borders represent elements that can be repeated. Examples: a scene tree can have one or several child nodes, a geometry can include one or several material parts, a vertices array can include one vertex or several vertices. +- ![Diagram Key Optional](diagram_key_optional.png) Dashed boxes represent objects or properties that are optional or only required in specific conditions. Examples: the node under a tree may have a child node. +- ![Diagram Key Choice](diagram_key_choice.png) Rounded boxes represent possibilities (OneOf). Example: the rotation can be a Quaternion or Euler Angles. + +> **Note**: +> To ease the creation of objects using this API, most of the fields in the creation request messages are not required: if a field is not specified, the default value for the field is used. The default value of each field in the messages used in object creation requests are provided in the [Reference](../ref/reference-documentation.md) section of the documentation. +> +> The fields where a reference or an instance is expected however are always required. +> +### Information service + +The *Information* service (exposed in the *information/information.proto* file) allows you to check if the server and all the services are running properly. + +**Example** - System health check + +```cs +var healthClient = new Information.InformationClient(channel); + +var healthResponse = healthClient.GetHealth(new Empty()); +if (healthResponse == null || !healthResponse.IsHealthy) +{ + Console.Write("Not all services are properly initialized. Please restart the server."); + return 1; +} +``` + +### Reset service + +The *Reset* service (exposed in the *common/reset.proto* file) allows you to reset the Asset Preparation Server, that is to say to clear all the data from the server. Resetting the server removes from the server all the "in-memory" data, namely all the created or imported data, as well as collections and identifiers. + +**Example** - Server reset + +```cs +var resetClient = new Reset.ResetClient(channel); +var resetResponse = resetClient.Reset(new Empty()); +Console.Write(resetResponse.Status.FeedbackMessage); +``` + +### Resource Preparation service + +The *Resource Preparation* service (exposed in the *resource/resource.proto* file) allows you to upload and download resources, such as textures and spectra to use them in your scene construction. + +#### Resource Preparation service input + +The *Resource Preparation* service accepts a stream of chunks as input of the **UploadResource** call, see [ResourcePreparation](../ref/reference-documentation.md#resourcepreparation). The service waits for metadata with the `AVX MIMEType` key, which contains the MIMEType of the sent data. + +A user-defined name can be provided to the uploaded resource with the `AVX DataName` key, which contains the name of the sent data. + +Here are the accepted MIME Types: + +- for texture + - `image/dds` + - `image/tga` + - `image/hdr` + - `image/exr` + - `image/png` + - `image/jpg` + - `image/jpeg` +- for dielectric material + - `dielectric/dielec` +- for intensity diagram + - `intensity-diagram/ies` +- for spectrum + - `spectrum/spectrum` +- for surface state + - `surface-state/brdf` + - `surface-state/anisotropicbsdf` + - `surface-state/scattering` + - `surface-state/simplescattering` + - `surface-state/mirror` + - `surface-state/unpolished` + - `surface-state/retroreflecting` + - `surface-state/doe` + - `surface-state/fluorescent` + - `surface-state/grating` + - `surface-state/polarizer` + - `surface-state/bsdf180` + - `surface-state/bsdf` + - `surface-state/coated` +- for volume material + - `volume-material/material` +- for irradiance map + - `irradiance-map/xmp` + +For irradiance maps, they must comply with the following requirements: + +- unit type must be radiometric or spectral, +- spectral definition must be in the Long-wavelength infrared range of the electromagnetic spectrum going from 7 to 14 micrometers, +- merging all the layers into one is highly recommended. + +You can generate an irradiance map (.xmp) file with Speos as follows: + +1. Create an irradiance sensor. For more details, refer to [Creating an Irradiance Sensor in Ansys Speos User's Guide](https://ansyshelp.ansys.com/account/secured?returnurl=/Views/Secured/corp/v252/en/Optis_UG_ASP/Optis/UG_ASP/T_UG_ASP_sensor_creating_irradiance_sensor.html). +1. Check the orientation of the xmp: +X of the xmp map must correspond to the right lateral direction of the car (+x expressed in car coordinate system). +1. Check the orientation of the xmp:-Y of the xmp map must correspond to the forward direction of the car (-z expressed in car coordinate system). +1. Run a [simulation](https://ansyshelp.ansys.com/account/secured?returnurl=/Views/Secured/corp/v252/en/Optis_UG_ASP/Optis/UG_ASP/simulations_179503.html). + +**Example** - send the first chunk containing only metadata + +```c# +await call.RequestStream.WriteAsync(new Chunk +{ + Metadata = { + { "AVX MIMEType", $"image/{Path.GetExtension(filename)[1..]}" }, + { "AVX DataName", $"{Path.GetFileNameWithoutExtension(filename)" } + } +}); +``` + +#### Resource Preparation service output + +The *Resource Description* service outputs chunks as a byte stream from the **DownloadResourceAsChunks** call, see [ResourcePreparation](../ref/reference-documentation.md#resourcepreparation). The service sends metadata with the `AVX MIMEType` key defining the type of the data, with the same format as for the **UploadResource**: `type/subtype` with the original file extension as a subtype, and the `AVX DataName` key defining the name of the data. The data is the stream of the original file. +The identifier of a downloaded resource can then be used to reference the resource in a message of another service. + +> **Note:** Irradiance maps cannot be downloaded, neither as chunks, nor as file because after import, the xmp file is converted into a proprietary format which cannot be converted back to the xmp file format. + +### Geometry Preparation service + +The *Geometry Preparation* service (exposed in the *geometry/geometry.proto* file) allows you to build geometries from vertices. + +#### Geometry data structure + +Here is the structure of a geometry: + +![Geometry hierarchy](Asset_prep_API_geometry_hierarchy_co.png) + +A geometry can include one vertex or several vertices as well as one or several material parts. To associate materials to areas, indices are used to reference the vertices composing the concerned primitives. You will find more details on indices in [Geometry Creation Workflow](#geometry-creation-workflow) and [Indices Example](#indices-example). + +Here are the properties of a vertex: + +![Vertex Properties](Asset_prep_API_geometry_hierarchy_vertices.png) + +The x, y and z bi-normals are needed only if the `has_binormals` setting in the geometry properties is set to true. + +The x, y and z tangents are needed only if the `has_tangents` setting in the geometry properties is set to true. + +When the UV count is set to a value superior to zero in the geometry properties, the UV coordinates must be repeated as many times as the value set for the UV count. + +![Material Part Properties](Asset_prep_API_geometry_hierarchy_material_parts.png) + +In the **Material Part Properties**: + +- a material created using the *Material Preparation* service must be referenced using its identifier (when no material is defined in a material part, the default material is automatically added), +- the `start_index` and `indices_count` fields define the area to which the material is applied (refer to [Geometry creation workflow](#geometry-creation-workflow) and [Indices example](#indices-example) below for more details on indices), +- a surface source created using the *Surface Source Preparation* service may be referenced, using its identifier, +- you can add or remove one or several [tags](#tags) using `added_tags` or `removed_tags`. +- temperature variation settings may also be added. + +#### Geometry creation workflow + +1. Create a geometry and set its properties +1. Push vertices into the geometry. +1. Push into the geometry the indices of the already pushed vertices. The order in which the vertices and then the indices must be pushed depends on the winding order set in the geometry properties (clockwise, counterclockwise, double-sided). +1. Create one or several material parts. +1. In the properties of each material part, set the value of the following two fields to reference the area to which the material will be applied: + - `start_index`, which defines the position in the indices array of the first index of the area (this will be the starting point from which the indices will be counted), + - `indices_count`, which defines the number of indices of the area from the indices array. + +> **Note:** Pushed vertices and indices are respectively stored in a vertices array and an indices array. Those arrays have zero-based numbering, meaning that the value of the index to reference the very first vertex of the array is 0 and not 1. + +#### Indices example + +A geometry has been created; the winding order set in its properties is clockwise. + +Five vertices have been pushed into the geometry: V0, V1, V2, V3, V4. The geometry is then composed of 3 primitives: A, B and C. + +![Vertices and Primitives in Geometry](Asset_prep_API_geometry_vertices_primitives.png) + +The indices of each primitive are: + +- 0 1 2 for primitive A +- 0 3 1 for primitive B +- 3 4 1 for primitive C + +![Primitives in Geometry](Asset_prep_API_geometry_vertices_indices.png) + +Therefore, to be able to identify areas (primitives A, B and C) in order to associate materials with, the following 9 indices must be pushed in this order (clockwise) in the indices array: + +![Indices Array](Asset_prep_API_geometry_indices_array.png) + +Let's see how to associate a material with primitive A and another material to the area composed of primitives B and C. + +![Vertices and Materials](Asset_prep_API_geometry_vertices_material.png) + +To reference primitive A in the properties of a Material Part: + +- the index of the first vertex of this area is 0 which is in position 0 in the indices table, so the `start_index` is 0, +- the number of indices that define this area in the indices array is 3, so the `indices_count` is 3. + +![Primitive A Start Index](Asset_prep_API_geometry_vertices_material_A.png) + +![Primitive A Indices count](Asset_prep_API_geometry_indices_array_A.png) + +To reference the area composed by primitives B and C in the properties of a Material Part: + +- the index of the first vertex of this area is 0 which is in position 3 in the indices table, so the `start_index` is 3, +- the number of indices that define this area in the indices array is 6, so the `indices_count` is 6. + +![Primitive B Start Index](Asset_prep_API_geometry_vertices_material_A.png) + +![Primitives B and C Indices count](Asset_prep_API_geometry_indices_array_BC.png) + +#### Geometry Preparation service inputs + +The inputs of the *Geometry Preparation* service are: + +- a 3D component in any basic exchange format (for instance fbx, obj), proprietary format or any data as long as the geometries description at the vertices and polygons levels can be retrieved (for instance from an API), +- the Identifier of a material that has been created with the *Material Preparation* service, +- optionally, the Identifier of a surface source that has been created using the *Surface Source Preparation* service. + +#### Geometry Preparation service outputs + +The output of the *Geometry Preparation* service is the binary data of the geometry with an identifier. This identifier is to be used in the *Scene Tree Preparation* service to reference the created geometry as a geometry instance in a scene tree. + +Geometries are not meant to be exported as files or as chunks. +For each geometry that is referenced in a scene tree which is exported as a .asset file from the *Scene Tree* service (**GetAssetFile** call), or referenced in a scene tree that is referenced in an environment exported as a .track file from the *Environment* service (**GetTrackFile**), a .mesh file (with its associated .geometry file) is created. +In other words, a geometry created through the API corresponds to a mesh in AVxcelerate Asset Preparation Editor. + +### Scene Tree Preparation service + +The *Scene Tree Preparation* service (exposed in the *scenetree/scenetree.proto* file) allows you to build scene trees from geometries. + +#### Scene Tree data structure + +Here is the structure of a scene tree: + +![Scene Tree hierarchy](Asset_prep_API_scene-tree_hierarchy_co.png) + +You can add or remove one or several [tags](#tags) using `added_tags` or `removed_tags` in: + +- **Node Properties** +- **Geometry Instance Properties** +- **Point Light Instance Properties** + +Here is the structure of a transform: + +![Transform hierarchy](Asset_prep_API_scene-tree_transform_co.png) + +#### Tags + +The **Tag** message, exposed in the *common/tag.proto* file, allows you to specify parts of interest so that the assets are properly animated during the simulation. Refer to the tags listed [here](../ref/reference-documentation.md#tag) for the expected case of each tag. + +There are two main categories of tags: `Basic` and `Lighting System`. + +Here are the Tags of the `Basic` category: + +- Pedestrian +- Vehicle +- Animal +- Street Light +- Road Sign +- Simulation Object (corresponds to the **Object** tag in AVxcelerate Asset Preparation Editor) +- Custom Object (corresponds to the **Custom** tag in AVxcelerate Asset Preparation Editor) +- Vehicle Body +- Sensor Referential +- Lighting System Referential +- Wheel +- Steering Wheel +- Illuminance Sensor + +Basic tags can be added to Nodes and Geometry Instances, except for Illuminance Sensor tag which can only be added to Nodes. + +Here are the Tags of the `Lighting System` category: + +- Brake Light +- Low Beam +- High Beam +- Turn Indicator +- Rear Fog Light +- Front Fog Light +- Side Light +- Rear Position Light +- Reverse Light +- License Plate Light +- Daytime Running Light + +Lighting System tags can be added to Nodes, Geometry Instances, Point Lights Instances and Material parts. + +A property is required for the following tags: + +- the Custom Object tag requires a `Name` set in its **Properties** +- the Wheel tag requires an `Identifier` set in its **Properties** +- the Daytime Running Light and Turn Indicator tags require a `Position` set in the tag's **Properties** + +The following tags can hold an optional `Label` set in its **Properties**: Pedestrian, Vehicle, Animal, Street Light, Road Sign, Simulation Object and Custom Object. + +The Vehicle tag can hold an optional `Irradiance Map Identifier` set in its **Properties**, which is the Identifier of an irradiance map created using the *Resource Preparation* service. + +#### Scene Tree Preparation service inputs + +The inputs of the *Scene Tree Preparation* service are: + +- the geometries (referenced to using identifiers) that have been created with the *Geometry Preparation* service, +- optionally, the directional lights (referenced to using identifiers) that have been created with the *Directional Light Preparation* service, +- optionally, the point lights (referenced to using identifiers) that have been created with the *Point Light Preparation* service. + +A scene tree can also be created on the server by importing a .asset file using the **PutSceneTreeFromAssetFile** call, or by uploading a stream of chunks using the **PutSceneTreeFromAssetChunks** call. +All the dependencies of the imported scene tree are also uploaded into the corresponding services. + +The import operation triggers a check for conflicts between the objects already existing on the server and the objects to import based on their names, except for scene trees, light instances, nodes and material parts. +How the conflicting objects are handled is ruled by: + +- the `Name Conflict Policy` field of the **PutSceneTreeFromAssetFileRequest** message for **PutSceneTreeFromAssetFile**, see [ConflictPolicy](../ref/reference-documentation.md#conflictpolicy). +- the `AVX ConflictPolicy` metadata which must be provided in the first chunk for **PutSceneTreeFromAssetChunks**. + The `AVX ConflictPolicy` metadata should be one of the following text strings (case-insensitive): + + - `Stop` or `CONFLICT_POLICY_STOP` + - `KeepExisting` or `CONFLICT_POLICY_KEEP_EXISTING` + - `Override` or `CONFLICT_POLICY_OVERRIDE` + - `KeepBoth` or `CONFLICT_POLICY_KEEP_BOTH` + +**Note**: When importing an asset file, the scene tree created on the server has an extra root node compared to the original scene tree. The extra node has the same name as the scene tree. + +#### Scene Tree Preparation service outputs + +Here are possible outputs of the *Scene Tree Preparation* service. + +- The binary data of the scene tree with an identifier. This identifier can be used to reference the created scene tree in an environment. +- Chunks of binary data from the **GetAssetChunks** call, see [SceneTreePreparation](../ref/reference-documentation.md#scenetreepreparation). The data is the content of the asset. +- A .asset file from the **GetAssetFile** call, see [SceneTreePreparation](../ref/reference-documentation.md#scenetreepreparation). + When the .asset file exported from the API is imported in AVxcelerate Asset Preparation Editor, the scene tree is converted to one .scenetree file. + +### Environment Preparation service + +The *Environment Preparation* service (exposed in the *environment/environment.proto* file) allows you to build environments from scene trees. + +#### Environment data structure + +Here is the structure of an environment: + +![Environment hierarchy](Asset_prep_API_env_hierarchy_co.png) + +An environment references a scene tree created from the *Scene Tree Preparation* service via its identifier. It also includes one or several skies, created from the *Natural Sky Preparation* service or *HDRI Sky Preparation* service, which are referenced via their identifiers. One of these skies can be set as the active sky. +If there is no active sky defined, the first sky added to the environment will be set as active. +If there is no sky added to the environment, a default natural sky is automatically created, added to the track and set as the active sky. + +#### Environment Preparation service inputs + +The inputs of the *Environment Preparation* service are: + +- the scene tree (referenced to using its identifier) that has been created with the *Scene Tree Preparation* service, +- a list of natural skies that have been created with the *Natural Sky Preparation* service, and/or a list of HDRI skies that have been created with the *HDRI Sky Preparation* service, in the lists skies are referenced to using their identifiers, +- the identifier of one sky, natural or HDRI, added to the environment to be set as the active sky. + +An environment can also be created on the server by importing a .track file using the **PutEnvironmentFromTrackFile** call, or by uploading a stream of chunks using the **PutEnvironmentFromTrackChunks** call. +All the dependencies of the imported environment are also uploaded into the corresponding services. + +The import operation triggers a check for conflicts between the objects already existing on the server and the objects to import based on their names, except for scene trees, light instances, nodes and material parts. +How the conflicting objects are handled is ruled by: + +- the `Name Conflict Policy` field of the **PutEnvironmentFromTrackFileRequest** message for **PutEnvironmentFromTrackFile**, see [ConflictPolicy](../ref/reference-documentation.md#conflictpolicy). +- the `AVX ConflictPolicy` metadata which must be provided in the first chunk for **PutEnvironmentFromTrackChunks**. + The `AVX ConflictPolicy` metadata should be one of the following text strings (case-insensitive): + + - `Stop` or `CONFLICT_POLICY_STOP` + - `KeepExisting` or `CONFLICT_POLICY_KEEP_EXISTING` + - `Override` or `CONFLICT_POLICY_OVERRIDE` + - `KeepBoth` or `CONFLICT_POLICY_KEEP_BOTH` + +#### Environment Preparation service outputs + +The different outputs of the *Environment Preparation* service are: + +- chunks as a byte stream from the **GetTackChunks** call, see [EnvironmentPreparation](../ref/reference-documentation.md#environmentpreparation). The data is the content of the track. +- a .track file from the **GetTrackFile** call, see [EnvironmentPreparation](../ref/reference-documentation.md#environmentpreparation). + When the .track file exported from the API is imported in AVxcelerate Asset Preparation Editor, the environment is converted to one .env file. + +### Natural Sky Preparation service + +The *Natural Sky Preparation* service (exposed in the *naturalSky/natural_sky.proto* file) allows you to create, edit and manage natural skies. + +#### Natural Sky data structure + +Here is the structure of a natural sky: + +![Natural sky hierarchy](Asset_prep_API_natural_sky_hierarchy_co.png) + +Once a natural sky is created, it is possible to create several states in it, each state including a distinct set of natural sky properties. + +#### Natural Sky Preparation service Output + +The output of the *Natural Sky Preparation* service is the binary data of the sky with an identifier. This identifier is to be used in the *Environment Preparation* service to reference the created sky in an environment. + +Natural skies are not meant to be exported as files or as chunks. + +### HDRI Sky Preparation service + +The *HDRI Sky Preparation* service (exposed in the *hdriSky/hdri_sky.proto* file) allows you to create, edit and manage HDRI skies. + +#### HDRI Sky data structure + +Here is the structure of an HDRI sky: + +![HDRI sky hierarchy](Asset_prep_API_hdri_sky_hierarchy_co.png) + +Once an HDRI sky is created, it is possible to create several states in it, each state including a distinct set of HDRI sky properties. + +#### HDRI Sky Preparation service input + +For HDRI skies, the identifier of a texture created using the *Resource Preparation* service is required as an input. + +#### HDRI Sky Preparation service output + +The output of the *HDRI Sky Preparation* service is the binary data of the sky with an identifier. This identifier is to be used in the *Environment Preparation* service to reference the created sky in an environment. + +HDRI skies are not meant to be exported as files or as chunks. + +### Material Preparation service + +The *Material Preparation* service (exposed in the *material/material.proto* file) allows you to create, edit and manage materials. + + > **Note**: The sample *geometry_generation_gltf.py* does not create materials, it uses physics-based materials provided in a library and on a mapping file. + +#### Material data structure + +Here is the structure of a material: + +![Material hierarchy](Asset_prep_API_material_hierarchy_level_1_co.png) + +Once a material is created, it is possible to create several states in it, each state including a distinct set of material properties. + +The data structure of each of the following sub-sets of material properties is detailed in the below sections: + +- [Surface Optical Properties](#surface-optical-properties) +- [Volume Optical Properties](#volume-optical-properties) +- [Thermal Properties](#thermal-properties) +- [Dielectric Properties](#dielectric-properties), which are optional +- [Reflection Effect Properties](#reflection-effect-properties) + +##### Surface Optical Properties + +![Material surface optical properties hierarchy](Asset_prep_API_material_SOP_hierarchy_co.png) + +Then, the sub-sets of properties to define depend on the layer type. + +###### Lambertian Layer + +![Surface optical properties for Lambertian layers](Asset_prep_API_material_SOP_lambertian_layer_hierarchy.png) + +###### Mirror Layer + +![Surface optical properties for mirror layers](Asset_prep_API_material_SOP_mirror_layer_hierarchy.png) + +###### Optical Polish Layer + +![Surface optical properties for optical polish layers](Asset_prep_API_material_SOP_optical_polish_layer_hierarchy.png) + +###### LibraryLayer + +![Surface optical properties for library layers](Asset_prep_API_material_SOP_library_layer_hierarchy.png) + +###### Rendering Layer + +![Surface optical properties for rendering layers](Asset_prep_API_material_SOP_rendering_layer_hierarchy.png) + +###### Layers Properties + +![Diffuse properties](Asset_prep_API_material_SOP_diffuse_hierarchy_co.png) + +![Normal properties](Asset_prep_API_material_SOP_normal_hierarchy_co.png) + +![Mask properties](Asset_prep_API_material_SOP_mask_hierarchy_co.png) + +![Anisotropy properties](Asset_prep_API_material_SOP_anisotropy_hierarchy_co.png) + +![Specular properties](Asset_prep_API_material_SOP_specular_hierarchy_co.png) + +![Roughness properties](Asset_prep_API_material_SOP_roughness_hierarchy_co.png) + +##### Volume Optical Properties + +![Material volume optical properties hierarchy](Asset_prep_API_material_VoP_hierarchy.png) + +There are 3 possible types of Volume Optical Properties: Opaque, Optic and Library. +When the Volume Optical Properties type is set to `Library`, the identifier of a volume material created using the *Resource Preparation* service must be referenced. + +##### Thermal Properties + +![Material thermal properties hierarchy](Asset_prep_API_material_thermal_properties_hierarchy.png) + +The `Emissivity Variation Texture Identifier` is optional. When set, the identifier of texture created using the *Resource Preparation* service must be referenced. +The `Emissivity Variation Amplitude` is required only when an `Emissivity Variation Texture Identifier` has been set. + +##### Dielectric Properties + +![Material dielectric properties hierarchy](Asset_prep_API_material_dielectric_properties_hierarchy.png) + +The `Dielectric Properties` are optional. +If you want to define the dielectric properties of the material, the identifier of a dielectric material created using the *Resource Preparation* service must be referenced. + +##### Reflection Effect Properties + +![Material reflection effect properties hierarchy](Asset_prep_API_material_reflection_effect_hierarchy_co.png) + +There are 2 possible types of reflection effect: `No Reflection Effect` and `Scene HDRI`. +When the Reflection Effect Type is set to `Scene HDRI`, the `Reflectivity`, `Size` and `Index of Refraction` parameters must be set. + +#### Material Preparation service inputs + +The identifier of a resource created using the *Resource Preparation* service is needed as an input in some cases. + +- For the Diffuse, Normal, Mask, Anisotropy, Specular and/or Roughness Properties with the `texture` contribution type, the identifier of a texture is required. +- For `Library Volume Optical Properties`, the identifier of a volume material is required. +- If you want to define `Dielectric Properties`, the identifier of a dielectric material is required. +- In the `Thermal Properties`, if you want to set an Emissivity Variation from a texture, the identifier of a texture is required. + +#### Material Preparation service output + +The output of the *Material Preparation* service is the binary data of the material with an identifier. This identifier can be used in the *Geometry Preparation* service to reference the created material under a material part. + +Materials are not meant to be exported as files or as chunks. + +### Surface Source Preparation service + +The *Surface Source Preparation* service (exposed in the *surfaceSource/surfacesource.proto* file) allows you to create, edit and manage surface sources and display sources. + +#### Surface Source data structure + +Here is the structure of a source: + +![Source hierarchy](Asset_prep_API_source_hierarchy_co.png) + +Once a surface source is created, it is possible to create several states in it, each state including a distinct set of properties. + +Here is the structure of a surface source: + +![Surface source hierarchy](Asset_prep_API_surface_source_hierarchy_co.png) + +Here is the structure of a display source: + +![Display source hierarchy](Asset_prep_API_display_source_hierarchy_co.png) + +There are three possible types of angular diagram. When the angular diagram type is set to `Library`, the identifier of an intensity diagram created using the *Resource Preparation* service must be referenced. + +In the properties of a surface source or display source, you can define whether it contributes to the ambient lighting (`Lighting Contribution`) or not (`No Contribution`). + +There are five possible types of spectrum. When the texture type is set to `Library`, the identifier of a spectrum created using the *Resource Preparation* service must be referenced. + +For display sources, the identifier of a texture created using the *Resource Preparation* service must be referenced. + +Here are the properties for the lighting contribution: + +![Source lighting contribution hierarchy](Asset_prep_API_source_lighting_contrib_hierarchy_co.png) + +#### Surface Source Preparation service inputs + +The identifier of a resource created using the *Resource Preparation* service is required as an input: + +- for `Library Diagram` (identifier of an intensity diagram), +- for `Spectrum Library` (identifier of a spectrum), +- for display sources (identifier of a texture). + +#### Surface Source Preparation service output + +The output of the *Surface Source Preparation* service is the binary data of the surface source with an identifier. This identifier can be used in the *Geometry Preparation* service to reference the created surface source under a material part. + +Surface sources are not meant to be exported as files or as chunks. + +### Directional Light Preparation service + +The *Directional Light Preparation* service (exposed in the *directionalLight/directionallight.proto* file) allows you to create, edit and manage directional lights. + +#### Directional Light data structure + +Here is the structure of a directional light: + +![Directional light hierarchy](Asset_prep_API_directional_light_hierarchy_co.png) + +There are two possible types of directional light: `Sun` or `Custom`. + +In the properties of a directional light, you can define whether it casts shadows (`Dynamic Accurate Shadows`) or not (`No Shadows`). + +Once a directional light is created, it is possible to create several states in it, each state including a distinct set of properties. + +#### Directional Light Preparation service inputs + +For `Custom` type with a `Spectrum Library`, the identifier of a spectrum created using the *Resource Preparation* service is required as an input. + +#### Directional Light Preparation service output + +The output of the *Directional Light Preparation* service is the binary data of the directional light with an identifier. +This identifier can be used in the *Scene Tree Preparation* service to reference the created directional light as a directional light instance under a node. + +Directional Lights are not meant to be exported as files or as chunks. + +### Point Light Preparation service + +The *Point Light Preparation* service (exposed in the *pointLight/pointlight.proto* file) allows you to create, edit and manage point lights. + +#### Point Light data structure + +Here is the structure of a point light: + +![Point light hierarchy](Asset_prep_API_point_light_hierarchy_co.png) + +Once a point light is created, it is possible to create several states in it, each state including a distinct set of properties. + +#### Point Light Preparation service inputs + +When the Spectrum type is `Spectrum Library`, the identifier of a spectrum created using the *Resource Preparation* service is required as an input. +When the Intensity diagram type is `Library Diagram`, the identifier of an intensity diagram created using the *Resource Preparation* service is required as an input. + +#### Point Light Preparation service output + +The output of the *Point Light Preparation* service is the binary data of the point light with an identifier. +This identifier can be used in the *Scene Tree Preparation* service to reference the created point light as a point light instance under a node. + +Point Lights are not meant to be exported as files or as chunks. + +## AVxcelerate Asset Preparation API outputs + +The outputs of the AVxcelerate Asset Preparation API, namely AVX assets and tracks, can now be set as inputs for AVxcelerate Sensors Simulator. + +### Asset and Track streams + +For tracks and assets exported as a byte stream from the AVxcelerate Asset Preparation API, you must use the AVxcelerate Sensors Simulator APIs to set them as inputs for a sensors simulation. + +1. Use a dedicated grpc streaming service to stream the chunks (byte array) from the AVxcelerate Asset Preparation API server to the AVxcelerate Sensors Simulator API server. +1. Request the stream upload from the **Resource Uploader** service of AVxcelerate Sensors Simulator APIs. +1. Set the identifier of the uploaded resource the **LOAD** command > **Configuration** message > `SceneInfo` field: + + - **AssetInfo** > **Assets** > **ResourceIdentifier** > **ID** + - **Track** > **ResourceIdentifier** > **ID** + +Refer to the AVXCELERATE Sensors Simulator API Documentation published on the [Ansys Developer Portal](https://developer.ansys.com/). + +### Asset and Track files + +To check the .asset and .track files created using this API, open the files in AVxcelerate Asset Preparation Editor, refer to [AVxcelerate Asset Preparation User's Guide](https://ansyshelp.ansys.com/account/secured?returnurl=/Views/Secured/corp/v252/en/Optis_UG_VRXP/index.html). + +To set the .asset and .track files as inputs for AVxcelerate Sensors Simulator for a co-simulation with CarMaker: + +1. add the references to the .asset and .track files into the json co-simulation mapping file (refer to [Mapping AVX to CarMaker Track and Assets](https://ansyshelp.ansys.com/account/secured?returnurl=/Views/Secured/corp/v252/en/Optis_UG_VSS/Optis/shared/reusable_topics/tasks/T_UG_VSS_mapping_CM_assets.html) or [Mapping AVX to SCANeR Assets](https://ansyshelp.ansys.com/account/secured?returnurl=/Views/Secured/corp/v252/en/Optis_UG_VSS/Optis/UG_VSS/T_UG_VSS_mapping_assets.html)) +1. set the mapping file in the connector parameters (refer to [Setting the AVXConnector Parameters](https://ansyshelp.ansys.com/account/secured?returnurl=/Views/Secured/corp/v252/en/Optis_UG_VSS/Optis/shared/reusable_topics/tasks/T_UG_VSS_setting_AVXConnector_settings.html) or [Applying the Configuration Files to a SCANeR Scenario](https://ansyshelp.ansys.com/account/secured?returnurl=/Views/Secured/corp/v252/en/Optis_UG_VSS/Optis/UG_VSS/T_UG_VSS_setting_AVXConnector_settings.html)). + +To set the .asset and .track files as inputs for AVxcelerate Sensors Simulator through a custom connector built upon AVxcelerate Sensors Simulator API, define them in the *Simulation Control* service > **LOAD** command > **Configuration** message > `SceneInfo` field. Refer to the AVXCELERATE Sensors Simulator API Documentation published on the [Ansys Developer Portal](https://developer.ansys.com/). diff --git a/2025R2/avxcelerate-asset-preparation-api-2025-r2/desc/diagram_key_choice.png b/2025R2/avxcelerate-asset-preparation-api-2025-r2/desc/diagram_key_choice.png new file mode 100644 index 0000000000..8f462df9b9 Binary files /dev/null and b/2025R2/avxcelerate-asset-preparation-api-2025-r2/desc/diagram_key_choice.png differ diff --git a/2025R2/avxcelerate-asset-preparation-api-2025-r2/desc/diagram_key_optional.png b/2025R2/avxcelerate-asset-preparation-api-2025-r2/desc/diagram_key_optional.png new file mode 100644 index 0000000000..11c4955626 Binary files /dev/null and b/2025R2/avxcelerate-asset-preparation-api-2025-r2/desc/diagram_key_optional.png differ diff --git a/2025R2/avxcelerate-asset-preparation-api-2025-r2/desc/diagram_key_reference.png b/2025R2/avxcelerate-asset-preparation-api-2025-r2/desc/diagram_key_reference.png new file mode 100644 index 0000000000..65410e4f04 Binary files /dev/null and b/2025R2/avxcelerate-asset-preparation-api-2025-r2/desc/diagram_key_reference.png differ diff --git a/2025R2/avxcelerate-asset-preparation-api-2025-r2/desc/diagram_key_repeated.png b/2025R2/avxcelerate-asset-preparation-api-2025-r2/desc/diagram_key_repeated.png new file mode 100644 index 0000000000..26e5496409 Binary files /dev/null and b/2025R2/avxcelerate-asset-preparation-api-2025-r2/desc/diagram_key_repeated.png differ diff --git a/2025R2/avxcelerate-asset-preparation-api-2025-r2/docfx.json b/2025R2/avxcelerate-asset-preparation-api-2025-r2/docfx.json new file mode 100644 index 0000000000..793e6684aa --- /dev/null +++ b/2025R2/avxcelerate-asset-preparation-api-2025-r2/docfx.json @@ -0,0 +1,16 @@ +{ + "build": { + "globalMetadata": { + "title": "AVxcelerate Asset Preparation API 2025 R2", + "summary": "Prepare AVxcelerate assets and tracks by augmenting existing 3D content with physics-based properties.", + "version": "2025 R2", + "description": "This document is intended for developers who need to streamline the preparation of AVX assets and tracks, AVxcelerate Asset Preparation API exposes the interfaces required to prepare AVX assets and tracks.", + "date": "2025-05-26", + "status": "unpublished", + "api categories": "Autonomous Vehicle Simulation", + "product": "AVxcelerate Asset Preparation API", + "product collection": "Autonomous Vehicle Simulation", + "physics": "Autonomous Driving" + } + } +} diff --git a/2025R2/avxcelerate-asset-preparation-api-2025-r2/index.md b/2025R2/avxcelerate-asset-preparation-api-2025-r2/index.md new file mode 100644 index 0000000000..ef131e0575 --- /dev/null +++ b/2025R2/avxcelerate-asset-preparation-api-2025-r2/index.md @@ -0,0 +1,8 @@ +# Introduction + +This API documentation is composed of the following sections: + +- [API description](./desc/api-description.md) +- [Reference documentation](./ref/reference-documentation.md) +- [Changelog](./changelog/changelog.md) + diff --git a/2025R2/avxcelerate-asset-preparation-api-2025-r2/ref/reference-documentation.md b/2025R2/avxcelerate-asset-preparation-api-2025-r2/ref/reference-documentation.md new file mode 100644 index 0000000000..9f4e828444 --- /dev/null +++ b/2025R2/avxcelerate-asset-preparation-api-2025-r2/ref/reference-documentation.md @@ -0,0 +1,3417 @@ +# Reference documentation + +## asset_preparation_api/common/chunk.proto + +This file describes the messages used for import/export. + +### Chunk + +A block of data. + +Note: The recommended size is in the range 256kB to 1MB. + +No data higher than 2GB can be handled. + +| Field | Type | Label | Description | +| ----- | ---- | ----- | ----------- | +| metadata | [map Chunk-MetadataEntry](#chunk-metadataentry) | repeated | | +| bytes | bytes | | | + +### Chunk-MetadataEntry + +| Field | Type | Label | Description | +| ----- | ---- | ----- | ----------- | +| key | string | | | +| value | string | | | + +## asset_preparation_api/common/common.proto + +This file describes the messages used in several proto files. + +### ColorHsv + +Hsv value of a color. + +| Field | Type | Label | Description | +| ----- | ---- | ----- | ----------- | +| hue | google.protobuf.DoubleValue | | Hue
Unit: Degree
Range: [0,360] | +| saturation | google.protobuf.DoubleValue | | Intensity
Range: [0,100] | +| value | google.protobuf.DoubleValue | | Value
Range: [0,100] | + +### ColorRgb + +RGB value of a color. + +| Field | Type | Label | Description | +| ----- | ---- | ----- | ----------- | +| red | google.protobuf.Int32Value | | Value for the red component.
Range: [0,255] | +| green | google.protobuf.Int32Value | | Value for the green component.
Range: [0,255] | +| blue | google.protobuf.Int32Value | | Value for the blue component.
Range: [0,255] | + +### Empty + +An empty message used for none type. + +### ConflictPolicy + +The conflict policy to define what should be imported when there is any name conflict detected between objects from the environment or scene tree to import and the objects already existing on the server. + +Note: Scene trees, light instances, nodes and material parts cannot have name conflicts. + +| Name | Number | Description | +| ---- | ------ | ----------- | +| CONFLICT_POLICY_UNSPECIFIED | 0 | Unspecified conflict policy. | +| CONFLICT_POLICY_STOP | 1 | The import operation is canceled when there is a conflict with the server's objects.
Note: This is the default behavior when no policy is specified. | +| CONFLICT_POLICY_KEEP_EXISTING | 2 | When there is a conflict with the server's objects, the import operation continues without importing the conflicting objects. The already existing objects are used in the imported environment/scene tree. | +| CONFLICT_POLICY_OVERRIDE | 3 | When there is a conflict with the server's objects, the import operation continues and the objects from the imported environment/scene tree override the already existing objects. | +| CONFLICT_POLICY_KEEP_BOTH | 4 | When there is a conflict with the server's objects, the import operation continues and both conflicting objects are kept: the objects already existing remains on the server and the objects coming from the import operation are automatically renamed and used in the imported environment/scene tree. | + +## asset_preparation_api/common/reset.proto + +This file describes the service used to reset the server. + +### Reset + +Reset Preparation Service + +This service is used to clear the server. + +Note: Resetting the server removes from the server all the "in-memory" data, namely all the data imported or created, collections and identifiers. + +| Method Name | Request Type | Response Type | Description | +| ----------- | ------------ | ------------- | ------------| +| Reset | .google.protobuf.Empty | [ResetResponse](#resetresponse) | Reset server, all collections and identifiers. | + +## asset_preparation_api/common/reset_description.proto + +This file describes the messages used to reset the server. + +### ResetResponse + +The information required to reset the server. + +| Field | Type | Label | Description | +| ----- | ---- | ----- | ----------- | +| status | [asset_preparation.v3.common.Status](#status) | | The feedback status of the reset operation. | + +## asset_preparation_api/common/status.proto + +This file describes the status messages used in several proto files. + +### Status + +A status message informing about the success of a request. + +| Field | Type | Label | Description | +| ----- | ---- | ----- | ----------- | +| code | int32 | | The status code. | +| feedback_message | string | | The feedback message. | +| level | [Level](#level) | | The severity level. | + +### Level + +The severity of the feedback on an operation. + +| Name | Number | Description | +| ---- | ------ | ----------- | +| LEVEL_UNSPECIFIED | 0 | The severity is unspecified. | +| LEVEL_ERROR | 1 | The operation returned an error. | +| LEVEL_WARNING | 2 | The operation succeeded with warnings. | +| LEVEL_INFORMATION | 3 | The operation fully succeeded. | + +## asset_preparation_api/common/tag.proto + +This file describes the messages used to define tags. + +### Properties + +The properties of a tag. + +| Field | Type | Label | Description | +| ----- | ---- | ----- | ----------- | +| label | google.protobuf.StringValue | | Optional label.
Note: It can be added only for the tags with the following types:
BASIC_TYPE_PEDESTRIAN
BASIC_TYPE_VEHICLE
BASIC_TYPE_ANIMAL
BASIC_TYPE_STREET_LIGHT
BASIC_TYPE_ROAD_SIGN
BASIC_TYPE_SIMULATION_OBJECT
BASIC_TYPE_CUSTOM_OBJECT
BASIC_TYPE_ILLUMINANCE_SENSOR | +| name | google.protobuf.StringValue | | The name of the custom tag.
Note: Needed only for the tags with the `BASIC_TYPE_CUSTOM_OBJECT` type. | +| identifier | google.protobuf.Int32Value | | The identifier of the wheel tag.
Note: Needed only for the tags with the `BASIC_TYPE_WHEEL` type.
Here is the convention for wheel identifier in AVX:
The front left wheel identifier must be 0.
The front right wheel identifier must be 1.
The rear left wheel identifier must be 2.
The rear right wheel identifier must be 3. | +| position | [SidePosition](#sideposition) | | The position of the lighting element.
Note: Needed only for the tags with the `LIGHTING_TYPE_TURN_INDICATOR` and `LIGHTING_TYPE_DAYTIME_RUNNING_LIGHT` types. | +| irradiance_map_identifier | google.protobuf.Int32Value | | Optional identifier of the irradiance map.
Note: It can be added only for the tags with the `BASIC_TYPE_VEHICLE` type. | + +### Tag + +The definition of a tag. + +| Field | Type | Label | Description | +| ----- | ---- | ----- | ----------- | +| basic_type | [BasicType](#basictype) | | Basic tag type. | +| lighting_type | [LightingType](#lightingtype) | | Lighting tag type. | +| properties | [Properties](#properties) | | Properties of the tag. | + +### TagIdentity + +The identity of a tag. + +| Field | Type | Label | Description | +| ----- | ---- | ----- | ----------- | +| basic_type | [BasicType](#basictype) | | Basic tag type. | +| lighting_type | [LightingType](#lightingtype) | | Lighting tag type. | +| name | google.protobuf.StringValue | | The name of the tag.
Note: Needed only for the tags with the `BASIC_TYPE_CUSTOM_OBJECT` type. | + +### BasicType + +Types for a basic element tag. + +| Name | Number | Description | +| ---- | ------ | ----------- | +| BASIC_TYPE_UNSPECIFIED | 0 | The basic tag type is unspecified. | +| BASIC_TYPE_PEDESTRIAN | 1 | The element is tagged as a pedestrian. | +| BASIC_TYPE_VEHICLE | 2 | The element is tagged as a vehicle. | +| BASIC_TYPE_ANIMAL | 3 | The element is tagged as an animal. | +| BASIC_TYPE_STREET_LIGHT | 4 | The element is tagged as a street light. | +| BASIC_TYPE_ROAD_SIGN | 5 | The element is tagged as a road sign. | +| BASIC_TYPE_SIMULATION_OBJECT | 6 | The element is tagged as a simulation object. | +| BASIC_TYPE_CUSTOM_OBJECT | 7 | The element is tagged as a custom simulation object.
Note: If you want to tag a dynamic asset as a custom simulation object, you must add the custom tag first, then add a second asset tag, `BASIC_TYPE_VEHICLE`, `BASIC_TYPE_PEDESTRIAN` or `BASIC_TYPE_ANIMAL`, in this specific order. | +| BASIC_TYPE_VEHICLE_BODY | 8 | The element is tagged as a vehicle body. | +| BASIC_TYPE_SENSOR_REFERENTIAL | 9 | The element is tagged as the sensor referential of a vehicle. | +| BASIC_TYPE_LIGHTING_SYSTEM_REFERENTIAL | 10 | The element is tagged as the lighting system referential of a vehicle. | +| BASIC_TYPE_WHEEL | 11 | The element is tagged as a wheel of a vehicle. | +| BASIC_TYPE_STEERING_WHEEL | 12 | The element is tagged as the steering wheel of a vehicle. | +| BASIC_TYPE_ILLUMINANCE_SENSOR | 13 | The element is tagged as the illuminance sensor anchor node of a vehicle. | + +### LightingType + +Types for a lighting element tag. + +| Name | Number | Description | +| ---- | ------ | ----------- | +| LIGHTING_TYPE_UNSPECIFIED | 0 | The lighting tag type is unspecified. | +| LIGHTING_TYPE_BRAKE_LIGHT | 1 | The lighting element is tagged as a brake light. | +| LIGHTING_TYPE_LOW_BEAM | 2 | The lighting element is tagged as a low beam. | +| LIGHTING_TYPE_HIGH_BEAM | 3 | The lighting element is tagged as a high beam. | +| LIGHTING_TYPE_TURN_INDICATOR | 4 | The lighting element is tagged as a turn indicator. | +| LIGHTING_TYPE_REAR_FOG_LIGHT | 5 | The lighting element is tagged as a rear fog light. | +| LIGHTING_TYPE_FRONT_FOG_LIGHT | 6 | The lighting element is tagged as a front fog light. | +| LIGHTING_TYPE_SIDE_LIGHT | 7 | The lighting element is tagged as a side light. | +| LIGHTING_TYPE_REAR_POSITION_LIGHT | 8 | The lighting element is tagged as a rear position light. | +| LIGHTING_TYPE_REVERSE_LIGHT | 9 | The lighting element is tagged as a reverse light. | +| LIGHTING_TYPE_LICENSE_PLATE_LIGHT | 10 | The lighting element is tagged as a license plate light. | +| LIGHTING_TYPE_DAYTIME_RUNNING_LIGHT | 11 | The lighting element is tagged as a daytime running light. | + +### SidePosition + +The position of the lighting element. + +Note: Needed only for the tags with the `LIGHTING_TYPE_TURN_INDICATOR` and `LIGHTING_TYPE_DAYTIME_RUNNING_LIGHT` types. + +| Name | Number | Description | +| ---- | ------ | ----------- | +| SIDE_POSITION_UNSPECIFIED | 0 | The position of the lighting element is unspecified. | +| SIDE_POSITION_LEFT | 1 | The lighting element is on the left side of the vehicle. | +| SIDE_POSITION_RIGHT | 2 | The lighting element is on the right side of the vehicle. | + +## asset_preparation_api/directionalLight/directional_light.proto + +This file describes the service used to create, edit and manage directional lights. + +### DirectionalLightPreparation + +Directional Light Preparation Service + +This service is used to create, edit and manage directional lights. + +| Method Name | Request Type | Response Type | Description | +| ----------- | ------------ | ------------- | ------------| +| CreateDirectionalLight | [CreateDirectionalLightRequest](#createdirectionallightrequest) | [CreateDirectionalLightResponse](#createdirectionallightresponse) | Creates a new directional light with an optional name, type and shadows.
Note: Names must be unique amongst directional lights.
Note: If unspecified, default values are used.
Returns the identifier of the created directional light. | +| GetDirectionalLight | [GetDirectionalLightRequest](#getdirectionallightrequest) | [GetDirectionalLightResponse](#getdirectionallightresponse) | Gets the properties of a directional light, given its identifier.
Returns the directional light properties. | +| ListDirectionalLights | .google.protobuf.Empty | [ListDirectionalLightsResponse](#listdirectionallightsresponse) | Lists all the created directional lights.
Returns the identifiers and names of the directional lights. | +| UpdateDirectionalLight | [UpdateDirectionalLightRequest](#updatedirectionallightrequest) | [UpdateDirectionalLightResponse](#updatedirectionallightresponse) | Edits the properties of a directional light, given its identifier.
Note: Names must be unique amongst directional lights. | +| DeleteDirectionalLight | [DeleteDirectionalLightRequest](#deletedirectionallightrequest) | [DeleteDirectionalLightResponse](#deletedirectionallightresponse) | Deletes a directional light, given its identifier. | +| CreateDirectionalLightState | [CreateDirectionalLightStateRequest](#createdirectionallightstaterequest) | [CreateDirectionalLightStateResponse](#createdirectionallightstateresponse) | Creates a new directional light state with optional properties.
Note: Names must be unique amongst sibling directional light states.
Note: "Default" name is reserved.
Note: If some properties are not specified, default values are used.
Returns the information about the created directional light state. | +| GetDirectionalLightState | [GetDirectionalLightStateRequest](#getdirectionallightstaterequest) | [GetDirectionalLightStateResponse](#getdirectionallightstateresponse) | Gets the properties of a directional light state, given the parent directional light identifier and the state name.
Returns the directional light state properties. | +| UpdateDirectionalLightState | [UpdateDirectionalLightStateRequest](#updatedirectionallightstaterequest) | [UpdateDirectionalLightStateResponse](#updatedirectionallightstateresponse) | Edits the properties of a state, given the parent directional light identifier and the state name.
Note: Names must be unique amongst sibling directional light states.
Note: "Default" name is reserved. | +| DeleteDirectionalLightState | [DeleteDirectionalLightStateRequest](#deletedirectionallightstaterequest) | [DeleteDirectionalLightStateResponse](#deletedirectionallightstateresponse) | Deletes a directional light state, given the parent directional light identifier and the state name. | + +## asset_preparation_api/directionalLight/directional_light_description.proto + +This file describes the messages used to create, edit and manage directional lights. + +### BlackBody + +Spectrum based on a black body. + +| Field | Type | Label | Description | +| ----- | ---- | ----- | ----------- | +| temperature | google.protobuf.DoubleValue | | The temperature of the black body.
Unit: Kelvin (K)
Range: [0,30000]
Default value: 5500 | + +### CreateDirectionalLightRequest + +The information required to create a directional light. + +| Field | Type | Label | Description | +| ----- | ---- | ----- | ----------- | +| name | google.protobuf.StringValue | | The directional light name.
Note: Names must be unique amongst directional lights.
Note: If no name is defined, a default unique name is automatically set. | +| properties | [DirectionalLightProperties](#directionallightproperties) | | The directional light properties. | + +### CreateDirectionalLightResponse + +The identifier of the created directional light. + +| Field | Type | Label | Description | +| ----- | ---- | ----- | ----------- | +| identity | [DirectionalLightIdentity](#directionallightidentity) | | The identity of the directional light.
Returns null in case of failure. | +| status | [asset_preparation.v3.common.Status](#status) | | The feedback status of the creation operation. | + +### CreateDirectionalLightStateRequest + +The information required to create a directional light state. + +| Field | Type | Label | Description | +| ----- | ---- | ----- | ----------- | +| identifier | google.protobuf.Int32Value | | The directional light identifier. | +| state_name | string | | The state name.
Note: Names must be unique amongst sibling directional light states.
Note: "Default" name is reserved. | +| base_state_name | google.protobuf.StringValue | | The name of an already existing state on which will be based the state to create.
Note: If not defined, the directional light properties are used. | +| state_properties | [DirectionalLightProperties](#directionallightproperties) | | The state properties. | + +### CreateDirectionalLightStateResponse + +The response returned when creating a directional light state. + +| Field | Type | Label | Description | +| ----- | ---- | ----- | ----------- | +| identifier | int32 | | The directional light identifier. | +| state_name | string | | The new state name. | +| status | [asset_preparation.v3.common.Status](#status) | | The feedback status of the creation operation. | + +### Custom + +The properties of a custom directional light. + +| Field | Type | Label | Description | +| ----- | ---- | ----- | ----------- | +| exitance | google.protobuf.DoubleValue | | The directional light exitance.
Unit: lm/m2
Note: Must be positive.
Default value: 40000 | +| spectrum_library | [SpectrumLibrary](#spectrumlibrary) | | Spectrum based on a spectrum file.
Note: This is the default type of spectrum. | +| black_body | [BlackBody](#blackbody) | | Spectrum based on a black body. | +| monochromatic | [Monochromatic](#monochromatic) | | Monochromatic spectrum. | +| color_rgb | [asset_preparation.v3.common.ColorRgb](#colorrgb) | | Spectrum based on a RGB color.
Default value: (255,255,255) | +| color_hsv | [asset_preparation.v3.common.ColorHsv](#colorhsv) | | Spectrum based on an HSV color.
Default value: (0,0,100) | + +### DeleteDirectionalLightRequest + +The information required to delete a directional light. + +| Field | Type | Label | Description | +| ----- | ---- | ----- | ----------- | +| identifier | google.protobuf.Int32Value | | The identifier of the directional light to delete. | + +### DeleteDirectionalLightResponse + +The response returned when deleting a directional light. + +| Field | Type | Label | Description | +| ----- | ---- | ----- | ----------- | +| status | [asset_preparation.v3.common.Status](#status) | | The feedback status of the delete operation. | + +### DeleteDirectionalLightStateRequest + +The information required to delete a directional light state. + +| Field | Type | Label | Description | +| ----- | ---- | ----- | ----------- | +| identifier | google.protobuf.Int32Value | | The directional light identifier. | +| state_name | string | | The name of the state to delete. | + +### DeleteDirectionalLightStateResponse + +The response returned when deleting a directional light state. + +| Field | Type | Label | Description | +| ----- | ---- | ----- | ----------- | +| status | [asset_preparation.v3.common.Status](#status) | | The feedback status of the delete operation. | + +### DirectionalLightIdentity + +The full identity of a directional light, consisting of an identifier and a name. + +| Field | Type | Label | Description | +| ----- | ---- | ----- | ----------- | +| identifier | int32 | | The directional light identifier. | +| name | string | | The directional light name. | + +### DirectionalLightProperties + +The properties of a directional light. + +| Field | Type | Label | Description | +| ----- | ---- | ----- | ----------- | +| sun | [Sun](#sun) | | Sun directional light.
Note: This is the default type of directional light. | +| custom | [Custom](#custom) | | Custom directional light. | +| no_shadow | [asset_preparation.v3.common.Empty](#empty) | | The directional light does not cast shadows. | +| dynamic_accurate_shadows | [DynamicAccurateShadows](#dynamicaccurateshadows) | | The directional light produces shadows with Parallel-Split Shadow Maps with adaptive details.
Note: This is the default type of shadows. | + +### DynamicAccurateShadows + +The properties of dynamic accurate shadows. + +| Field | Type | Label | Description | +| ----- | ---- | ----- | ----------- | +| shadow_offset_ratio | google.protobuf.DoubleValue | | The shadow offset ratio.
Note: Must be above 0.00001.
Default value: 0.01 | +| shadow_radius | google.protobuf.DoubleValue | | The shadow radius.
Note: Must be equal or superior to 0.
Default value: 0 | +| softness | google.protobuf.DoubleValue | | The softness.
Range: [0,2]
Default value: 0 | +| resolution | google.protobuf.Int32Value | | The resolution.
Range: [1,8]
Default value: 0 | +| near_field_precision | google.protobuf.DoubleValue | | The near field precision.
Range: [0,1]
Default value: 0.99 | + +### GetDirectionalLightRequest + +The information required to examine a directional light. + +| Field | Type | Label | Description | +| ----- | ---- | ----- | ----------- | +| identifier | google.protobuf.Int32Value | | The identifier of the directional light to examine. | + +### GetDirectionalLightResponse + +The information about a directional light. + +| Field | Type | Label | Description | +| ----- | ---- | ----- | ----------- | +| identity | [DirectionalLightIdentity](#directionallightidentity) | | The directional light identity. | +| properties | [DirectionalLightProperties](#directionallightproperties) | | The directional light properties. | +| state_names | string | repeated | The names of the directional light states. | +| status | [asset_preparation.v3.common.Status](#status) | | The feedback status of the examination operation. | + +### GetDirectionalLightStateRequest + +The information required to examine a state. + +| Field | Type | Label | Description | +| ----- | ---- | ----- | ----------- | +| identifier | google.protobuf.Int32Value | | The identifier of the directional light. | +| state_name | string | | The name of the state to examine. | + +### GetDirectionalLightStateResponse + +The information about a directional light state. + +| Field | Type | Label | Description | +| ----- | ---- | ----- | ----------- | +| identifier | int32 | | The identifier of the examined directional light. | +| state_name | string | | The state name. | +| state_properties | [DirectionalLightProperties](#directionallightproperties) | | The properties of the examined state. | +| status | [asset_preparation.v3.common.Status](#status) | | The feedback status of the reading operation. | + +### ListDirectionalLightsResponse + +The identities of all directional lights in the collection. + +| Field | Type | Label | Description | +| ----- | ---- | ----- | ----------- | +| directional_lights | [DirectionalLightIdentity](#directionallightidentity) | repeated | Directional light identities. | +| status | [asset_preparation.v3.common.Status](#status) | | The feedback status of the listing operation. | + +### Monochromatic + +Monochromatic spectrum. + +| Field | Type | Label | Description | +| ----- | ---- | ----- | ----------- | +| wavelength | google.protobuf.DoubleValue | | The emission wavelength of the Spectrum.
Unit: nanometer (nm)
Range: [360,813]
Default value: 580 | + +### SpectrumLibrary + +Spectrum based on a spectrum file. + +| Field | Type | Label | Description | +| ----- | ---- | ----- | ----------- | +| spectrum_identifier | google.protobuf.Int32Value | | The identifier of the spectrum (created using the Resource service) referenced in the directional light.
Note: The spectrum reference can be removed by setting the value '-1'. | + +### Sun + +The properties of a sun directional light. + +| Field | Type | Label | Description | +| ----- | ---- | ----- | ----------- | +| turbidity | google.protobuf.DoubleValue | | The sun turbidity.
Range: [2,9]
Default value: 3 | + +### UpdateDirectionalLightRequest + +The information required to update a directional light. + +| Field | Type | Label | Description | +| ----- | ---- | ----- | ----------- | +| identifier | google.protobuf.Int32Value | | The identifier of the directional light to update. | +| name | google.protobuf.StringValue | | The directional light name.
Note: Names must be unique amongst directional lights.
Note: If no name is defined, the name is not updated. | +| properties | [DirectionalLightProperties](#directionallightproperties) | | The directional light properties.
Note: All the properties are optional. | + +### UpdateDirectionalLightResponse + +The response returned when updating a directional light. + +| Field | Type | Label | Description | +| ----- | ---- | ----- | ----------- | +| status | [asset_preparation.v3.common.Status](#status) | | The feedback status of the update operation. | + +### UpdateDirectionalLightStateRequest + +The information required to update a directional light state. + +| Field | Type | Label | Description | +| ----- | ---- | ----- | ----------- | +| identifier | google.protobuf.Int32Value | | The directional light identifier. | +| state_name | string | | The current name of the state. | +| state_new_name | google.protobuf.StringValue | | The new name of the state.
Note: Names must be unique amongst sibling directional light states.
Note: "Default" name is reserved.
Note: If no name is defined, the name is not updated. | +| state_properties | [DirectionalLightProperties](#directionallightproperties) | | The new state properties. | + +### UpdateDirectionalLightStateResponse + +The response returned when updating a directional light state. + +| Field | Type | Label | Description | +| ----- | ---- | ----- | ----------- | +| state_name | string | | The state name. | +| status | [asset_preparation.v3.common.Status](#status) | | The feedback status of the update operation. | + +## asset_preparation_api/environment/environment.proto + +This file describes the service used to create, edit and manage environments. + +### EnvironmentPreparation + +Environment Preparation Service + +This service is used to create, edit and manage environments. + +| Method Name | Request Type | Response Type | Description | +| ----------- | ------------ | ------------- | ------------| +| CreateEnvironment | [CreateEnvironmentRequest](#createenvironmentrequest) | [CreateEnvironmentResponse](#createenvironmentresponse) | Creates a new environment with an optional given name.
Note: Names must be unique amongst environments.
Returns the identifier of the created environment. | +| GetEnvironment | [GetEnvironmentRequest](#getenvironmentrequest) | [GetEnvironmentResponse](#getenvironmentresponse) | Gets an environment properties, given its identifier.
Returns the environment properties. | +| ListEnvironments | .google.protobuf.Empty | [ListEnvironmentsResponse](#listenvironmentsresponse) | Lists all the created environments.
Returns the identifiers and names of the environments. | +| UpdateEnvironment | [UpdateEnvironmentRequest](#updateenvironmentrequest) | [UpdateEnvironmentResponse](#updateenvironmentresponse) | Edits the properties of an environment, given its identifier.
Note: Names must be unique amongst environments. | +| DeleteEnvironment | [DeleteEnvironmentRequest](#deleteenvironmentrequest) | [DeleteEnvironmentResponse](#deleteenvironmentresponse) | Deletes an environment, given its identifier. | +| PutEnvironmentFromTrackChunks | [.asset_preparation.v3.common.Chunk](#chunk) stream | [PutEnvironmentFromTrackResponse](#putenvironmentfromtrackresponse) | Creates a new environment on the server by uploading a track as a given stream of chunks containing the "AVX ConflictPolicy" metadata.
All dependencies are uploaded into corresponding services, depending on the given conflict policy.
Note: It is not possible to upload a track including an object in which several states have the same name, or including a geometry with several material parts with the same name. | +| PutEnvironmentFromTrackFile | [PutEnvironmentFromTrackFileRequest](#putenvironmentfromtrackfilerequest) | [PutEnvironmentFromTrackResponse](#putenvironmentfromtrackresponse) | Creates a new environment on the server by uploading a given track file.
All dependencies are uploaded into corresponding services, depending on the given conflict policy.
Note: It is not possible to upload a track including an object in which several states have the same name, or including a geometry with several material parts with the same name. | +| GetTrackChunks | [GetTrackChunksRequest](#gettrackchunksrequest) | [.asset_preparation.v3.common.Chunk](#chunk) stream | Packages the environment as a track and exports it as a byte stream.
Note: The last chunk of the stream provides the metadata "AVX Status Error" if an error occurred, "AVX Status Warning" or "AVX Status Info" if the export succeeded. | +| GetTrackFile | [GetTrackFileRequest](#gettrackfilerequest) | [GetTrackFileResponse](#gettrackfileresponse) | Packages the environment as a track and exports it as a .track file. | + +## asset_preparation_api/environment/environment_description.proto + +This file describes the messages used to create, edit and manage environments. + +### CreateEnvironmentRequest + +The information required to create an environment. + +| Field | Type | Label | Description | +| ----- | ---- | ----- | ----------- | +| name | google.protobuf.StringValue | | The environment name.
Note: Names must be unique amongst environments.
Note: If no name is defined, a default unique name is automatically set. | +| properties | [EnvironmentProperties](#environmentproperties) | | The environment properties. | + +### CreateEnvironmentResponse + +The identifier of the created environment. + +| Field | Type | Label | Description | +| ----- | ---- | ----- | ----------- | +| identity | [EnvironmentIdentity](#environmentidentity) | | The environment identity.
Returns null in case of failure. | +| status | [asset_preparation.v3.common.Status](#status) | | The feedback status of the creation operation. | + +### DeleteEnvironmentRequest + +The information required to delete an environment. + +| Field | Type | Label | Description | +| ----- | ---- | ----- | ----------- | +| identifier | google.protobuf.Int32Value | | The identifier of the environment to delete. | + +### DeleteEnvironmentResponse + +The response returned when deleting an environment. + +| Field | Type | Label | Description | +| ----- | ---- | ----- | ----------- | +| status | [asset_preparation.v3.common.Status](#status) | | The feedback status of the delete operation. | + +### EnvironmentIdentity + +The full identity of an environment, consisting of an identifier and a name. + +| Field | Type | Label | Description | +| ----- | ---- | ----- | ----------- | +| identifier | int32 | | The environment identifier. | +| name | string | | The environment name. | + +### EnvironmentProperties + +The properties of an environment. + +| Field | Type | Label | Description | +| ----- | ---- | ----- | ----------- | +| scene_tree | google.protobuf.Int32Value | | The identifier of the scene tree referenced in the environment.
Note: The scene tree reference can be removed by setting the value '-1'.
Note: A scene tree reference must be provided before exporting the track. | +| added_skies | [SkyLists](#skylists) | | The identifiers of the skies to add to the environment. | +| removed_skies | [SkyLists](#skylists) | | The identifiers of the skies to remove from the environment. | +| no_active_sky | [asset_preparation.v3.common.Empty](#empty) | | No active sky.
Note: If the active sky is not defined, the first sky added to the environment will be set as active.
If there is no sky in the environment, a default natural sky is created at export and set as active. | +| active_natural_sky | int32 | | The natural sky to set as active. | +| active_hdri_sky | int32 | | The HDRI sky to set as active. | + +### GetEnvironmentRequest + +The information required to examine an environment. + +| Field | Type | Label | Description | +| ----- | ---- | ----- | ----------- | +| identifier | google.protobuf.Int32Value | | The identifier of the environment to examine. | + +### GetEnvironmentResponse + +The information about an environment. + +| Field | Type | Label | Description | +| ----- | ---- | ----- | ----------- | +| identity | [EnvironmentIdentity](#environmentidentity) | | The environment identity. | +| properties | [EnvironmentProperties](#environmentproperties) | | The environment properties. | +| status | [asset_preparation.v3.common.Status](#status) | | The feedback status of the examination operation. | + +### GetTrackChunksRequest + +The information required to export an environment as a stream of track chunks. + +| Field | Type | Label | Description | +| ----- | ---- | ----- | ----------- | +| identifier | google.protobuf.Int32Value | | The identifier of the environment to export. | + +### GetTrackFileRequest + +The information required to export an environment as a track file. + +| Field | Type | Label | Description | +| ----- | ---- | ----- | ----------- | +| identifier | google.protobuf.Int32Value | | The identifier of the environment to export. | +| file_path | string | | The path of the exported file. | +| overwrite | google.protobuf.BoolValue | | Describes whether the file should be overwritten or not.
Default value: `true` | + +### GetTrackFileResponse + +The response returned when exporting an environment as a track file. + +| Field | Type | Label | Description | +| ----- | ---- | ----- | ----------- | +| status | [asset_preparation.v3.common.Status](#status) | | The feedback status of the export operation. | + +### ListEnvironmentsResponse + +The identities of all environments in the collection. + +| Field | Type | Label | Description | +| ----- | ---- | ----- | ----------- | +| environments | [EnvironmentIdentity](#environmentidentity) | repeated | Environment identities. | +| status | [asset_preparation.v3.common.Status](#status) | | The feedback status of the listing operation. | + +### PutEnvironmentFromTrackFileRequest + +The information required to create an environment from an uploaded track file. + +| Field | Type | Label | Description | +| ----- | ---- | ----- | ----------- | +| file_path | string | | The path of the .track file to upload. | +| name_conflict_policy | [asset_preparation.v3.common.ConflictPolicy](#conflictpolicy) | | The policy to follow in case of name conflict with server's objects. | + +### PutEnvironmentFromTrackResponse + +The response returned when uploading a track. + +| Field | Type | Label | Description | +| ----- | ---- | ----- | ----------- | +| identifier | int32 | | The imported environment identifier. | +| status | [asset_preparation.v3.common.Status](#status) | | The feedback status of the upload operation. | + +### SkyLists + +Lists of identifiers for natural skies and HDRI skies. + +| Field | Type | Label | Description | +| ----- | ---- | ----- | ----------- | +| hdri_skies | int32 | repeated | The identifiers of HDRI skies. | +| natural_skies | int32 | repeated | The identifiers of natural skies. | + +### UpdateEnvironmentRequest + +The information required to update an environment. + +| Field | Type | Label | Description | +| ----- | ---- | ----- | ----------- | +| identifier | google.protobuf.Int32Value | | The identifier of the environment to update. | +| name | google.protobuf.StringValue | | The environment name.
Note: Names must be unique amongst environments.
Note: If no name is defined, the name is not updated. | +| properties | [EnvironmentProperties](#environmentproperties) | | The environment properties.
Note: All the properties are optional. | + +### UpdateEnvironmentResponse + +The response returned when updating an environment. + +| Field | Type | Label | Description | +| ----- | ---- | ----- | ----------- | +| status | [asset_preparation.v3.common.Status](#status) | | The feedback status of the update operation. | + +## asset_preparation_api/geometry/geometry.proto + +This file describes the service used to create, edit and manage geometries. + +### GeometryPreparation + +Geometry Preparation Service + +This service is used to create, edit and manage geometries. + +| Method Name | Request Type | Response Type | Description | +| ----------- | ------------ | ------------- | ------------| +| CreateGeometry | [CreateGeometryRequest](#creategeometryrequest) | [CreateGeometryResponse](#creategeometryresponse) | Creates a new geometry with an optional given name and winding order.
Note: Names must be unique amongst geometries.
Returns the identifier of the created geometry. | +| GetGeometry | [GetGeometryRequest](#getgeometryrequest) | [GetGeometryResponse](#getgeometryresponse) | Gets the properties of a geometry, given its identifier.
Returns the geometry properties. | +| ListGeometries | .google.protobuf.Empty | [ListGeometriesResponse](#listgeometriesresponse) | Lists all the created geometries.
Returns the identifiers and names of the geometries. | +| UpdateGeometry | [UpdateGeometryRequest](#updategeometryrequest) | [UpdateGeometryResponse](#updategeometryresponse) | Edits the properties of a geometry, given its identifier.
Note: Names must be unique amongst geometries. | +| DeleteGeometry | [DeleteGeometryRequest](#deletegeometryrequest) | [DeleteGeometryResponse](#deletegeometryresponse) | Deletes a geometry, given its identifier. | +| CreateMaterialPart | [CreateMaterialPartRequest](#creatematerialpartrequest) | [CreateMaterialPartResponse](#creatematerialpartresponse) | Creates a material part as a child of a geometry, given the parent geometry identifier, with optional material part parameters.
Note: Names must be unique amongst sibling material parts.
Returns the identifier of the created material part. | +| GetMaterialPart | [GetMaterialPartRequest](#getmaterialpartrequest) | [GetMaterialPartResponse](#getmaterialpartresponse) | Gets the properties of a material part, given its identifier.
Returns the material part properties. | +| UpdateMaterialPart | [UpdateMaterialPartRequest](#updatematerialpartrequest) | [UpdateMaterialPartResponse](#updatematerialpartresponse) | Edits the properties of a material part, given its identifier.
Note: Names must be unique amongst sibling material parts. | +| DeleteMaterialPart | [DeleteMaterialPartRequest](#deletematerialpartrequest) | [DeleteMaterialPartResponse](#deletematerialpartresponse) | Deletes a material part, given its identifier. | +| PushVertices | [PushVerticesRequest](#pushverticesrequest) stream | [PushVerticesResponse](#pushverticesresponse) | Pushes vertices to a geometry, given a stream of geometry identifiers and vertices to push. | +| PushIndices | [PushIndicesRequest](#pushindicesrequest) stream | [PushIndicesResponse](#pushindicesresponse) | Pushes indices to a geometry, given a stream of geometry identifiers and indices to push.
Note: Indices must reference already pushed vertices. | +| GetGeometryVertices | [GetGeometryVerticesRequest](#getgeometryverticesrequest) | [GetGeometryVerticesResponse](#getgeometryverticesresponse) stream | Gets the vertices of a geometry, given its identifier. | +| GetGeometryIndices | [GetGeometryIndicesRequest](#getgeometryindicesrequest) | [GetGeometryIndicesResponse](#getgeometryindicesresponse) stream | Gets the indices of a geometry, given its identifier. | + +## asset_preparation_api/geometry/geometry_description.proto + +This file describes the messages used to create, edit and manage geometries. + +### CreateGeometryRequest + +The information required to create a geometry. + +| Field | Type | Label | Description | +| ----- | ---- | ----- | ----------- | +| name | google.protobuf.StringValue | | The geometry name.
Note: Names must be unique amongst geometries.
Note: If no name is defined, a default unique name is automatically set. | +| properties | [GeometryProperties](#geometryproperties) | | The properties of a geometry. | + +### CreateGeometryResponse + +The identity of the created geometry. + +| Field | Type | Label | Description | +| ----- | ---- | ----- | ----------- | +| identity | [GeometryIdentity](#geometryidentity) | | The identity of the geometry.
Returns null in case of failure. | +| status | [asset_preparation.v3.common.Status](#status) | | The feedback status of the creation operation. | + +### CreateMaterialPartRequest + +The information required to create a material part under a geometry. + +| Field | Type | Label | Description | +| ----- | ---- | ----- | ----------- | +| geometry_identifier | google.protobuf.Int32Value | | The identifier of the parent geometry. | +| name | google.protobuf.StringValue | | The material part name.
Note: Names must be unique amongst sibling material parts.
Note: If no name is defined, a default unique name is automatically set. | +| properties | [MaterialPartProperties](#materialpartproperties) | | The properties of the material part. | + +### CreateMaterialPartResponse + +The identifier of the created material part. + +| Field | Type | Label | Description | +| ----- | ---- | ----- | ----------- | +| geometry_identifier | google.protobuf.Int32Value | | The identifier of the parent geometry. | +| material_part_identity | [MaterialPartIdentity](#materialpartidentity) | | The identity of the material part.
Returns null in case of failure. | +| status | [asset_preparation.v3.common.Status](#status) | | The feedback status of the creation operation. | + +### DeleteGeometryRequest + +The information required to delete a geometry. + +| Field | Type | Label | Description | +| ----- | ---- | ----- | ----------- | +| identifier | google.protobuf.Int32Value | | The identifier of the geometry to delete. | + +### DeleteGeometryResponse + +The response returned when deleting a geometry. + +| Field | Type | Label | Description | +| ----- | ---- | ----- | ----------- | +| status | [asset_preparation.v3.common.Status](#status) | | The feedback status of the delete operation. | + +### DeleteMaterialPartRequest + +The information required to delete a material part. + +| Field | Type | Label | Description | +| ----- | ---- | ----- | ----------- | +| geometry_identifier | google.protobuf.Int32Value | | The identifier of the parent geometry. | +| material_part_identifier | google.protobuf.Int32Value | | The identifier of the material part. | + +### DeleteMaterialPartResponse + +The response returned when deleting a material part. + +| Field | Type | Label | Description | +| ----- | ---- | ----- | ----------- | +| status | [asset_preparation.v3.common.Status](#status) | | The feedback status of the delete operation. | + +### GeometryIdentity + +The full identity of a geometry, consisting of an identifier and a name. + +| Field | Type | Label | Description | +| ----- | ---- | ----- | ----------- | +| identifier | int32 | | The geometry identifier. | +| name | string | | The geometry name. | + +### GeometryProperties + +The properties of a geometry. + +| Field | Type | Label | Description | +| ----- | ---- | ----- | ----------- | +| winding_order | [WindingOrder](#windingorder) | | The geometry winding order. | +| has_binormals | google.protobuf.BoolValue | | Defines whether the vertices should have binormals defined or not.
Default value: `false` | +| has_tangents | google.protobuf.BoolValue | | Defines whether the vertices should have tangents defined or not.
Default value: `false` | +| uv_count | google.protobuf.Int32Value | | The number of UV coordinates that the vertices should have defined.
Range: [0, 4].
Default value: 0 | + +### GetGeometryIndicesRequest + +The information required to get the geometry indices. + +| Field | Type | Label | Description | +| ----- | ---- | ----- | ----------- | +| identifier | google.protobuf.Int32Value | | The identifier of the geometry. | + +### GetGeometryIndicesResponse + +The information about the geometry indices. + +| Field | Type | Label | Description | +| ----- | ---- | ----- | ----------- | +| indices | int32 | repeated | The indices of the geometry. | +| status | [asset_preparation.v3.common.Status](#status) | | The feedback status of the get indices operation. | + +### GetGeometryRequest + +The information required to examine a geometry. + +| Field | Type | Label | Description | +| ----- | ---- | ----- | ----------- | +| identifier | google.protobuf.Int32Value | | The identifier of the geometry to examine. | + +### GetGeometryResponse + +The information about a geometry. + +| Field | Type | Label | Description | +| ----- | ---- | ----- | ----------- | +| identity | [GeometryIdentity](#geometryidentity) | | The identity of the geometry. | +| properties | [GeometryProperties](#geometryproperties) | | The geometry properties. | +| material_parts | [MaterialPartIdentity](#materialpartidentity) | repeated | The identities of the material parts composing the geometry. | +| status | [asset_preparation.v3.common.Status](#status) | | The feedback status of the examination operation. | + +### GetGeometryVerticesRequest + +The information required to get the geometry vertices. + +| Field | Type | Label | Description | +| ----- | ---- | ----- | ----------- | +| identifier | google.protobuf.Int32Value | | The identifier of the geometry. | + +### GetGeometryVerticesResponse + +The information about the geometry vertices. + +| Field | Type | Label | Description | +| ----- | ---- | ----- | ----------- | +| vertices | [Vertex](#vertex) | repeated | The vertices of the geometry. | +| status | [asset_preparation.v3.common.Status](#status) | | The feedback status of the get vertices operation. | + +### GetMaterialPartRequest + +The information required to examine a material part. + +| Field | Type | Label | Description | +| ----- | ---- | ----- | ----------- | +| identifier | google.protobuf.Int32Value | | The identifier of the material part to examine. | + +### GetMaterialPartResponse + +The information about a material part. + +| Field | Type | Label | Description | +| ----- | ---- | ----- | ----------- | +| identity | [MaterialPartIdentity](#materialpartidentity) | | The identity of the material part. | +| properties | [MaterialPartProperties](#materialpartproperties) | | The material part properties. | +| status | [asset_preparation.v3.common.Status](#status) | | The feedback status of the examination operation. | + +### ListGeometriesResponse + +The identities of all geometries in the collection. + +| Field | Type | Label | Description | +| ----- | ---- | ----- | ----------- | +| geometries | [GeometryIdentity](#geometryidentity) | repeated | Geometry identities. | +| status | [asset_preparation.v3.common.Status](#status) | | The feedback status of the listing operation. | + +### MaterialPartIdentity + +The full identity of a material part, consisting of an identifier and a name. + +| Field | Type | Label | Description | +| ----- | ---- | ----- | ----------- | +| identifier | int32 | | The material part identifier. | +| name | string | | The material part name. | + +### MaterialPartProperties + +The properties of the material part. + +| Field | Type | Label | Description | +| ----- | ---- | ----- | ----------- | +| transparency_mode | [TransparencyMode](#transparencymode) | | The material part transparency mode. | +| surface_source_identifier | google.protobuf.Int32Value | | The identifier of the surface source.
Note: Optional field.
Note: The surface source reference can be removed by setting the value '-1'. | +| material_identifier | google.protobuf.Int32Value | | The identifier of the material.
Note: The material reference can be removed by setting the value '-1' and the default material is applied in this case. | +| start_index | google.protobuf.Int32Value | | The position of the first index from the indices array to reference vertices where the associated material should be applied. | +| indices_count | google.protobuf.Int32Value | | The number of indices from the indices array to reference vertices where the associated material should be applied. | +| temperature_variation_texture_identifier | google.protobuf.Int32Value | | The identifier of the temperature variation texture.
Note: Optional field.
Note: The temperature variation texture reference can be removed by setting the value '-1'. | +| temperature_variation_uv_channel | google.protobuf.Int32Value | | The temperature variation UV channel.
Note: Must be 1, 2, 3 or 4.
Default value: 1 | +| temperature_variation_amplitude | google.protobuf.DoubleValue | | The temperature variation amplitude.
Unit: Degree
Range: [0,2000]
Default value: 0
Note: If the temperature variation texture is not defined, the amplitude will be ignored. | +| removed_tags | [asset_preparation.v3.common.TagIdentity](#tagidentity) | repeated | Tag(s) to remove from the material part. | +| added_tags | [asset_preparation.v3.common.Tag](#tag) | repeated | Tag(s) to add to the material part.
Note: Only LightingType Tags are allowed. | + +### PushIndicesRequest + +The information required to push indices to a geometry. The recommended size of the request is in range 256kB to 1MB. + +| Field | Type | Label | Description | +| ----- | ---- | ----- | ----------- | +| geometry_identifier | google.protobuf.Int32Value | | The identifier of the geometry. | +| indices | int32 | repeated | The indices to push in the geometry. | + +### PushIndicesResponse + +The response returned when pushing indices to a geometry. + +| Field | Type | Label | Description | +| ----- | ---- | ----- | ----------- | +| status | [asset_preparation.v3.common.Status](#status) | | The feedback status of the push operation. | + +### PushVerticesRequest + +The information required to push vertices to a geometry. The recommended size of the request is in range 256kB to 1MB. + +| Field | Type | Label | Description | +| ----- | ---- | ----- | ----------- | +| geometry_identifier | google.protobuf.Int32Value | | The identifier of the geometry. | +| vertices | [Vertex](#vertex) | repeated | The vertices to push in the geometry. | + +### PushVerticesResponse + +The response returned when pushing vertices to a geometry. + +| Field | Type | Label | Description | +| ----- | ---- | ----- | ----------- | +| status | [asset_preparation.v3.common.Status](#status) | | The feedback status of the push operation. | + +### UpdateGeometryRequest + +The information required to update a geometry. + +| Field | Type | Label | Description | +| ----- | ---- | ----- | ----------- | +| identifier | google.protobuf.Int32Value | | The identifier of the geometry to update. | +| name | google.protobuf.StringValue | | The geometry name.
Note: Names must be unique amongst geometries.
Note: If no name is defined, the name is not updated. | +| properties | [GeometryProperties](#geometryproperties) | | The geometry properties.
Note: All the properties are optional. | + +### UpdateGeometryResponse + +The response returned when updating a geometry. + +| Field | Type | Label | Description | +| ----- | ---- | ----- | ----------- | +| status | [asset_preparation.v3.common.Status](#status) | | The feedback status of the update operation. | + +### UpdateMaterialPartRequest + +The information required to update a material part. + +| Field | Type | Label | Description | +| ----- | ---- | ----- | ----------- | +| geometry_identifier | google.protobuf.Int32Value | | The identifier of the parent geometry. | +| material_part_identifier | google.protobuf.Int32Value | | The identifier of the material part. | +| name | google.protobuf.StringValue | | The material part name.
Note: Names must be unique amongst sibling material parts.
Note: If no name is defined, the name is not updated. | +| properties | [MaterialPartProperties](#materialpartproperties) | | The material part properties.
Note: All the properties are optional. | + +### UpdateMaterialPartResponse + +The response returned when updating a material part. + +| Field | Type | Label | Description | +| ----- | ---- | ----- | ----------- | +| status | [asset_preparation.v3.common.Status](#status) | | The feedback status of the update operation. | + +### UvCoordinates + +The UV coordinates. + +| Field | Type | Label | Description | +| ----- | ---- | ----- | ----------- | +| x | google.protobuf.DoubleValue | | Coordinate along the X axis. | +| y | google.protobuf.DoubleValue | | Coordinate along the Y axis. | + +### Vertex + +The properties of a vertex. + +Note: The X, Y and Z coordinates of the binormals are required only when `has_binormals` is set to `true`. + +Note: The X, Y and Z coordinates of the tangents are required only when `has_tangents` is set to `true`. + +| Field | Type | Label | Description | +| ----- | ---- | ----- | ----------- | +| x_position | google.protobuf.DoubleValue | | The position of the vertex along the X axis.
Unit: Meter | +| y_position | google.protobuf.DoubleValue | | The position of the vertex along the Y axis.
Unit: Meter | +| z_position | google.protobuf.DoubleValue | | The position of the vertex along the Z axis.
Unit: Meter | +| x_normal | google.protobuf.DoubleValue | | The X-coordinate of the normal of the vertex.
Unit: Meter | +| y_normal | google.protobuf.DoubleValue | | The Y-coordinate of the normal of the vertex.
Unit: Meter | +| z_normal | google.protobuf.DoubleValue | | The Z-coordinate of the normal of the vertex.
Unit: Meter | +| x_binormal | google.protobuf.DoubleValue | | The X-coordinate of the binormal of the vertex.
Unit: Meter
Note: Required only when `has_binormals` is set to `true`. | +| y_binormal | google.protobuf.DoubleValue | | The Y-coordinate of the binormal of the vertex.
Unit: Meter
Note: Required only when `has_binormals` is set to `true`. | +| z_binormal | google.protobuf.DoubleValue | | The Z-coordinate of the binormal of the vertex.
Unit: Meter
Note: Required only when `has_binormals` is set to `true`. | +| x_tangent | google.protobuf.DoubleValue | | The X-coordinate of the tangent of the vertex.
Unit: Meter
Note: Required only when `has_tangents` is set to `true`. | +| y_tangent | google.protobuf.DoubleValue | | The Y-coordinate of the tangent of the vertex.
Unit: Meter
Note: Required only when `has_tangents` is set to `true`. | +| z_tangent | google.protobuf.DoubleValue | | The Z-coordinate of the tangent of the vertex.
Unit: Meter
Note: Required only when `has_tangents` is set to `true`. | +| uv_coordinates | [UvCoordinates](#uvcoordinates) | repeated | The UV coordinates for each UV layer defined for the vertex. | +| ambient_occlusion | google.protobuf.DoubleValue | | The ambient occlusion of the vertex. | + +### TransparencyMode + +Transparency mode of a material part. + +| Name | Number | Description | +| ---- | ------ | ----------- | +| TRANSPARENCY_MODE_UNSPECIFIED | 0 | Unspecified transparency mode. | +| TRANSPARENCY_MODE_OPAQUE | 1 | The material part is opaque. | +| TRANSPARENCY_MODE_WITH_HOLES | 2 | The material part contains holes. | +| TRANSPARENCY_MODE_SEMI_TRANSPARENT | 3 | The material part is semi-transparent. | + +### WindingOrder + +Winding order of the vertices inside a geometry. + +| Name | Number | Description | +| ---- | ------ | ----------- | +| WINDING_ORDER_UNSPECIFIED | 0 | Unspecified winding order. | +| WINDING_ORDER_DOUBLE_SIDED | 1 | For double-sided meshes. | +| WINDING_ORDER_CLOCKWISE | 2 | Vertices are ordered clockwise. | +| WINDING_ORDER_COUNTER_CLOCKWISE | 3 | Vertices are ordered counter-clockwise. | + +## asset_preparation_api/hdriSky/hdri_sky.proto + +This file describes the service used to create, edit and manage HDRI skies. + +### HdriSkyPreparation + +HDRI Sky Preparation Service + +This service is used to create, edit and manage HDRI skies. + +| Method Name | Request Type | Response Type | Description | +| ----------- | ------------ | ------------- | ------------| +| CreateHdriSky | [CreateHdriSkyRequest](#createhdriskyrequest) | [CreateHdriSkyResponse](#createhdriskyresponse) | Creates a new HDRI sky with an optional name.
Note: Names must be unique amongst skies.
Note: If unspecified, default values are used.
Returns the identifier of the created HDRI sky. | +| GetHdriSky | [GetHdriSkyRequest](#gethdriskyrequest) | [GetHdriSkyResponse](#gethdriskyresponse) | Gets the properties of an HDRI sky, given its identifier.
Returns the HDRI sky properties. | +| ListHdriSkies | .google.protobuf.Empty | [ListHdriSkiesResponse](#listhdriskiesresponse) | Lists all the created HDRI skies.
Returns the identifiers and names of the HDRI skies. | +| UpdateHdriSky | [UpdateHdriSkyRequest](#updatehdriskyrequest) | [UpdateHdriSkyResponse](#updatehdriskyresponse) | Edits the properties of an HDRI sky, given its identifier.
Note: Names must be unique amongst skies. | +| DeleteHdriSky | [DeleteHdriSkyRequest](#deletehdriskyrequest) | [DeleteHdriSkyResponse](#deletehdriskyresponse) | Deletes an HDRI sky, given its identifier.
Note: If you delete an HDRI sky that is set as the `active_sky` in an environment, the environment is updated with the default sky set as the active sky. | +| CreateHdriSkyState | [CreateHdriSkyStateRequest](#createhdriskystaterequest) | [CreateHdriSkyStateResponse](#createhdriskystateresponse) | Creates a new HDRI sky state with optional properties.
Note: Names must be unique amongst sibling states.
Note: "Default" name is reserved.
Note: If some properties are not specified, default values are used.
Returns the information about the created HDRI sky state. | +| GetHdriSkyState | [GetHdriSkyStateRequest](#gethdriskystaterequest) | [GetHdriSkyStateResponse](#gethdriskystateresponse) | Gets the properties of an HDRI sky state, given the parent HDRI sky identifier and the state name.
Returns the HDRI sky state properties. | +| UpdateHdriSkyState | [UpdateHdriSkyStateRequest](#updatehdriskystaterequest) | [UpdateHdriSkyStateResponse](#updatehdriskystateresponse) | Edits the properties of a state, given the parent HDRI sky identifier and the state name.
Note: Names must be unique amongst sibling states.
Note: "Default" name is reserved. | +| DeleteHdriSkyState | [DeleteHdriSkyStateRequest](#deletehdriskystaterequest) | [DeleteHdriSkyStateResponse](#deletehdriskystateresponse) | Deletes an HDRI sky state, given the parent HDRI sky identifier and the state name. | + +## asset_preparation_api/hdriSky/hdri_sky_description.proto + +This file describes the messages used to create, edit and manage HDRI skies. + +### CreateHdriSkyRequest + +The information required to create an HDRI sky. + +| Field | Type | Label | Description | +| ----- | ---- | ----- | ----------- | +| name | google.protobuf.StringValue | | The HDRI sky name.
Note: Names must be unique amongst skies.
Note: If no name is defined, a default unique name is automatically set. | +| properties | [HdriSkyProperties](#hdriskyproperties) | | The HDRI sky properties. | + +### CreateHdriSkyResponse + +The identifier of the created HDRI sky. + +| Field | Type | Label | Description | +| ----- | ---- | ----- | ----------- | +| identity | [HdriSkyIdentity](#hdriskyidentity) | | The identity of an HDRI sky.
Returns null in case of failure. | +| status | [asset_preparation.v3.common.Status](#status) | | The feedback status of the creation operation. | + +### CreateHdriSkyStateRequest + +The information required to create an HDRI sky state. + +| Field | Type | Label | Description | +| ----- | ---- | ----- | ----------- | +| identifier | google.protobuf.Int32Value | | The HDRI sky identifier. | +| state_name | string | | The state name.
Note: Names must be unique amongst sibling HDRI sky states.
Note: "Default" name is reserved. | +| base_state_name | google.protobuf.StringValue | | The name of an already existing state on which will be based the state to create.
Note: If not defined, the HDRI sky properties are used. | +| state_properties | [HdriSkyProperties](#hdriskyproperties) | | The state properties. | + +### CreateHdriSkyStateResponse + +The response returned when creating an HDRI sky state. + +| Field | Type | Label | Description | +| ----- | ---- | ----- | ----------- | +| identifier | int32 | | The HDRI sky identifier. | +| state_name | string | | The new state name. | +| status | [asset_preparation.v3.common.Status](#status) | | The feedback status of the creation operation. | + +### DeleteHdriSkyRequest + +The information required to delete an HDRI sky. + +| Field | Type | Label | Description | +| ----- | ---- | ----- | ----------- | +| identifier | google.protobuf.Int32Value | | The identifier of the HDRI sky to delete. | + +### DeleteHdriSkyResponse + +The response returned when deleting an HDRI sky. + +| Field | Type | Label | Description | +| ----- | ---- | ----- | ----------- | +| status | [asset_preparation.v3.common.Status](#status) | | The feedback status of the delete operation. | + +### DeleteHdriSkyStateRequest + +The information required to delete an HDRI sky state. + +| Field | Type | Label | Description | +| ----- | ---- | ----- | ----------- | +| identifier | google.protobuf.Int32Value | | The HDRI sky identifier. | +| state_name | string | | The name of the state to delete. | + +### DeleteHdriSkyStateResponse + +The response returned when deleting an HDRI sky state. + +| Field | Type | Label | Description | +| ----- | ---- | ----- | ----------- | +| status | [asset_preparation.v3.common.Status](#status) | | The feedback status of the delete operation. | + +### GetHdriSkyRequest + +The information required to examine an HDRI sky. + +| Field | Type | Label | Description | +| ----- | ---- | ----- | ----------- | +| identifier | google.protobuf.Int32Value | | The identifier of the HDRI sky to examine. | + +### GetHdriSkyResponse + +The information about an HDRI sky. + +| Field | Type | Label | Description | +| ----- | ---- | ----- | ----------- | +| identity | [HdriSkyIdentity](#hdriskyidentity) | | The HDRI sky identity. | +| properties | [HdriSkyProperties](#hdriskyproperties) | | The HDRI sky properties. | +| state_names | string | repeated | The names of the HDRI sky states. | +| status | [asset_preparation.v3.common.Status](#status) | | The feedback status of the examination operation. | + +### GetHdriSkyStateRequest + +The information required to examine a state. + +| Field | Type | Label | Description | +| ----- | ---- | ----- | ----------- | +| identifier | google.protobuf.Int32Value | | The identifier of the HDRI sky. | +| state_name | string | | The name of the state to examine. | + +### GetHdriSkyStateResponse + +The information about an HDRI sky state. + +| Field | Type | Label | Description | +| ----- | ---- | ----- | ----------- | +| identifier | int32 | | The identifier of the examined HDRI sky. | +| state_name | string | | The state name. | +| state_properties | [HdriSkyProperties](#hdriskyproperties) | | The properties of the examined state. | +| status | [asset_preparation.v3.common.Status](#status) | | The feedback status of the reading operation. | + +### HdriSkyIdentity + +The full identity of an HDRI sky, consisting of an identifier and a name. + +| Field | Type | Label | Description | +| ----- | ---- | ----- | ----------- | +| identifier | int32 | | The HDRI sky identifier. | +| name | string | | The HDRI sky name. | + +### HdriSkyProperties + +The properties of an HDRI sky. + +| Field | Type | Label | Description | +| ----- | ---- | ----- | ----------- | +| texture_identifier | google.protobuf.Int32Value | | The identifier of the texture (created using the Resource service) referenced in the HDRI sky.
Note: The texture reference can be removed by setting the value '-1'.
Note: The identifier must reference a texture with ".hdr" extension. | +| projection_type | [ProjectionType](#projectiontype) | | The type of projection.
Default value: `SPHERE` | +| ground_radius | google.protobuf.DoubleValue | | The radius of the virtual ground.
Note: Must be equal or superior to 0.
Default value: 0 | +| orientation | google.protobuf.DoubleValue | | The HDRI sky orientation.
Unit: Degree
Range: [0,359]
Default value: 0 | +| luminance_factor | google.protobuf.DoubleValue | | The luminance factor applied to the HDRI texture.
Note: Must be equal or superior to 0.
Default value: 1 | +| ambient_factor | google.protobuf.DoubleValue | | The ambient factor for opaque objects in Shadics rendering engine.
Note: Must be equal or superior to 0.
Default value: 1 | + +### ListHdriSkiesResponse + +The identities of all HDRI skies in the collection. + +| Field | Type | Label | Description | +| ----- | ---- | ----- | ----------- | +| skies | [HdriSkyIdentity](#hdriskyidentity) | repeated | HDRI sky identities. | +| status | [asset_preparation.v3.common.Status](#status) | | The feedback status of the listing operation. | + +### UpdateHdriSkyRequest + +The information required to update an HDRI sky. + +| Field | Type | Label | Description | +| ----- | ---- | ----- | ----------- | +| identifier | google.protobuf.Int32Value | | The identifier of the HDRI sky to update. | +| name | google.protobuf.StringValue | | The new HDRI sky name.
Note: Names must be unique amongst skies.
Note: If no name is defined, the name is not updated. | +| properties | [HdriSkyProperties](#hdriskyproperties) | | The HDRI sky properties.
Note: All the properties are optional. | + +### UpdateHdriSkyResponse + +The response returned when updating an HDRI sky. + +| Field | Type | Label | Description | +| ----- | ---- | ----- | ----------- | +| status | [asset_preparation.v3.common.Status](#status) | | The feedback status of the update operation. | + +### UpdateHdriSkyStateRequest + +The information required to update an HDRI sky state. + +| Field | Type | Label | Description | +| ----- | ---- | ----- | ----------- | +| identifier | google.protobuf.Int32Value | | The HDRI sky identifier. | +| state_name | string | | The current name of the state. | +| state_new_name | google.protobuf.StringValue | | The new name of the state.
Note: Names must be unique amongst sibling HDRI sky states.
Note: "Default" name is reserved.
Note: If no name is defined, the name is not updated. | +| state_properties | [HdriSkyProperties](#hdriskyproperties) | | The new state properties. | + +### UpdateHdriSkyStateResponse + +The response returned when updating an HDRI sky state. + +| Field | Type | Label | Description | +| ----- | ---- | ----- | ----------- | +| state_name | string | | The state name. | +| status | [asset_preparation.v3.common.Status](#status) | | The feedback status of the update operation. | + +### ProjectionType + +The type of projection. + +| Name | Number | Description | +| ---- | ------ | ----------- | +| PROJECTION_TYPE_UNSPECIFIED | 0 | Unspecified projection type. | +| PROJECTION_TYPE_SPHERE | 1 | The sphere projection. | +| PROJECTION_TYPE_DOME | 2 | The dome projection. | + +## asset_preparation_api/information/health.proto + +This file describes the Asset Preparation API services' health. + +### GetHealthResponse + +This message describes the health response. + +| Field | Type | Label | Description | +| ----- | ---- | ----- | ----------- | +| is_healthy | bool | | Defines whether the server is healthy or not. | + +## asset_preparation_api/information/information.proto + +This file describes the service used to check the Asset Preparation API services' health. + +### Information + +Information Service + +This service is used to get information about the API services. + +| Method Name | Request Type | Response Type | Description | +| ----------- | ------------ | ------------- | ------------| +| GetHealth | .google.protobuf.Empty | [GetHealthResponse](#gethealthresponse) | Tests if the server is healthy.
Note: Checks that all repositories are available for all services to work correctly. | + +## asset_preparation_api/material/material.proto + +This file describes the service used to create, edit and manage materials. + +### MaterialPreparation + +Material Preparation Service + +This service is used to create, edit and manage materials. + +| Method Name | Request Type | Response Type | Description | +| ----------- | ------------ | ------------- | ------------| +| CreateMaterial | [CreateMaterialRequest](#creatematerialrequest) | [CreateMaterialResponse](#creatematerialresponse) | Creates a new material with optional properties.
Note: Names must be unique amongst materials.
Note: If some properties are not specified, default values are used and no dielectric properties are defined.
Returns the information about the created material. | +| GetMaterial | [GetMaterialRequest](#getmaterialrequest) | [GetMaterialResponse](#getmaterialresponse) | Gets the properties of a material, given its identifier.
Returns the material properties. | +| ListMaterials | .google.protobuf.Empty | [ListMaterialsResponse](#listmaterialsresponse) | Lists all the stored materials.
Returns the identifiers and names of the stored materials. | +| UpdateMaterial | [UpdateMaterialRequest](#updatematerialrequest) | [UpdateMaterialResponse](#updatematerialresponse) | Edits the properties of a material, given its identifier.
Note: Names must be unique amongst materials. | +| DeleteMaterial | [DeleteMaterialRequest](#deletematerialrequest) | [DeleteMaterialResponse](#deletematerialresponse) | Deletes a material, given its identifier. | +| CreateMaterialState | [CreateMaterialStateRequest](#creatematerialstaterequest) | [CreateMaterialStateResponse](#creatematerialstateresponse) | Creates a new material state with optional properties.
Note: Names must be unique amongst sibling material states.
Note: "Default" name is reserved.
Note: If some properties are not specified, default values are used and no dielectric properties are defined.
Returns the information about the created material state. | +| GetMaterialState | [GetMaterialStateRequest](#getmaterialstaterequest) | [GetMaterialStateResponse](#getmaterialstateresponse) | Gets the properties of a material state, given the parent material identifier and the state name.
Returns the material state properties. | +| UpdateMaterialState | [UpdateMaterialStateRequest](#updatematerialstaterequest) | [UpdateMaterialStateResponse](#updatematerialstateresponse) | Edits the properties of a state, given the parent material identifier and the state name.
Note: Names must be unique amongst sibling material states.
Note: "Default" name is reserved. | +| DeleteMaterialState | [DeleteMaterialStateRequest](#deletematerialstaterequest) | [DeleteMaterialStateResponse](#deletematerialstateresponse) | Deletes a material state, given the parent material identifier and the state name. | + +## asset_preparation_api/material/material_description.proto + +This file describes the messages used to create, edit and manage materials. + +### AnisotropyProperties + +The anisotropy properties of a material. + +| Field | Type | Label | Description | +| ----- | ---- | ----- | ----------- | +| no_anisotropy | [asset_preparation.v3.common.Empty](#empty) | | No anisotropy.
Note: This is the default anisotropy contribution type. | +| texture | [AnisotropyTexture](#anisotropytexture) | | Anisotropy based on an anisotropic tangent map file. | +| color | [GreyLevel](#greylevel) | | Anisotropy based on a color, in grey level. | + +### AnisotropyTexture + +The texture properties of an anisotropy. + +| Field | Type | Label | Description | +| ----- | ---- | ----- | ----------- | +| map_identifier | google.protobuf.Int32Value | | The identifier of the anisotropy map referenced in the material.
Note: The anisotropy map reference can be removed by setting the value '-1'. | +| map_uv_channel | google.protobuf.Int32Value | | The anisotropy map UV channel.
Note: Must be 1, 2, 3 or 4.
Default value: 1 | + +### CreateMaterialRequest + +The information required to create a material. + +| Field | Type | Label | Description | +| ----- | ---- | ----- | ----------- | +| name | google.protobuf.StringValue | | The material name.
Note: Names must be unique amongst materials.
Note: If no name is defined, a default unique name is automatically set. | +| properties | [MaterialProperties](#materialproperties) | | The properties of a material.
Note: If no properties are defined, the default properties are automatically set. | + +### CreateMaterialResponse + +The identifier of the created material. + +| Field | Type | Label | Description | +| ----- | ---- | ----- | ----------- | +| identity | [MaterialIdentity](#materialidentity) | | The new material identity.
Returns null in case of failure. | +| status | [asset_preparation.v3.common.Status](#status) | | The feedback status of the creation operation. | + +### CreateMaterialStateRequest + +The information required to create a material state. + +| Field | Type | Label | Description | +| ----- | ---- | ----- | ----------- | +| identifier | google.protobuf.Int32Value | | The material identifier. | +| state_name | string | | The state name.
Note: Names must be unique amongst sibling material states.
Note: "Default" name is reserved. | +| base_state_name | google.protobuf.StringValue | | The name of an already existing state on which will be based the state to create.
Note: If not defined, the material properties are used. | +| state_properties | [MaterialProperties](#materialproperties) | | The state properties. | + +### CreateMaterialStateResponse + +The response returned when creating a material state. + +| Field | Type | Label | Description | +| ----- | ---- | ----- | ----------- | +| identifier | int32 | | The material identifier. | +| state_name | string | | The new state name. | +| status | [asset_preparation.v3.common.Status](#status) | | The feedback status of the creation operation. | + +### DeleteMaterialRequest + +The information required to delete a material. + +| Field | Type | Label | Description | +| ----- | ---- | ----- | ----------- | +| identifier | google.protobuf.Int32Value | | The identifier of the material to delete. | + +### DeleteMaterialResponse + +The response returned when deleting a material. + +| Field | Type | Label | Description | +| ----- | ---- | ----- | ----------- | +| status | [asset_preparation.v3.common.Status](#status) | | The feedback status of the delete operation. | + +### DeleteMaterialStateRequest + +The information required to delete a material state. + +| Field | Type | Label | Description | +| ----- | ---- | ----- | ----------- | +| identifier | google.protobuf.Int32Value | | The material identifier. | +| state_name | string | | The name of the state to delete. | + +### DeleteMaterialStateResponse + +The response returned when deleting a material state. + +| Field | Type | Label | Description | +| ----- | ---- | ----- | ----------- | +| status | [asset_preparation.v3.common.Status](#status) | | The feedback status of the delete operation. | + +### DielectricProperties + +The dielectric properties of a material. + +| Field | Type | Label | Description | +| ----- | ---- | ----- | ----------- | +| dielectric_material_identifier | google.protobuf.Int32Value | | The identifier of the dielectric material referenced in the material.
Note: The dielectric material reference can be removed by setting the value '-1'. | + +### DiffuseProperties + +The diffuse properties of a material. + +| Field | Type | Label | Description | +| ----- | ---- | ----- | ----------- | +| color_rgb | [Rgb](#rgb) | | Diffuse based on a RGB color. | +| color_hsv | [Hsv](#hsv) | | Diffuse based on an HSV color. | +| texture | [DiffuseTexture](#diffusetexture) | | Diffuse based on a diffuse map file.
Note: This is the default diffuse contribution type. | + +### DiffuseTexture + +Texture properties for diffuse contribution. + +| Field | Type | Label | Description | +| ----- | ---- | ----- | ----------- | +| map_identifier | google.protobuf.Int32Value | | The identifier of the diffuse map referenced in the material.
Note: The diffuse map reference can be removed by setting the value '-1'. | +| map_uv_channel | google.protobuf.Int32Value | | The diffuse map UV channel.
Note: Must be 1, 2, 3 or 4.
Default value: 1 | +| alpha_uv_channel | google.protobuf.Int32Value | | The diffuse alpha map UV channel.
Note: Must be 1, 2, 3 or 4.
Default value: 1
Note: It can be set only for layer 1. | + +### GetMaterialRequest + +The information required to examine a material. + +| Field | Type | Label | Description | +| ----- | ---- | ----- | ----------- | +| identifier | google.protobuf.Int32Value | | The identifier of the material to examine. | + +### GetMaterialResponse + +The information about a material. + +| Field | Type | Label | Description | +| ----- | ---- | ----- | ----------- | +| identity | [MaterialIdentity](#materialidentity) | | The material identity. | +| properties | [MaterialProperties](#materialproperties) | | The material properties. | +| state_names | string | repeated | The names of the material states. | +| status | [asset_preparation.v3.common.Status](#status) | | The feedback status of the examination operation. | + +### GetMaterialStateRequest + +The information required to examine a state. + +| Field | Type | Label | Description | +| ----- | ---- | ----- | ----------- | +| identifier | google.protobuf.Int32Value | | The identifier of the material. | +| state_name | string | | The name of the state to examine. | + +### GetMaterialStateResponse + +The information about a material state. + +| Field | Type | Label | Description | +| ----- | ---- | ----- | ----------- | +| identifier | int32 | | The identifier of the examined material. | +| state_name | string | | The state name. | +| state_properties | [MaterialProperties](#materialproperties) | | The properties of the examined state. | +| status | [asset_preparation.v3.common.Status](#status) | | The feedback status of the reading operation. | + +### GreyLevel + +Grey level value. + +Note: Default value is 128. + +| Field | Type | Label | Description | +| ----- | ---- | ----- | ----------- | +| level | int32 | | Range [0,255] | + +### Hsv + +HSV value of a color. + +Note: Default value is (0,0,50). + +| Field | Type | Label | Description | +| ----- | ---- | ----- | ----------- | +| hue | double | | Hue
Unit: Degree
Range: [0,360] | +| saturation | double | | Intensity
Range: [0,100] | +| value | double | | Value
Range: [0,100] | + +### LambertianLayer + +The properties of the lambertian layer. + +| Field | Type | Label | Description | +| ----- | ---- | ----- | ----------- | +| absorption | google.protobuf.DoubleValue | | The Lambertian absorption.
Unit: Percentage (%)
Range: [0,100]
Default value: 0 | +| diffuse_properties | [DiffuseProperties](#diffuseproperties) | | The diffuse properties. | +| normal_properties | [NormalProperties](#normalproperties) | | The normal properties. | +| anisotropy_properties | [AnisotropyProperties](#anisotropyproperties) | | The anisotropy properties. | +| mask_properties | [MaskProperties](#maskproperties) | | The Mask properties.
Note: Layer 1 must not contain a Mask. | + +### Layer + +The layer properties of a material. + +| Field | Type | Label | Description | +| ----- | ---- | ----- | ----------- | +| no_layer | [asset_preparation.v3.common.Empty](#empty) | | No layer.
Note: This is the default type for layer 2 and layer 3. | +| lambertian_layer | [LambertianLayer](#lambertianlayer) | | Lambertian layer type.
Note: This is the default type for layer 1. | +| mirror_layer | [MirrorLayer](#mirrorlayer) | | Mirror layer type. | +| optical_polish_layer | [OpticalPolishLayer](#opticalpolishlayer) | | Optical polish layer type. | +| library_layer | [LibraryLayer](#librarylayer) | | Library layer type. | +| rendering_layer | [RenderingLayer](#renderinglayer) | | Rendering layer type. | + +### LibraryLayer + +The properties of the library layer. + +| Field | Type | Label | Description | +| ----- | ---- | ----- | ----------- | +| surface_state_identifier | google.protobuf.Int32Value | | The identifier of the surface state referenced in the material.
Note: The surface state reference can be removed by setting the value '-1'. | +| diffuse_properties | [DiffuseProperties](#diffuseproperties) | | The diffuse properties. | +| normal_properties | [NormalProperties](#normalproperties) | | The normal properties. | +| anisotropy_properties | [AnisotropyProperties](#anisotropyproperties) | | The anisotropy properties. | +| mask_properties | [MaskProperties](#maskproperties) | | The Mask properties.
Note: Layer 1 must not contain a Mask. | + +### LibraryVolumeOpticalProperties + +The library volume optical properties of a material. + +| Field | Type | Label | Description | +| ----- | ---- | ----- | ----------- | +| volume_material_identifier | google.protobuf.Int32Value | | The identifier of the volume material referenced in the material.
Note: The volume material reference can be removed by setting the value '-1'. | + +### ListMaterialsResponse + +The identities of all materials in the collection. + +| Field | Type | Label | Description | +| ----- | ---- | ----- | ----------- | +| materials | [MaterialIdentity](#materialidentity) | repeated | Material identities. | +| status | [asset_preparation.v3.common.Status](#status) | | The feedback status of the listing operation. | + +### MaskProperties + +The mask properties of a material. + +Note: No mask properties should be set for layer 1. + +| Field | Type | Label | Description | +| ----- | ---- | ----- | ----------- | +| color | [GreyLevel](#greylevel) | | Mask based on a color in grey level. | +| texture | [MaskTexture](#masktexture) | | Mask based on a texture file.
Note: This is the default mask contribution type. | + +### MaskTexture + +Texture properties for mask. + +| Field | Type | Label | Description | +| ----- | ---- | ----- | ----------- | +| map_identifier | google.protobuf.Int32Value | | The identifier of the mask map referenced in the material.
Note: The mask map reference can be removed by setting the value '-1'. | +| map_uv_channel | google.protobuf.Int32Value | | The mask map UV channel.
Note: Must be 1, 2, 3 or 4.
Default value: 1 | + +### MaterialIdentity + +The full identity of a material, consisting of an identifier and a name. + +| Field | Type | Label | Description | +| ----- | ---- | ----- | ----------- | +| identifier | int32 | | The material identifier. | +| name | string | | The material name. | + +### MaterialProperties + +The properties of a material. + +| Field | Type | Label | Description | +| ----- | ---- | ----- | ----------- | +| surface_optical_properties | [SurfaceOpticalProperties](#surfaceopticalproperties) | | The surface optical properties. | +| volume_optical_properties | [VolumeOpticalProperties](#volumeopticalproperties) | | The volume optical properties. | +| thermal_properties | [ThermalProperties](#thermalproperties) | | The thermal properties. | +| dielectric_properties | [DielectricProperties](#dielectricproperties) | | The dielectric properties.
Note: Optional field. | +| reflection_effect | [ReflectionEffectProperties](#reflectioneffectproperties) | | The reflection effect properties. | + +### MirrorLayer + +The properties of the mirror layer. + +| Field | Type | Label | Description | +| ----- | ---- | ----- | ----------- | +| reflectivity | google.protobuf.DoubleValue | | The mirror reflectivity.
Unit: Percentage (%)
Range: [0,100]
Default value: 100 | +| diffuse_properties | [DiffuseProperties](#diffuseproperties) | | The diffuse properties. | +| normal_properties | [NormalProperties](#normalproperties) | | The normal properties. | +| anisotropy_properties | [AnisotropyProperties](#anisotropyproperties) | | The anisotropy properties. | +| mask_properties | [MaskProperties](#maskproperties) | | The Mask properties.
Note: Layer 1 must not contain a Mask. | + +### NormalProperties + +The normal properties of a material. + +| Field | Type | Label | Description | +| ----- | ---- | ----- | ----------- | +| no_normal | [asset_preparation.v3.common.Empty](#empty) | | No normal. | +| texture | [NormalTexture](#normaltexture) | | Normal properties based on a normal map.
Note: This is the default normal contribution type. | + +### NormalTexture + +Texture properties for normal contribution. + +| Field | Type | Label | Description | +| ----- | ---- | ----- | ----------- | +| map_identifier | google.protobuf.Int32Value | | The identifier of the normal map referenced in the material.
Note: The normal map reference can be removed by setting the value '-1'. | +| map_uv_channel | google.protobuf.Int32Value | | The normal map UV channel.
Note: Must be 1, 2, 3 or 4.
Default value: 1 | +| intensity | google.protobuf.DoubleValue | | The normal intensity.
Unit: Percentage (%)
Range: [-100,100]
Default value: 100
Note: If the normal map is not defined, the intensity will be ignored. | + +### Opaque + +The opaque volume optical type. + +### OpticVolumeOpticalProperties + +The optic volume optical properties of a material. + +| Field | Type | Label | Description | +| ----- | ---- | ----- | ----------- | +| absorption | google.protobuf.DoubleValue | | The optical absorption.
Unit: Inverse millimeter (mm-1)
Note: Must be equal or superior to 0.
Default value: 0 | +| refractive_index | google.protobuf.DoubleValue | | The refractive index.
Default value: 1.52 | +| constringency | google.protobuf.DoubleValue | | The constringency.
Range: [20,90]
Default value: 40 | + +### OpticalPolishLayer + +The properties of the optical polish layer. + +| Field | Type | Label | Description | +| ----- | ---- | ----- | ----------- | +| diffuse_properties | [DiffuseProperties](#diffuseproperties) | | The diffuse properties. | +| normal_properties | [NormalProperties](#normalproperties) | | The normal properties. | +| anisotropy_properties | [AnisotropyProperties](#anisotropyproperties) | | The anisotropy properties. | +| mask_properties | [MaskProperties](#maskproperties) | | The Mask properties.
Note: Layer 1 must not contain a Mask. | + +### ReflectionEffect + +The reflection effect properties of a material. + +| Field | Type | Label | Description | +| ----- | ---- | ----- | ----------- | +| reflectivity | google.protobuf.DoubleValue | | The reflection effect reflectivity.
Unit: Percentage (%)
Range: [0,100]
Default value: 100 | +| size | google.protobuf.DoubleValue | | The reflection effect size.
Unit: meter (m)
Default value: 0 | +| index_of_refraction | google.protobuf.DoubleValue | | The index of refraction.
Range: [1,100]
Default value: 1.45 | + +### ReflectionEffectProperties + +The reflection effect properties of a material. + +| Field | Type | Label | Description | +| ----- | ---- | ----- | ----------- | +| no_reflection_effect | [asset_preparation.v3.common.Empty](#empty) | | No reflection effect on material.
Note: This is the default reflection effect contribution type. | +| scene_hdri | [ReflectionEffect](#reflectioneffect) | | Apply a reflection effect that projects an HDRI Sky on the material. | + +### RenderingLayer + +The properties of the rendering layer. + +| Field | Type | Label | Description | +| ----- | ---- | ----- | ----------- | +| specular_properties | [SpecularProperties](#specularproperties) | | The specular properties. | +| roughness_properties | [RoughnessProperties](#roughnessproperties) | | The roughness properties. | +| diffuse_properties | [DiffuseProperties](#diffuseproperties) | | The diffuse properties. | +| normal_properties | [NormalProperties](#normalproperties) | | The normal properties. | +| anisotropy_properties | [AnisotropyProperties](#anisotropyproperties) | | The anisotropy properties. | +| mask_properties | [MaskProperties](#maskproperties) | | The Mask properties.
Note: Layer 1 must not contain a Mask. | + +### Rgb + +RGB value of a color. + +Note: Default value is (128,128,128). + +| Field | Type | Label | Description | +| ----- | ---- | ----- | ----------- | +| red | int32 | | Value for the red component.
Range: [0,255] | +| green | int32 | | Value for the green component.
Range: [0,255] | +| blue | int32 | | Value for the blue component.
Range: [0,255] | + +### RoughnessProperties + +The roughness properties of a material. + +| Field | Type | Label | Description | +| ----- | ---- | ----- | ----------- | +| texture | [RoughnessTexture](#roughnesstexture) | | Roughness texture type.
Note: This is the default roughness contribution type. | +| color | [GreyLevel](#greylevel) | | Color roughness type, in grey level. | + +### RoughnessTexture + +The roughness texture properties. + +| Field | Type | Label | Description | +| ----- | ---- | ----- | ----------- | +| map_identifier | google.protobuf.Int32Value | | The identifier of the roughness map referenced in the material.
Note: The roughness map reference can be removed by setting the value '-1'. | +| map_uv_channel | google.protobuf.Int32Value | | The roughness map UV channel.
Note: Must be 1, 2, 3 or 4.
Default value: 1 | +| intensity | google.protobuf.DoubleValue | | The roughness intensity.
Range: [0,200]
Default value: 100
Note: If the roughness map is not defined, the intensity will be ignored. | + +### SpecularProperties + +The specular properties of a material. + +| Field | Type | Label | Description | +| ----- | ---- | ----- | ----------- | +| color_rgb | [Rgb](#rgb) | | Specular based on a RGB color. | +| color_hsv | [Hsv](#hsv) | | Specular based on an HSV color. | +| texture | [SpecularTexture](#speculartexture) | | Specular based on a specular map file.
Note: This is the default specular contribution type. | + +### SpecularTexture + +Texture properties for specular contribution. + +| Field | Type | Label | Description | +| ----- | ---- | ----- | ----------- | +| map_identifier | google.protobuf.Int32Value | | The identifier of the specular map referenced in the material.
Note: The specular map reference can be removed by setting the value '-1'. | +| map_uv_channel | google.protobuf.Int32Value | | The UV channel.
Note: Must be 1, 2, 3 or 4.
Default value: 1 | +| intensity | google.protobuf.DoubleValue | | The specular intensity.
Range: [0,200]
Default value: 100
Note: If the specular map is not defined, the intensity will be ignored. | + +### SurfaceOpticalProperties + +The surface optical properties of a material. + +| Field | Type | Label | Description | +| ----- | ---- | ----- | ----------- | +| texture_normalization | [TextureNormalization](#texturenormalization) | | Texture normalization type.
Default value: `None` | +| layer_1 | [Layer](#layer) | | The surface optical layers.
Note: Layer 1 is mandatory. Layers 2 and 3 are optional.
Note: Layer 3 must not be set without layer 2. | +| layer_2 | [Layer](#layer) | | | +| layer_3 | [Layer](#layer) | | | + +### ThermalProperties + +The thermal properties of a material. + +| Field | Type | Label | Description | +| ----- | ---- | ----- | ----------- | +| emissivity | google.protobuf.DoubleValue | | The emissivity.
Unit: Percentage (%)
Range: [0,100]
Default value: 0 | +| emissivity_variation_texture_identifier | google.protobuf.Int32Value | | The identifier of the emissivity variation texture referenced in the material.
Note: Optional field.
Note: The emissivity variation texture reference can be removed by setting the value '-1'. | +| emissivity_variation_uv_channel | google.protobuf.Int32Value | | The emissivity variation UV channel.
Note: Must be 1, 2, 3 or 4.
Default value: 1 | +| emissivity_variation_amplitude | google.protobuf.DoubleValue | | The emissivity variation amplitude.
Unit: Percentage (%)
Range: [0,100]
Default value: 0
Note: If the emissivity variation texture is not defined, the amplitude will be ignored. | +| reflection_coefficient | google.protobuf.DoubleValue | | The reflection coefficient.
Unit: Percentage (%)
Range: [0,100]
Default value: 0 | +| shininess | google.protobuf.DoubleValue | | The shininess.
Range: [1,10]
Default value: 1 | +| thermal_coefficient | google.protobuf.DoubleValue | | The thermal coefficient.
Range: [0,1]
Default value: 1 | + +### UpdateMaterialRequest + +The information required to update a material. + +| Field | Type | Label | Description | +| ----- | ---- | ----- | ----------- | +| identifier | google.protobuf.Int32Value | | The identifier of the material to update. | +| name | google.protobuf.StringValue | | The material name.
Note: Names must be unique amongst materials.
Note: If no name is defined, the name is not updated. | +| properties | [MaterialProperties](#materialproperties) | | The material properties.
Note: All the properties are optional. | + +### UpdateMaterialResponse + +The response returned when updating a material. + +| Field | Type | Label | Description | +| ----- | ---- | ----- | ----------- | +| status | [asset_preparation.v3.common.Status](#status) | | The feedback status of the update operation. | + +### UpdateMaterialStateRequest + +The information required to update a material state. + +| Field | Type | Label | Description | +| ----- | ---- | ----- | ----------- | +| identifier | google.protobuf.Int32Value | | The material identifier. | +| state_name | string | | The current name of the state. | +| state_new_name | google.protobuf.StringValue | | The new name of the state.
Note: Names must be unique amongst sibling material states.
Note: "Default" name is reserved.
Note: If no name is defined, the name is not updated. | +| state_properties | [MaterialProperties](#materialproperties) | | The new state properties. | + +### UpdateMaterialStateResponse + +The response returned when updating a material state. + +| Field | Type | Label | Description | +| ----- | ---- | ----- | ----------- | +| state_name | string | | The state name. | +| status | [asset_preparation.v3.common.Status](#status) | | The feedback status of the update operation. | + +### VolumeOpticalProperties + +The volume optical properties of a material. + +| Field | Type | Label | Description | +| ----- | ---- | ----- | ----------- | +| opaque | [Opaque](#opaque) | | Opaque for non transparent material.
Note: This is the default volume optical properties contribution type. | +| optic | [OpticVolumeOpticalProperties](#opticvolumeopticalproperties) | | Optic for transparent colorless material without bulk scattering. | +| volume_optical_library | [LibraryVolumeOpticalProperties](#libraryvolumeopticalproperties) | | Volume optical property based on a VOP file. | +| fast_transmission_gathering | google.protobuf.BoolValue | | Activation of fast transmission gathering.
Default value: `false` | + +### TextureNormalization + +The possible types of texture normalization method. + +| Name | Number | Description | +| ---- | ------ | ----------- | +| TEXTURE_NORMALIZATION_UNSPECIFIED | 0 | Unspecified texture normalization type. | +| TEXTURE_NORMALIZATION_NONE | 1 | No texture normalization.
Note: The BRDF is blended with the texture not preserving the color and luminance. | +| TEXTURE_NORMALIZATION_COLOR_FROM_TEXTURE | 2 | Blend using the Color from texture mode. | +| TEXTURE_NORMALIZATION_COLOR_FROM_BRDF | 3 | Blend using the Color from BRDF mode. | + +## asset_preparation_api/naturalSky/natural_sky.proto + +This file describes the service used to create, edit and manage natural skies. + +### NaturalSkyPreparation + +Natural Sky Preparation Service + +This service is used to create, edit and manage natural skies. + +| Method Name | Request Type | Response Type | Description | +| ----------- | ------------ | ------------- | ------------| +| CreateNaturalSky | [CreateNaturalSkyRequest](#createnaturalskyrequest) | [CreateNaturalSkyResponse](#createnaturalskyresponse) | Creates a new natural sky with an optional name.
Note: Names must be unique amongst skies.
Note: If unspecified, default values are used.
Returns the identifier of the created natural sky. | +| GetNaturalSky | [GetNaturalSkyRequest](#getnaturalskyrequest) | [GetNaturalSkyResponse](#getnaturalskyresponse) | Gets the properties of a natural sky, given its identifier.
Returns the natural sky properties. | +| ListNaturalSkies | .google.protobuf.Empty | [ListNaturalSkiesResponse](#listnaturalskiesresponse) | Lists all the created natural skies.
Returns the identifiers and names of the natural skies. | +| UpdateNaturalSky | [UpdateNaturalSkyRequest](#updatenaturalskyrequest) | [UpdateNaturalSkyResponse](#updatenaturalskyresponse) | Edits the properties of a natural sky, given its identifier.
Note: Names must be unique amongst skies. | +| DeleteNaturalSky | [DeleteNaturalSkyRequest](#deletenaturalskyrequest) | [DeleteNaturalSkyResponse](#deletenaturalskyresponse) | Deletes a natural sky, given its identifier.
Note: If you delete a natural sky that is set as the active_sky in an environment, the environment is updated with the default sky set as the active sky. | +| CreateNaturalSkyState | [CreateNaturalSkyStateRequest](#createnaturalskystaterequest) | [CreateNaturalSkyStateResponse](#createnaturalskystateresponse) | Creates a new natural sky state with optional properties.
Note: Names must be unique amongst sibling states.
Note: "Default" name is reserved.
Note: If some properties are not specified, default values are used.
Returns the information about the created natural sky state. | +| GetNaturalSkyState | [GetNaturalSkyStateRequest](#getnaturalskystaterequest) | [GetNaturalSkyStateResponse](#getnaturalskystateresponse) | Gets the properties of a natural sky state, given the parent natural sky identifier and the state name.
Returns the natural sky state properties. | +| UpdateNaturalSkyState | [UpdateNaturalSkyStateRequest](#updatenaturalskystaterequest) | [UpdateNaturalSkyStateResponse](#updatenaturalskystateresponse) | Edits the properties of a state, given the parent natural sky identifier and the state name.
Note: Names must be unique amongst sibling states.
Note: "Default" name is reserved. | +| DeleteNaturalSkyState | [DeleteNaturalSkyStateRequest](#deletenaturalskystaterequest) | [DeleteNaturalSkyStateResponse](#deletenaturalskystateresponse) | Deletes a natural sky state, given the parent natural sky identifier and the state name. | + +## asset_preparation_api/naturalSky/natural_sky_description.proto + +This file describes the messages used to create, edit and manage natural skies. + +### AmbientConditions + +The ambient conditions properties. + +| Field | Type | Label | Description | +| ----- | ---- | ----- | ----------- | +| turbidity | google.protobuf.DoubleValue | | The sky turbidity.
Range: [2,9]
Default value: 3 | +| ambient_temperature | google.protobuf.DoubleValue | | The ambient temperature.
Unit: Degree Celsius
Range: [-25,65]
Default value: 25 | +| relative_humidity | google.protobuf.DoubleValue | | The relative humidity.
Unit: Percentage (%)
Range: [0,100]
Default value: 50 | +| no_override | [asset_preparation.v3.common.Empty](#empty) | | The maximum solar warming is not overridden.
Note: This is the default mode.
Note: With this mode, the max_solar_warming is automatically computed. | +| max_solar_warming | google.protobuf.DoubleValue | | The maximum solar warming, describing the maximal temperature difference between shadowed and sun-exposed road.
Unit: Degree Celsius
Range: [0,100]
Default value: 0 | +| mean_road_emissivity | google.protobuf.DoubleValue | | Mean road emissivity.
Unit: Percentage (%)
Range: [0,100]
Default value: 10 | + +### CreateNaturalSkyRequest + +The information required to create a natural sky. + +| Field | Type | Label | Description | +| ----- | ---- | ----- | ----------- | +| name | google.protobuf.StringValue | | The natural sky name.
Note: Names must be unique amongst skies.
Note: If no name is defined, a default unique name is automatically set. | +| properties | [NaturalSkyProperties](#naturalskyproperties) | | The natural sky properties. | + +### CreateNaturalSkyResponse + +The identifier of the created natural sky. + +| Field | Type | Label | Description | +| ----- | ---- | ----- | ----------- | +| identity | [NaturalSkyIdentity](#naturalskyidentity) | | The identity of a natural sky.
Returns null in case of failure. | +| status | [asset_preparation.v3.common.Status](#status) | | The feedback status of the creation operation. | + +### CreateNaturalSkyStateRequest + +The information required to create a natural sky state. + +| Field | Type | Label | Description | +| ----- | ---- | ----- | ----------- | +| identifier | google.protobuf.Int32Value | | The natural sky identifier. | +| state_name | string | | The state name.
Note: Names must be unique amongst sibling states.
Note: "Default" name is reserved. | +| base_state_name | google.protobuf.StringValue | | The name of an already existing state on which will be based the state to create.
Note: If not defined, the natural sky properties are used. | +| state_properties | [NaturalSkyProperties](#naturalskyproperties) | | The state properties. | + +### CreateNaturalSkyStateResponse + +The response returned when creating a natural sky state. + +| Field | Type | Label | Description | +| ----- | ---- | ----- | ----------- | +| identifier | int32 | | The natural sky identifier. | +| state_name | string | | The new state name. | +| status | [asset_preparation.v3.common.Status](#status) | | The feedback status of the creation operation. | + +### Date + +The date of a natural sky. + +| Field | Type | Label | Description | +| ----- | ---- | ----- | ----------- | +| day | int32 | | | +| month | int32 | | | +| year | int32 | | | + +### DeleteNaturalSkyRequest + +The information required to delete a natural sky. + +| Field | Type | Label | Description | +| ----- | ---- | ----- | ----------- | +| identifier | google.protobuf.Int32Value | | The identifier of the natural sky to delete. | + +### DeleteNaturalSkyResponse + +The response returned when deleting a natural sky. + +| Field | Type | Label | Description | +| ----- | ---- | ----- | ----------- | +| status | [asset_preparation.v3.common.Status](#status) | | The feedback status of the delete operation. | + +### DeleteNaturalSkyStateRequest + +The information required to delete a natural sky state. + +| Field | Type | Label | Description | +| ----- | ---- | ----- | ----------- | +| identifier | google.protobuf.Int32Value | | The natural sky identifier. | +| state_name | string | | The name of the state to delete. | + +### DeleteNaturalSkyStateResponse + +The response returned when deleting a natural sky state. + +| Field | Type | Label | Description | +| ----- | ---- | ----- | ----------- | +| status | [asset_preparation.v3.common.Status](#status) | | The feedback status of the delete operation. | + +### DynamicAccurateShadows + +The properties of dynamic accurate shadows. + +| Field | Type | Label | Description | +| ----- | ---- | ----- | ----------- | +| shadow_offset_ratio | google.protobuf.DoubleValue | | The shadow offset ratio.
Note: Must be above 0.00001.
Default value: 0.01. | +| shadow_radius | google.protobuf.DoubleValue | | The shadow radius.
Note: Must be equal or superior to 0.
Default value: 0 | +| softness | google.protobuf.DoubleValue | | The softness.
Range: [0,2]
Default value: 0 | +| resolution | google.protobuf.Int32Value | | The resolution.
Range: [1,8]
Default value: 4 | +| near_field_precision | google.protobuf.DoubleValue | | The near field precision.
Range: [0,1]
Default value: 0.99. | + +### GetNaturalSkyRequest + +The information required to examine a natural sky. + +| Field | Type | Label | Description | +| ----- | ---- | ----- | ----------- | +| identifier | google.protobuf.Int32Value | | The identifier of the natural sky to examine. | + +### GetNaturalSkyResponse + +The information about a natural sky. + +| Field | Type | Label | Description | +| ----- | ---- | ----- | ----------- | +| identity | [NaturalSkyIdentity](#naturalskyidentity) | | The natural sky identity. | +| properties | [NaturalSkyProperties](#naturalskyproperties) | | The natural sky properties. | +| state_names | string | repeated | The names of the natural sky states. | +| status | [asset_preparation.v3.common.Status](#status) | | The feedback status of the examination operation. | + +### GetNaturalSkyStateRequest + +The information required to examine a state. + +| Field | Type | Label | Description | +| ----- | ---- | ----- | ----------- | +| identifier | google.protobuf.Int32Value | | The identifier of the natural sky. | +| state_name | string | | The name of the state to examine. | + +### GetNaturalSkyStateResponse + +The information about a natural sky state. + +| Field | Type | Label | Description | +| ----- | ---- | ----- | ----------- | +| identifier | int32 | | The identifier of the examined natural sky. | +| state_name | string | | The state name. | +| state_properties | [NaturalSkyProperties](#naturalskyproperties) | | The properties of the examined state. | +| status | [asset_preparation.v3.common.Status](#status) | | The feedback status of the reading operation. | + +### ListNaturalSkiesResponse + +The identities of all the natural skies in the collection. + +| Field | Type | Label | Description | +| ----- | ---- | ----- | ----------- | +| skies | [NaturalSkyIdentity](#naturalskyidentity) | repeated | Natural sky identities. | +| status | [asset_preparation.v3.common.Status](#status) | | The feedback status of the listing operation. | + +### Location + +The location properties. + +| Field | Type | Label | Description | +| ----- | ---- | ----- | ----------- | +| latitude | google.protobuf.DoubleValue | | The latitude describing the south-north position.
Unit: Degree
Range: [-90,90]
Default value: 48 | +| longitude | google.protobuf.DoubleValue | | The longitude describing the east-west position.
Unit: Degree
Range: [-180,180]
Default value: 2 | +| cardinal_direction | google.protobuf.DoubleValue | | The cardinal direction for the X axis of the environment.
Unit: Degree
Range: [0,359]
Default value: 0 | + +### NaturalSkyIdentity + +The full identity of a natural sky, consisting of an identifier and a name. + +| Field | Type | Label | Description | +| ----- | ---- | ----- | ----------- | +| identifier | int32 | | The natural sky identifier. | +| name | string | | The natural sky name. | + +### NaturalSkyProperties + +The properties of a natural sky. + +| Field | Type | Label | Description | +| ----- | ---- | ----- | ----------- | +| time | [Time](#time) | | The time of the day.
Default value: 12:00 | +| date | [Date](#date) | | The date.
Default value: 02-15-2018 (mm-dd-yyyy) | +| location | [Location](#location) | | The location. | +| ambient_conditions | [AmbientConditions](#ambientconditions) | | The ambient conditions. | +| no_shadow | [asset_preparation.v3.common.Empty](#empty) | | The sky does not cast shadows. | +| dynamic_accurate_shadows | [DynamicAccurateShadows](#dynamicaccurateshadows) | | The sky produces shadows with Parallel-Split Shadow Maps with adaptive detailed.
Note: this is the default type of shadows. | + +### Time + +The time of a natural sky. + +| Field | Type | Label | Description | +| ----- | ---- | ----- | ----------- | +| hours | int32 | | | +| minutes | int32 | | | + +### UpdateNaturalSkyRequest + +The information required to update a natural sky. + +| Field | Type | Label | Description | +| ----- | ---- | ----- | ----------- | +| identifier | google.protobuf.Int32Value | | The identifier of the natural sky to update. | +| name | google.protobuf.StringValue | | The new natural sky name.
Note: Names must be unique amongst skies.
Note: If no name is defined, the name is not updated. | +| properties | [NaturalSkyProperties](#naturalskyproperties) | | The natural sky properties.
Note: All the properties are optional. | + +### UpdateNaturalSkyResponse + +The response returned when updating a natural sky. + +| Field | Type | Label | Description | +| ----- | ---- | ----- | ----------- | +| status | [asset_preparation.v3.common.Status](#status) | | The feedback status of the update operation. | + +### UpdateNaturalSkyStateRequest + +The information required to update a natural sky state. + +| Field | Type | Label | Description | +| ----- | ---- | ----- | ----------- | +| identifier | google.protobuf.Int32Value | | The natural sky identifier. | +| state_name | string | | The current name of the state. | +| state_new_name | google.protobuf.StringValue | | The new name of the state.
Note: Names must be unique amongst sibling states.
Note: "Default" name is reserved.
Note: If no name is defined, the name is not updated. | +| state_properties | [NaturalSkyProperties](#naturalskyproperties) | | The new state properties. | + +### UpdateNaturalSkyStateResponse + +The response returned when updating a natural sky state. + +| Field | Type | Label | Description | +| ----- | ---- | ----- | ----------- | +| state_name | string | | The state name. | +| status | [asset_preparation.v3.common.Status](#status) | | The feedback status of the update operation. | + +## asset_preparation_api/pointLight/point_light.proto + +This file describes the service used to create, edit and manage point lights. + +### PointLightPreparation + +Point Light Preparation Service + +This service is used to create, edit and manage point lights. + +| Method Name | Request Type | Response Type | Description | +| ----------- | ------------ | ------------- | ------------| +| CreatePointLight | [CreatePointLightRequest](#createpointlightrequest) | [CreatePointLightResponse](#createpointlightresponse) | Creates a new point light with optional properties.
Note: Names must be unique amongst point lights.
Note: If unspecified, default values are used.
Returns the identifier of the created point light. | +| GetPointLight | [GetPointLightRequest](#getpointlightrequest) | [GetPointLightResponse](#getpointlightresponse) | Gets the properties of a point light, given its identifier.
Returns the point light properties. | +| ListPointLights | .google.protobuf.Empty | [ListPointLightsResponse](#listpointlightsresponse) | Lists all the created point lights.
Returns the identifiers and names of the point lights. | +| UpdatePointLight | [UpdatePointLightRequest](#updatepointlightrequest) | [UpdatePointLightResponse](#updatepointlightresponse) | Edits the properties of a point light, given its identifier.
Note: Names must be unique amongst point lights. | +| DeletePointLight | [DeletePointLightRequest](#deletepointlightrequest) | [DeletePointLightResponse](#deletepointlightresponse) | Deletes a point light, given its identifier. | +| CreatePointLightState | [CreatePointLightStateRequest](#createpointlightstaterequest) | [CreatePointLightStateResponse](#createpointlightstateresponse) | Creates a new point light state with optional properties.
Note: Names must be unique amongst sibling point light states.
Note: "Default" name is reserved.
Note: If some properties are not specified, default values are used.
Returns the information about the created point light state. | +| GetPointLightState | [GetPointLightStateRequest](#getpointlightstaterequest) | [GetPointLightStateResponse](#getpointlightstateresponse) | Gets the properties of a point light state, given the parent point light identifier and the state name.
Returns the point light state properties. | +| UpdatePointLightState | [UpdatePointLightStateRequest](#updatepointlightstaterequest) | [UpdatePointLightStateResponse](#updatepointlightstateresponse) | Edits the properties of a state, given the parent point light identifier and the state name.
Note: Names must be unique amongst sibling point light states.
Note: "Default" name is reserved. | +| DeletePointLightState | [DeletePointLightStateRequest](#deletepointlightstaterequest) | [DeletePointLightStateResponse](#deletepointlightstateresponse) | Deletes a point light state, given the parent point light identifier and the state name. | + +## asset_preparation_api/pointLight/point_light_description.proto + +This file describes the messages used to create, edit and manage point lights. + +### BlackBody + +Spectrum based on a black body. + +| Field | Type | Label | Description | +| ----- | ---- | ----- | ----------- | +| temperature | google.protobuf.DoubleValue | | The temperature of the black body.
Unit: Kelvin (K)
Range: [0,30000]
Default value: 5500 | + +### CreatePointLightRequest + +The information required to create a point light. + +| Field | Type | Label | Description | +| ----- | ---- | ----- | ----------- | +| name | google.protobuf.StringValue | | The point light name.
Note: Names must be unique amongst point lights.
Note: If no name is defined, a default unique name is automatically set. | +| properties | [PointLightProperties](#pointlightproperties) | | The point light properties. | + +### CreatePointLightResponse + +The identifier of the created point light. + +| Field | Type | Label | Description | +| ----- | ---- | ----- | ----------- | +| identity | [PointLightIdentity](#pointlightidentity) | | The identity of a point light.
Returns null in case of failure. | +| status | [asset_preparation.v3.common.Status](#status) | | The feedback status of the creation operation. | + +### CreatePointLightStateRequest + +The information required to create a point light state. + +| Field | Type | Label | Description | +| ----- | ---- | ----- | ----------- | +| identifier | google.protobuf.Int32Value | | The point light identifier. | +| state_name | string | | The state name.
Note: Names must be unique amongst sibling point light states.
Note: "Default" name is reserved. | +| base_state_name | google.protobuf.StringValue | | The name of an already existing state on which will be based the state to create.
Note: If not defined, the point light properties are used. | +| state_properties | [PointLightProperties](#pointlightproperties) | | The state properties. | + +### CreatePointLightStateResponse + +The response returned when creating a point light state. + +| Field | Type | Label | Description | +| ----- | ---- | ----- | ----------- | +| identifier | int32 | | The point light identifier. | +| state_name | string | | The new state name. | +| status | [asset_preparation.v3.common.Status](#status) | | The feedback status of the creation operation. | + +### DeletePointLightRequest + +The information required to delete a point light. + +| Field | Type | Label | Description | +| ----- | ---- | ----- | ----------- | +| identifier | google.protobuf.Int32Value | | The identifier of the point light to delete. | + +### DeletePointLightResponse + +The response returned when deleting a point light. + +| Field | Type | Label | Description | +| ----- | ---- | ----- | ----------- | +| status | [asset_preparation.v3.common.Status](#status) | | The feedback status of the delete operation. | + +### DeletePointLightStateRequest + +The information required to delete a point light state. + +| Field | Type | Label | Description | +| ----- | ---- | ----- | ----------- | +| identifier | google.protobuf.Int32Value | | The point light identifier. | +| state_name | string | | The name of the state to delete. | + +### DeletePointLightStateResponse + +The response returned when deleting a point light state. + +| Field | Type | Label | Description | +| ----- | ---- | ----- | ----------- | +| status | [asset_preparation.v3.common.Status](#status) | | The feedback status of the delete operation. | + +### GaussianDiagram + +The properties of gaussian angular diagram. + +| Field | Type | Label | Description | +| ----- | ---- | ----- | ----------- | +| x | google.protobuf.DoubleValue | | Value along the X axis.
Unit: Degree
Range: [0,180]
Default value: 45 | +| y | google.protobuf.DoubleValue | | Value along the Y axis.
Unit: Degree
Range: [0,180]
Default value: 45 | + +### GetPointLightRequest + +The information required to examine a point light. + +| Field | Type | Label | Description | +| ----- | ---- | ----- | ----------- | +| identifier | google.protobuf.Int32Value | | The identifier of the point light to examine. | + +### GetPointLightResponse + +The information about a point light. + +| Field | Type | Label | Description | +| ----- | ---- | ----- | ----------- | +| identity | [PointLightIdentity](#pointlightidentity) | | The point light identity. | +| properties | [PointLightProperties](#pointlightproperties) | | The point light properties. | +| state_names | string | repeated | The names of the point light states. | +| status | [asset_preparation.v3.common.Status](#status) | | The feedback status of the examination operation. | + +### GetPointLightStateRequest + +The information required to examine a state. + +| Field | Type | Label | Description | +| ----- | ---- | ----- | ----------- | +| identifier | google.protobuf.Int32Value | | The identifier of the point light. | +| state_name | string | | The name of the state to examine. | + +### GetPointLightStateResponse + +The information about a point light state. + +| Field | Type | Label | Description | +| ----- | ---- | ----- | ----------- | +| identifier | int32 | | The identifier of the examined point light. | +| state_name | string | | The state name. | +| state_properties | [PointLightProperties](#pointlightproperties) | | The properties of the examined state. | +| status | [asset_preparation.v3.common.Status](#status) | | The feedback status of the reading operation. | + +### Intensity + +The properties of a custom point light. + +| Field | Type | Label | Description | +| ----- | ---- | ----- | ----------- | +| flux | google.protobuf.DoubleValue | | The flux.
Unit: lm
Note: Must be positive.
Default value: 1000 | +| angular_precision | google.protobuf.DoubleValue | | The angular precision.
Unit: Degree
Range: [0,57]
Default value: 0 | +| diagram_library | [LibraryDiagram](#librarydiagram) | | Intensity based on a library angular diagram. | +| lambertian | [LambertianDiagram](#lambertiandiagram) | | Intensity based on a lambertian angular diagram. | +| gaussian | [GaussianDiagram](#gaussiandiagram) | | Intensity based on a gaussian angular diagram. | +| isotropic | [IsotropicDiagram](#isotropicdiagram) | | Intensity based on an isotropic angular diagram.
Note: This is the default type of angular diagram. | + +### IsotropicDiagram + +Isotropic angular diagram. + +### LambertianDiagram + +Lambertian angular diagram. + +### LibraryDiagram + +The properties of library angular diagram. + +| Field | Type | Label | Description | +| ----- | ---- | ----- | ----------- | +| diagram_identifier | google.protobuf.Int32Value | | The identifier of the intensity diagram (created using the
Resource service) referenced in the point light.
Note: The intensity diagram reference can be removed by setting the value '-1'. | + +### ListPointLightsResponse + +The identities of all point lights in the collection. + +| Field | Type | Label | Description | +| ----- | ---- | ----- | ----------- | +| point_lights | [PointLightIdentity](#pointlightidentity) | repeated | Point light identities. | +| status | [asset_preparation.v3.common.Status](#status) | | The feedback status of the listing operation. | + +### Monochromatic + +Monochromatic spectrum. + +| Field | Type | Label | Description | +| ----- | ---- | ----- | ----------- | +| wavelength | google.protobuf.DoubleValue | | The emission wavelength of the Spectrum.
Unit: nanometer (nm)
Range: [360,813]
Default value: 580 | + +### PointLightIdentity + +The full identity of a point light, consisting of an identifier and a name. + +| Field | Type | Label | Description | +| ----- | ---- | ----- | ----------- | +| identifier | int32 | | The point light identifier. | +| name | string | | The point light name. | + +### PointLightProperties + +The properties of a point light. + +| Field | Type | Label | Description | +| ----- | ---- | ----- | ----------- | +| intensity | [Intensity](#intensity) | | The intensity. | +| spectrum_library | [SpectrumLibrary](#spectrumlibrary) | | Spectrum based on a spectrum file. | +| black_body | [BlackBody](#blackbody) | | Spectrum based on a black body.
Note: This is the default type of spectrum. | +| monochromatic | [Monochromatic](#monochromatic) | | Monochromatic spectrum. | +| color_rgb | [asset_preparation.v3.common.ColorRgb](#colorrgb) | | Spectrum based on a RGB color.
Default value: (255,255,255) | +| color_hsv | [asset_preparation.v3.common.ColorHsv](#colorhsv) | | Spectrum based on an HSV color.
Default value: (0,0,100) | +| no_shadow | [asset_preparation.v3.common.Empty](#empty) | | The point light does not cast shadows. | +| static_shadows | [Shadows](#shadows) | | The point light produces static shadows. | +| dynamic_shadows | [Shadows](#shadows) | | The point light produces dynamic shadows.
Note: This is the default type of shadows. | +| rendering | [Rendering](#rendering) | | The rendering properties. | + +### Rendering + +The rendering properties. + +| Field | Type | Label | Description | +| ----- | ---- | ----- | ----------- | +| range | google.protobuf.DoubleValue | | The range describing the maximum distance of the light radiation.
Unit: Meter (m)
Note: Must be positive.
Default value: 128 | + +### Shadows + +The properties of shadows. + +| Field | Type | Label | Description | +| ----- | ---- | ----- | ----------- | +| near_clip | google.protobuf.DoubleValue | | The near clip.
Unit: Meter (m)
Note: Must be positive.
Default value: 0.1. | +| shadows_offset_ratio | google.protobuf.DoubleValue | | The shadow offset ratio.
Note: Must be above 0.00001.
Default value: 0.01. | +| softness | google.protobuf.DoubleValue | | The softness.
Range: [0,2]
Default value: 0 | + +### SpectrumLibrary + +Spectrum based on a spectrum file. + +| Field | Type | Label | Description | +| ----- | ---- | ----- | ----------- | +| spectrum_identifier | google.protobuf.Int32Value | | The identifier of the spectrum (created using the Resource service) referenced in the point light.
Note: The spectrum reference can be removed by setting the value '-1'. | + +### UpdatePointLightRequest + +The information required to update a point light. + +| Field | Type | Label | Description | +| ----- | ---- | ----- | ----------- | +| identifier | google.protobuf.Int32Value | | The identifier of the point light to update. | +| name | google.protobuf.StringValue | | The point light name.
Note: Names must be unique amongst point lights.
Note: If no name is defined, the name is not updated. | +| properties | [PointLightProperties](#pointlightproperties) | | The point light properties.
Note: All the properties are optional. | + +### UpdatePointLightResponse + +The response returned when updating a point light. + +| Field | Type | Label | Description | +| ----- | ---- | ----- | ----------- | +| status | [asset_preparation.v3.common.Status](#status) | | The feedback status of the update operation. | + +### UpdatePointLightStateRequest + +The information required to update a point light state. + +| Field | Type | Label | Description | +| ----- | ---- | ----- | ----------- | +| identifier | google.protobuf.Int32Value | | The point light identifier. | +| state_name | string | | The current name of the state. | +| state_new_name | google.protobuf.StringValue | | The new name of the state.
Note: Names must be unique amongst sibling point light states.
Note: "Default" name is reserved.
Note: If no name is defined, the name is not updated. | +| state_properties | [PointLightProperties](#pointlightproperties) | | The new state properties. | + +### UpdatePointLightStateResponse + +The response returned when updating a point light state. + +| Field | Type | Label | Description | +| ----- | ---- | ----- | ----------- | +| state_name | string | | The state name. | +| status | [asset_preparation.v3.common.Status](#status) | | The feedback status of the update operation. | + +## asset_preparation_api/resource/resource.proto + +This file describes the service used to manage resources. + +### ResourcePreparation + +Resource Preparation Service + +This service is used to manage resources. + +| Method Name | Request Type | Response Type | Description | +| ----------- | ------------ | ------------- | ------------| +| UploadResource | [.asset_preparation.v3.common.Chunk](#chunk) stream | [UploadResourceResponse](#uploadresourceresponse) | Uploads a new resource with a given stream of chunks containing the "AVX MIMEType" metadata.
Note: A resource name can be provided using the "AVX DataName" key in the metadata.
Note: Importing an irradiance map may take several minutes.
The server response may be "freezing" during the import time.
Returns the identity of the created resource. | +| DownloadResourceAsChunks | [DownloadResourceAsChunksRequest](#downloadresourceaschunksrequest) | [.asset_preparation.v3.common.Chunk](#chunk) stream | Downloads a resource binary content as a stream of chunks with a given identifier and type.
Note: The first chunk of the stream provides the metadata "AVX MIMEType" and "AVX DataName". The last chunk of the stream provides the metadata "AVX Status Error" if an error occurred, "AVX Status Warning" or "AVX Status Info" if the export succeeded.
Note: Irradiance maps cannot be downloaded. | +| DownloadResourceAsFile | [DownloadResourceAsFileRequest](#downloadresourceasfilerequest) | [DownloadResourceAsFileResponse](#downloadresourceasfileresponse) | Downloads a resource file with a given identifier, type and destination path.
Note: Irradiance maps cannot be downloaded. | +| ListResources | [ListResourcesRequest](#listresourcesrequest) | [ListResourcesResponse](#listresourcesresponse) | Lists the identity of each resource of the given type.
Note: If no type is provided, all the resources are listed. | +| DeleteResource | [DeleteResourceRequest](#deleteresourcerequest) | [DeleteResourceResponse](#deleteresourceresponse) | Deletes a resource, given its identifier and type.
Note: If no identifier and type are provided, all the resources are released.
Note: If only the type is provided, all the resources of the given type are released. | + +## asset_preparation_api/resource/resource_description.proto + +This file describes the messages used to manage resources. + +### DeleteResourceRequest + +The information required to delete a resource from the collection. + +| Field | Type | Label | Description | +| ----- | ---- | ----- | ----------- | +| identifier | google.protobuf.Int32Value | | The identifier of the resource to delete. | +| type | google.protobuf.StringValue | | The type of the resource to delete. | + +### DeleteResourceResponse + +The response returned when deleting a resource. + +| Field | Type | Label | Description | +| ----- | ---- | ----- | ----------- | +| status | [asset_preparation.v3.common.Status](#status) | | The feedback status of the delete operation. | + +### DownloadResourceAsChunksRequest + +The request to export a resource as a stream. + +| Field | Type | Label | Description | +| ----- | ---- | ----- | ----------- | +| identifier | google.protobuf.Int32Value | | The identifier of the resource to download. | +| type | string | | The type of the resource to download. | + +### DownloadResourceAsFileRequest + +The request to export a resource as a file. + +| Field | Type | Label | Description | +| ----- | ---- | ----- | ----------- | +| identifier | google.protobuf.Int32Value | | The identifier of the resource to download. | +| type | string | | The type of the resource to download. | +| file_path | string | | The path of the exported file.
Note: The file extension must be correct according to the resource type. | +| overwrite | google.protobuf.BoolValue | | Describes whether the file should be overwritten or not.
Default value: `true` | + +### DownloadResourceAsFileResponse + +The response returned when downloading a resource as a file. + +| Field | Type | Label | Description | +| ----- | ---- | ----- | ----------- | +| status | [asset_preparation.v3.common.Status](#status) | | The feedback status of the download operation. | + +### ListResourcesRequest + +The request to list all the uploaded resources of a specific type, if defined. + +| Field | Type | Label | Description | +| ----- | ---- | ----- | ----------- | +| type | google.protobuf.StringValue | | The type of resources to list. | + +### ListResourcesResponse + +The identities of all resources in the collection. + +| Field | Type | Label | Description | +| ----- | ---- | ----- | ----------- | +| identifiers | [ResourceIdentity](#resourceidentity) | repeated | Resource identities. | +| status | [asset_preparation.v3.common.Status](#status) | | The feedback status of the listing operation. | + +### ResourceIdentity + +The full identity of a resource, consisting of an identifier, a type and a name. + +| Field | Type | Label | Description | +| ----- | ---- | ----- | ----------- | +| identifier | int32 | | The identifier of the resource. | +| type | string | | The type of the resource. | +| name | string | | The name of the resource. | + +### UploadResourceResponse + +The identity of the uploaded resource. + +| Field | Type | Label | Description | +| ----- | ---- | ----- | ----------- | +| identity | [ResourceIdentity](#resourceidentity) | | The resource identity. | +| status | [asset_preparation.v3.common.Status](#status) | | The feedback status of the upload operation. | + +## asset_preparation_api/scenetree/scenetree.proto + +This file describes the service used to define, edit and manage scene trees. + +### SceneTreePreparation + +Scene Tree Preparation Service + +This service is used to create, edit and manage scene trees. + +| Method Name | Request Type | Response Type | Description | +| ----------- | ------------ | ------------- | ------------| +| CreateSceneTree | [CreateSceneTreeRequest](#createscenetreerequest) | [CreateSceneTreeResponse](#createscenetreeresponse) | Creates a new scene tree with an optional given name.
Returns the identifier of the created scene tree. | +| GetSceneTree | [GetSceneTreeRequest](#getscenetreerequest) | [GetSceneTreeResponse](#getscenetreeresponse) | Gets the properties of a scene tree, given its identifier.
Returns the scene tree properties. | +| ListSceneTrees | .google.protobuf.Empty | [ListSceneTreesResponse](#listscenetreesresponse) | Lists all the created scene trees.
Returns the identifiers and names of the scene trees. | +| UpdateSceneTree | [UpdateSceneTreeRequest](#updatescenetreerequest) | [UpdateSceneTreeResponse](#updatescenetreeresponse) | Edits the properties of a scene tree, given its identifier. | +| DeleteSceneTree | [DeleteSceneTreeRequest](#deletescenetreerequest) | [DeleteSceneTreeResponse](#deletescenetreeresponse) | Deletes a scene tree, given its identifier. | +| CreateNode | [CreateNodeRequest](#createnoderequest) | [CreateNodeResponse](#createnoderesponse) | Creates a node given the parent scene tree or node identifier, with optional node parameters.
Note: Names must be unique amongst sibling nodes.
Note: The node is visible by default.
Returns the identifier of the created node. | +| GetNode | [GetNodeRequest](#getnoderequest) | [GetNodeResponse](#getnoderesponse) | Gets the properties of a node, given its identifier.
Returns the node properties. | +| UpdateNode | [UpdateNodeRequest](#updatenoderequest) | [UpdateNodeResponse](#updatenoderesponse) | Edits the properties of a node, given its identifier.
Note: Names must be unique amongst sibling nodes. | +| DeleteNode | [DeleteNodeRequest](#deletenoderequest) | [DeleteNodeResponse](#deletenoderesponse) | Deletes a node, given its identifier. | +| CreateGeometryInstance | [CreateGeometryInstanceRequest](#creategeometryinstancerequest) | [CreateGeometryInstanceResponse](#creategeometryinstanceresponse) | Creates a geometry instance under a node, given the node identifier and geometry instance parameters.
Note: The geometry instance is visible by default.
Returns the identifier of the created geometry instance. | +| GetGeometryInstance | [GetGeometryInstanceRequest](#getgeometryinstancerequest) | [GetGeometryInstanceResponse](#getgeometryinstanceresponse) | Gets the properties of a geometry instance, given its identifier.
Returns the geometry instances properties. | +| UpdateGeometryInstance | [UpdateGeometryInstanceRequest](#updategeometryinstancerequest) | [UpdateGeometryInstanceResponse](#updategeometryinstanceresponse) | Edits the properties of a geometry instance, given its identifier. | +| DeleteGeometryInstance | [DeleteGeometryInstanceRequest](#deletegeometryinstancerequest) | [DeleteGeometryInstanceResponse](#deletegeometryinstanceresponse) | Deletes a geometry instance, given its identifier. | +| CreateDirectionalLightInstance | [CreateDirectionalLightInstanceRequest](#createdirectionallightinstancerequest) | [CreateDirectionalLightInstanceResponse](#createdirectionallightinstanceresponse) | Creates a directional light instance under a node, given the node identifier and directional light instance parameters.
Note: The directional light instance is visible by default.
Returns the identifier of the created directional light instance. | +| GetDirectionalLightInstance | [GetDirectionalLightInstanceRequest](#getdirectionallightinstancerequest) | [GetDirectionalLightInstanceResponse](#getdirectionallightinstanceresponse) | Gets the properties of a directional light instance, given its identifier.
Returns the directional light instance properties. | +| UpdateDirectionalLightInstance | [UpdateDirectionalLightInstanceRequest](#updatedirectionallightinstancerequest) | [UpdateDirectionalLightInstanceResponse](#updatedirectionallightinstanceresponse) | Edits the properties of a directional light instance, given its identifier. | +| DeleteDirectionalLightInstance | [DeleteDirectionalLightInstanceRequest](#deletedirectionallightinstancerequest) | [DeleteDirectionalLightInstanceResponse](#deletedirectionallightinstanceresponse) | Deletes a directional light instance, given its identifier. | +| CreatePointLightInstance | [CreatePointLightInstanceRequest](#createpointlightinstancerequest) | [CreatePointLightInstanceResponse](#createpointlightinstanceresponse) | Creates a point light instance under a node, given the node identifier and point light instance parameters.
Note: The point light instance is visible by default.
Returns the identifier of the created point light instance. | +| GetPointLightInstance | [GetPointLightInstanceRequest](#getpointlightinstancerequest) | [GetPointLightInstanceResponse](#getpointlightinstanceresponse) | Gets the properties of a point light instance, given its identifier.
Returns the point light instance properties. | +| UpdatePointLightInstance | [UpdatePointLightInstanceRequest](#updatepointlightinstancerequest) | [UpdatePointLightInstanceResponse](#updatepointlightinstanceresponse) | Edits the properties of a point light instance, given its identifier. | +| DeletePointLightInstance | [DeletePointLightInstanceRequest](#deletepointlightinstancerequest) | [DeletePointLightInstanceResponse](#deletepointlightinstanceresponse) | Deletes a point light instance, given its identifier. | +| PutSceneTreeFromAssetChunks | [.asset_preparation.v3.common.Chunk](#chunk) stream | [PutSceneTreeFromAssetResponse](#putscenetreefromassetresponse) | Creates a new scene tree on the server by uploading an asset as a given stream of chunks containing the "AVX ConflictPolicy" metadata.
All dependencies are uploaded into corresponding services, depending on the given conflict policy.
Note: It is not possible to upload an asset including an object in which several states have the same name, or including a geometry with several material parts with the same name. | +| PutSceneTreeFromAssetFile | [PutSceneTreeFromAssetFileRequest](#putscenetreefromassetfilerequest) | [PutSceneTreeFromAssetResponse](#putscenetreefromassetresponse) | Creates a new scene tree on the server by uploading a given asset file.
All dependencies are uploaded into corresponding services, depending on the given conflict policy.
Note: It is not possible to upload an asset including an object in which several states have the same name, or including a geometry with several material parts with the same name. | +| GetAssetChunks | [GetAssetChunksRequest](#getassetchunksrequest) | [.asset_preparation.v3.common.Chunk](#chunk) stream | Packages the scene tree as an asset and exports it as a byte stream.
Note: The last chunk of the stream provides the metadata "AVX Status Error" if an error occurred, "AVX Status Warning" or "AVX Status Info" if the export succeeded. | +| GetAssetFile | [GetAssetFileRequest](#getassetfilerequest) | [GetAssetFileResponse](#getassetfileresponse) | Packages the scene tree as an asset and exports it as a .asset file. | + +## asset_preparation_api/scenetree/scenetree_description.proto + +This file describes the messages used to define, edit and manage scene trees. + +### CreateDirectionalLightInstanceRequest + +The information required to create a directional light instance under a node. + +Note: The directional light instance is visible by default. + +| Field | Type | Label | Description | +| ----- | ---- | ----- | ----------- | +| node_identifier | google.protobuf.Int32Value | | The identifier of the parent node. | +| name | google.protobuf.StringValue | | The name of the directional light instance.
Note: Names must be unique amongst siblings (nodes, geometries and light instances).
Note: If no name is defined, a default unique name is automatically set. | +| properties | [DirectionalLightInstanceProperties](#directionallightinstanceproperties) | | The directional light instance properties. | + +### CreateDirectionalLightInstanceResponse + +The identifier of the created directional light instance. + +| Field | Type | Label | Description | +| ----- | ---- | ----- | ----------- | +| node_identifier | google.protobuf.Int32Value | | The identifier of the parent node. | +| instance_identity | [DirectionalLightInstanceIdentity](#directionallightinstanceidentity) | | The identifier of the directional light instance.
Returns null in case of failure. | +| status | [asset_preparation.v3.common.Status](#status) | | The feedback status of the creation operation. | + +### CreateGeometryInstanceRequest + +The information required to create a geometry instance under a node. + +Note: The geometry instance is visible by default. + +| Field | Type | Label | Description | +| ----- | ---- | ----- | ----------- | +| node_identifier | google.protobuf.Int32Value | | The identifier of the parent node. | +| name | google.protobuf.StringValue | | The name of the geometry instance.
Note: Names must be unique amongst siblings (nodes, geometries and light instances).
Note: If no name is defined, a default unique name is automatically set. | +| properties | [GeometryInstanceProperties](#geometryinstanceproperties) | | The geometry instance properties. | + +### CreateGeometryInstanceResponse + +The identifier of the created geometry instance. + +| Field | Type | Label | Description | +| ----- | ---- | ----- | ----------- | +| node_identifier | google.protobuf.Int32Value | | The identifier of the parent node. | +| instance_identity | [GeometryInstanceIdentity](#geometryinstanceidentity) | | The identity of the geometry instance.
Returns null in case of failure. | +| status | [asset_preparation.v3.common.Status](#status) | | The feedback status of the creation operation. | + +### CreateNodeRequest + +The information required to create a node under a scene tree or a node. + +Note: The node is visible by default. + +| Field | Type | Label | Description | +| ----- | ---- | ----- | ----------- | +| scene_tree_identifier | int32 | | The identifier of the parent scene tree. | +| node_identifier | int32 | | The identifier of the parent node. | +| name | google.protobuf.StringValue | | The node name.
Note: Names must be unique amongst siblings (nodes, geometries and light instances).
Note: If no name is defined, a default unique name is automatically set. | +| properties | [NodeProperties](#nodeproperties) | | The node properties. | + +### CreateNodeResponse + +The identifier of the created node. + +| Field | Type | Label | Description | +| ----- | ---- | ----- | ----------- | +| scene_tree_identifier | int32 | | The identifier of the parent scene tree. | +| node_identifier | int32 | | The identifier of the parent node. | +| identity | [NodeIdentity](#nodeidentity) | | The identity of the node.
Returns null in case of failure. | +| status | [asset_preparation.v3.common.Status](#status) | | The feedback status of the creation operation. | + +### CreatePointLightInstanceRequest + +The information required to create a point light instance under a node. + +Note: The point light instance is visible by default. + +| Field | Type | Label | Description | +| ----- | ---- | ----- | ----------- | +| node_identifier | google.protobuf.Int32Value | | The identifier of the parent node. | +| name | google.protobuf.StringValue | | The name of the point light instance.
Note: Names must be unique amongst siblings (nodes, geometries and light instances).
Note: If no name is defined, a default unique name is automatically set. | +| properties | [PointLightInstanceProperties](#pointlightinstanceproperties) | | The point light instance properties. | + +### CreatePointLightInstanceResponse + +The identifier of the created point light instance. + +| Field | Type | Label | Description | +| ----- | ---- | ----- | ----------- | +| node_identifier | google.protobuf.Int32Value | | The identifier of the parent node. | +| instance_identity | [PointLightInstanceIdentity](#pointlightinstanceidentity) | | The identity of the point light instance.
Returns null in case of failure. | +| status | [asset_preparation.v3.common.Status](#status) | | The feedback status of the creation operation. | + +### CreateSceneTreeRequest + +The information required to create a scene tree. + +| Field | Type | Label | Description | +| ----- | ---- | ----- | ----------- | +| name | google.protobuf.StringValue | | The scene tree name.
Note: If no name is defined, a default unique name is automatically set. | + +### CreateSceneTreeResponse + +The identity of the created scene tree. + +| Field | Type | Label | Description | +| ----- | ---- | ----- | ----------- | +| identity | [SceneTreeIdentity](#scenetreeidentity) | | The scene tree identity.
Returns null in case of failure. | +| status | [asset_preparation.v3.common.Status](#status) | | The feedback status of the creation operation. | + +### CustomTemperature + +The custom temperature. + +Unit: Degree Celsius + +Range: [-40,100] + +Default value: 0 + +| Field | Type | Label | Description | +| ----- | ---- | ----- | ----------- | +| value | google.protobuf.DoubleValue | | The temperature value. | + +### DeleteDirectionalLightInstanceRequest + +The information required to delete a directional light instance. + +| Field | Type | Label | Description | +| ----- | ---- | ----- | ----------- | +| node_identifier | google.protobuf.Int32Value | | The identifier of the parent node. | +| instance_identifier | google.protobuf.Int32Value | | The identifier of the directional light instance. | + +### DeleteDirectionalLightInstanceResponse + +The response returned when deleting a directional light instance. + +| Field | Type | Label | Description | +| ----- | ---- | ----- | ----------- | +| status | [asset_preparation.v3.common.Status](#status) | | The feedback status of the delete operation. | + +### DeleteGeometryInstanceRequest + +The information required to delete a geometry instance. + +| Field | Type | Label | Description | +| ----- | ---- | ----- | ----------- | +| node_identifier | google.protobuf.Int32Value | | The identifier of the parent node. | +| instance_identifier | google.protobuf.Int32Value | | The identifier of the geometry instance. | + +### DeleteGeometryInstanceResponse + +The response returned when deleting a geometry instance. + +| Field | Type | Label | Description | +| ----- | ---- | ----- | ----------- | +| status | [asset_preparation.v3.common.Status](#status) | | The feedback status of the delete operation. | + +### DeleteNodeRequest + +The information required to delete a node. + +| Field | Type | Label | Description | +| ----- | ---- | ----- | ----------- | +| scene_tree_identifier | int32 | | The identifier of the parent scene tree. | +| node_identifier | int32 | | The identifier of the parent node. | +| identifier | google.protobuf.Int32Value | | The identifier of the node. | + +### DeleteNodeResponse + +The response returned when deleting a node. + +| Field | Type | Label | Description | +| ----- | ---- | ----- | ----------- | +| status | [asset_preparation.v3.common.Status](#status) | | The feedback status of the delete operation. | + +### DeletePointLightInstanceRequest + +The information required to delete a point light instance. + +| Field | Type | Label | Description | +| ----- | ---- | ----- | ----------- | +| node_identifier | google.protobuf.Int32Value | | The identifier of the parent node. | +| instance_identifier | google.protobuf.Int32Value | | The identifier of the point light instance. | + +### DeletePointLightInstanceResponse + +The response returned when deleting a point light instance. + +| Field | Type | Label | Description | +| ----- | ---- | ----- | ----------- | +| status | [asset_preparation.v3.common.Status](#status) | | The feedback status of the delete operation. | + +### DeleteSceneTreeRequest + +The information required to delete a scene tree. + +| Field | Type | Label | Description | +| ----- | ---- | ----- | ----------- | +| identifier | google.protobuf.Int32Value | | The identifier of the scene tree to delete. | + +### DeleteSceneTreeResponse + +The response returned when deleting a scene tree. + +| Field | Type | Label | Description | +| ----- | ---- | ----- | ----------- | +| status | [asset_preparation.v3.common.Status](#status) | | The feedback status of the delete operation. | + +### DirectionalLightInstanceIdentity + +The full identity of a directional light instance, consisting of an identifier and a name. + +| Field | Type | Label | Description | +| ----- | ---- | ----- | ----------- | +| identifier | int32 | | The directional light instance identifier. | +| name | string | | The directional light instance name. | + +### DirectionalLightInstanceProperties + +The properties of a directional light instance. + +| Field | Type | Label | Description | +| ----- | ---- | ----- | ----------- | +| directional_light_identifier | google.protobuf.Int32Value | | The identifier of the referenced directional light.
Note: Mandatory for creation. Ignored during edition. | +| transform | [Transform](#transform) | | The directional light instance transformation.
Note: The scale should not be set for light instances.
If defined, it will be ignored. | +| visibility | google.protobuf.BoolValue | | The directional light instance visibility.
Note: The directional light instance is visible by default. | + +### GeometryInstanceIdentity + +The full identity of a geometry instance, consisting of an identifier and a name. + +| Field | Type | Label | Description | +| ----- | ---- | ----- | ----------- | +| identifier | int32 | | The geometry instance identifier. | +| name | string | | The geometry instance name. | + +### GeometryInstanceProperties + +The properties of a geometry instance. + +| Field | Type | Label | Description | +| ----- | ---- | ----- | ----------- | +| geometry_identifier | google.protobuf.Int32Value | | The identifier of the referenced geometry.
Note: Mandatory for creation. Ignored during edition. | +| transform | [Transform](#transform) | | The geometry instance transformation. | +| visibility | google.protobuf.BoolValue | | The geometry instance visibility.
Note: The geometry instance is visible by default. | +| thermal_properties | [ThermalProperties](#thermalproperties) | | The thermal properties of the instance.
Note: The thermal properties are not set by default. | +| removed_tags | [asset_preparation.v3.common.TagIdentity](#tagidentity) | repeated | Tags to remove from the geometry instance. | +| added_tags | [asset_preparation.v3.common.Tag](#tag) | repeated | Tag(s) to add to the geometry instance.
Note: If you want to tag a dynamic asset as a custom simulation object, you must add the custom tag first, then add a second asset tag:
BASIC_TYPE_VEHICLE, BASIC_TYPE_PEDESTRIAN or BASIC_TYPE_ANIMAL, in this specific order. | + +### GetAssetChunksRequest + +The information required to export a scene tree as a stream of asset chunks. + +| Field | Type | Label | Description | +| ----- | ---- | ----- | ----------- | +| identifier | google.protobuf.Int32Value | | The identifier of the scene tree to export. | + +### GetAssetFileRequest + +The information required to export a scene tree as an asset file. + +| Field | Type | Label | Description | +| ----- | ---- | ----- | ----------- | +| identifier | google.protobuf.Int32Value | | The identifier of the scene tree to export. | +| file_path | string | | The path of the exported file. | +| overwrite | google.protobuf.BoolValue | | Describes whether the file should be overwritten or not.
Default value: `true` | + +### GetAssetFileResponse + +The response returned when exporting a scene tree as an asset file. + +| Field | Type | Label | Description | +| ----- | ---- | ----- | ----------- | +| status | [asset_preparation.v3.common.Status](#status) | | The feedback status of the export operation. | + +### GetDirectionalLightInstanceRequest + +The information required to examine a directional light instance. + +| Field | Type | Label | Description | +| ----- | ---- | ----- | ----------- | +| identifier | google.protobuf.Int32Value | | The identifier of the directional light instance to examine. | + +### GetDirectionalLightInstanceResponse + +The information about a directional light instance. + +| Field | Type | Label | Description | +| ----- | ---- | ----- | ----------- | +| identity | [DirectionalLightInstanceIdentity](#directionallightinstanceidentity) | | The identity of the directional light instance. | +| properties | [DirectionalLightInstanceProperties](#directionallightinstanceproperties) | | The directional light instance properties. | +| status | [asset_preparation.v3.common.Status](#status) | | The feedback status of the examination operation. | + +### GetGeometryInstanceRequest + +The information required to examine a geometry instance. + +| Field | Type | Label | Description | +| ----- | ---- | ----- | ----------- | +| identifier | google.protobuf.Int32Value | | The identifier of the geometry instance to examine. | + +### GetGeometryInstanceResponse + +The information about a geometry instance. + +| Field | Type | Label | Description | +| ----- | ---- | ----- | ----------- | +| identity | [GeometryInstanceIdentity](#geometryinstanceidentity) | | The identity of the geometry instance. | +| properties | [GeometryInstanceProperties](#geometryinstanceproperties) | | The geometry instance properties. | +| status | [asset_preparation.v3.common.Status](#status) | | The feedback status of the examination operation. | + +### GetNodeRequest + +The information required to examine a node. + +| Field | Type | Label | Description | +| ----- | ---- | ----- | ----------- | +| identifier | google.protobuf.Int32Value | | The identifier of the node to examine. | + +### GetNodeResponse + +The information about a node. + +| Field | Type | Label | Description | +| ----- | ---- | ----- | ----------- | +| identity | [NodeIdentity](#nodeidentity) | | The identity of the node. | +| properties | [NodeProperties](#nodeproperties) | | The node properties. | +| nodes | [NodeIdentity](#nodeidentity) | repeated | The identities of all the direct child nodes. | +| geometry_instances | [GeometryInstanceIdentity](#geometryinstanceidentity) | repeated | The identities of all the geometries instantiated under the current node. | +| directional_light_instances | [DirectionalLightInstanceIdentity](#directionallightinstanceidentity) | repeated | The identities of all the directional lights instantiated under the current node. | +| point_light_instances | [PointLightInstanceIdentity](#pointlightinstanceidentity) | repeated | The identities of all the point lights instantiated under the current node. | +| status | [asset_preparation.v3.common.Status](#status) | | The feedback status of the examination operation. | + +### GetPointLightInstanceRequest + +The information required to examine a point light instance. + +| Field | Type | Label | Description | +| ----- | ---- | ----- | ----------- | +| identifier | google.protobuf.Int32Value | | The identifier of the point light instance to examine. | + +### GetPointLightInstanceResponse + +The information about a point light instance. + +| Field | Type | Label | Description | +| ----- | ---- | ----- | ----------- | +| identity | [PointLightInstanceIdentity](#pointlightinstanceidentity) | | The identity of the point light instance. | +| properties | [PointLightInstanceProperties](#pointlightinstanceproperties) | | The point light instance properties. | +| status | [asset_preparation.v3.common.Status](#status) | | The feedback status of the examination operation. | + +### GetSceneTreeRequest + +The information required to examine a scene tree. + +| Field | Type | Label | Description | +| ----- | ---- | ----- | ----------- | +| identifier | google.protobuf.Int32Value | | The identifier of the scene tree to examine. | + +### GetSceneTreeResponse + +The information about a scene tree. + +| Field | Type | Label | Description | +| ----- | ---- | ----- | ----------- | +| identity | [SceneTreeIdentity](#scenetreeidentity) | | The scene tree identity. | +| nodes | [NodeIdentity](#nodeidentity) | repeated | The identities of all the nodes in the scene tree (direct children only). | +| status | [asset_preparation.v3.common.Status](#status) | | The feedback status of the examination operation. | + +### ListSceneTreesResponse + +The identities of all scene trees in the collection. + +| Field | Type | Label | Description | +| ----- | ---- | ----- | ----------- | +| scene_trees | [SceneTreeIdentity](#scenetreeidentity) | repeated | Scene tree identities. | +| status | [asset_preparation.v3.common.Status](#status) | | The feedback status of the listing operation. | + +### NodeIdentity + +The full identity of a node, consisting of an identifier and a name. + +| Field | Type | Label | Description | +| ----- | ---- | ----- | ----------- | +| identifier | int32 | | The node identifier. | +| name | string | | The node name. | + +### NodeProperties + +The properties of a node. + +| Field | Type | Label | Description | +| ----- | ---- | ----- | ----------- | +| transform | [Transform](#transform) | | The node transformation. | +| visibility | google.protobuf.BoolValue | | The node visibility.
Note: The node is visible by default. | +| removed_tags | [asset_preparation.v3.common.TagIdentity](#tagidentity) | repeated | Tag(s) to remove from the node. | +| added_tags | [asset_preparation.v3.common.Tag](#tag) | repeated | Tag(s) to add to the node.
Note: If you want to tag a dynamic asset as a custom simulation object, you must add the custom tag first, then add a second asset tag:
BASIC_TYPE_VEHICLE, BASIC_TYPE_PEDESTRIAN or BASIC_TYPE_ANIMAL, in this specific order. | + +### PointLightInstanceIdentity + +The full identity of a point light instance, consisting of an identifier and a name. + +| Field | Type | Label | Description | +| ----- | ---- | ----- | ----------- | +| identifier | int32 | | The point light instance identifier. | +| name | string | | The point light instance name. | + +### PointLightInstanceProperties + +The properties of a point light instance. + +| Field | Type | Label | Description | +| ----- | ---- | ----- | ----------- | +| point_light_identifier | google.protobuf.Int32Value | | The identifier of the referenced point light.
Note: Mandatory for creation. Ignored during edition. | +| transform | [Transform](#transform) | | The point light instance transformation.
Note: The scale should not be set for light instances.
If defined, it will be ignored. | +| visibility | google.protobuf.BoolValue | | The point light instance visibility.
Note: The point light instance is visible by default. | +| removed_tags | [asset_preparation.v3.common.TagIdentity](#tagidentity) | repeated | Tags to remove from the point light instance. | +| added_tags | [asset_preparation.v3.common.Tag](#tag) | repeated | Tag(s) to add to the point light instance.
Note: Only LightingType Tags are allowed. | + +### PutSceneTreeFromAssetFileRequest + +The information required to create a scene tree from an uploaded asset file. + +| Field | Type | Label | Description | +| ----- | ---- | ----- | ----------- | +| file_path | string | | The path of the .asset file to upload. | +| name_conflict_policy | [asset_preparation.v3.common.ConflictPolicy](#conflictpolicy) | | The policy to follow in case of name conflict with server's objects. | + +### PutSceneTreeFromAssetResponse + +The response returned when uploading an asset. + +| Field | Type | Label | Description | +| ----- | ---- | ----- | ----------- | +| identifier | int32 | | The imported scene tree identifier. | +| status | [asset_preparation.v3.common.Status](#status) | | The feedback status of the upload operation. | + +### SceneTreeIdentity + +The full identity of a scene tree, consisting of an identifier and a name. + +| Field | Type | Label | Description | +| ----- | ---- | ----- | ----------- | +| identifier | int32 | | The scene tree identifier. | +| name | string | | The scene tree name. | + +### ThermalProperties + +The thermal properties. + +| Field | Type | Label | Description | +| ----- | ---- | ----- | ----------- | +| no_custom_temperature | [asset_preparation.v3.common.Empty](#empty) | | No custom temperature.
Note: This is the default mode.
With this mode, if a natural sky is set in the environment, the temperature of the geometry instance will be the Ambient Temperature set in the sky properties. | +| custom_temperature | [CustomTemperature](#customtemperature) | | The custom temperature. | + +### UpdateDirectionalLightInstanceRequest + +The information required to edit the properties of a directional light instance. + +| Field | Type | Label | Description | +| ----- | ---- | ----- | ----------- | +| node_identifier | google.protobuf.Int32Value | | The identifier of the parent node. | +| instance_identifier | google.protobuf.Int32Value | | The identifier of the directional light instance. | +| name | google.protobuf.StringValue | | The name of the directional light instance.
Note: Names must be unique amongst siblings (nodes, geometries and light instances).
Note: If no name is defined, the name is not updated. | +| properties | [DirectionalLightInstanceProperties](#directionallightinstanceproperties) | | The new directional light instance properties.
Note: All the properties are optional. | + +### UpdateDirectionalLightInstanceResponse + +The response returned when updating a directional light instance. + +| Field | Type | Label | Description | +| ----- | ---- | ----- | ----------- | +| status | [asset_preparation.v3.common.Status](#status) | | The feedback status of the update operation. | + +### UpdateGeometryInstanceRequest + +The information required to update a geometry instance. + +| Field | Type | Label | Description | +| ----- | ---- | ----- | ----------- | +| node_identifier | google.protobuf.Int32Value | | The identifier of the parent node. | +| instance_identifier | google.protobuf.Int32Value | | The identifier of the geometry instance. | +| name | google.protobuf.StringValue | | The name of the geometry instance.
Note: Names must be unique amongst siblings (nodes, geometries and light instances).
Note: If no name is defined, the name is not updated. | +| properties | [GeometryInstanceProperties](#geometryinstanceproperties) | | The geometry instance properties.
Note: All the properties are optional. | + +### UpdateGeometryInstanceResponse + +The response returned when updating a geometry instance. + +| Field | Type | Label | Description | +| ----- | ---- | ----- | ----------- | +| status | [asset_preparation.v3.common.Status](#status) | | The feedback status of the update operation. | + +### UpdateNodeRequest + +The information required to update a node. + +| Field | Type | Label | Description | +| ----- | ---- | ----- | ----------- | +| scene_tree_identifier | int32 | | The identifier of the parent scene tree. | +| node_identifier | int32 | | The identifier of the parent node. | +| identifier | google.protobuf.Int32Value | | The identifier of the node. | +| name | google.protobuf.StringValue | | The node name.
Note: Names must be unique amongst siblings (nodes, geometries and light instances).
Note: If no name is defined, the name is not updated. | +| properties | [NodeProperties](#nodeproperties) | | The node properties.
Note: All the properties are optional. | + +### UpdateNodeResponse + +The response returned when updating a node. + +| Field | Type | Label | Description | +| ----- | ---- | ----- | ----------- | +| status | [asset_preparation.v3.common.Status](#status) | | The feedback status of the update operation. | + +### UpdatePointLightInstanceRequest + +The information required to update a point light instance. + +| Field | Type | Label | Description | +| ----- | ---- | ----- | ----------- | +| node_identifier | google.protobuf.Int32Value | | The identifier of the parent node. | +| instance_identifier | google.protobuf.Int32Value | | The identifier of the point light instance. | +| name | google.protobuf.StringValue | | The name of the point light instance.
Note: Names must be unique amongst siblings (nodes, geometries and light instances).
Note: If no name is defined, the name is not updated. | +| properties | [PointLightInstanceProperties](#pointlightinstanceproperties) | | The new point light instance properties.
Note: All the properties are optional. | + +### UpdatePointLightInstanceResponse + +The response returned when updating a point light instance. + +| Field | Type | Label | Description | +| ----- | ---- | ----- | ----------- | +| status | [asset_preparation.v3.common.Status](#status) | | The feedback status of the update operation. | + +### UpdateSceneTreeRequest + +The information required to update a scene tree. + +| Field | Type | Label | Description | +| ----- | ---- | ----- | ----------- | +| identifier | google.protobuf.Int32Value | | The identifier of the scene tree to update. | +| name | google.protobuf.StringValue | | The scene tree name.
Note: If no name is defined, the name is not updated. | + +### UpdateSceneTreeResponse + +The response returned when updating a scene tree. + +| Field | Type | Label | Description | +| ----- | ---- | ----- | ----------- | +| status | [asset_preparation.v3.common.Status](#status) | | The feedback status of the update operation. | + +## asset_preparation_api/scenetree/transform.proto + +This file describes the messages used to transform objects in the scene tree hierarchy. + +### EulerAngles + +Euler angles. + +Unit: Degree + +Note: Rotations expressed in Euler Angles are applied following the intrinsic sequence: pitch (X), yaw (Y), roll (Z). When a rotation is set around 2 axes or more, the vertex is rotated first around the X axis. Then, the rotation around the Y axis is applied to the vertex rotated on X. Finally, the rotation around the Z axis is applied to the vertex rotated on X and Y. + +| Field | Type | Label | Description | +| ----- | ---- | ----- | ----------- | +| x | double | | Rotation along the X axis. | +| y | double | | Rotation along the Y axis. | +| z | double | | Rotation along the Z axis. | + +### Quaternion + +A quaternion. + +| Field | Type | Label | Description | +| ----- | ---- | ----- | ----------- | +| x | double | | X value of the quaternion. | +| y | double | | Y value of the quaternion. | +| z | double | | Z value of the quaternion. | +| w | double | | W value of the quaternion. | + +### Transform + +The transformation of an object in the scene tree hierarchy. + +| Field | Type | Label | Description | +| ----- | ---- | ----- | ----------- | +| x_position | google.protobuf.DoubleValue | | Position along the X axis.
Unit: meter (m) | +| y_position | google.protobuf.DoubleValue | | Position along the Y axis.
Unit: meter (m) | +| z_position | google.protobuf.DoubleValue | | Position along the Z axis.
Unit: meter (m) | +| quaternion | [Quaternion](#quaternion) | | Rotation expressed as a quaternion. | +| euler_angles | [EulerAngles](#eulerangles) | | Rotation expressed as Euler angles. | +| x_scale | google.protobuf.DoubleValue | | Scale along the X axis. | +| y_scale | google.protobuf.DoubleValue | | Scale along the Y axis. | +| z_scale | google.protobuf.DoubleValue | | Scale along the Z axis. | +| relativity | [Relativity](#relativity) | | Relativity. | + +### Relativity + +Relativity of a transformation. + +| Name | Number | Description | +| ---- | ------ | ----------- | +| RELATIVITY_UNSPECIFIED | 0 | The transformation relativity is unspecified. | +| RELATIVITY_RELATIVE | 1 | The transformation is relative to the object's parent. | +| RELATIVITY_ABSOLUTE | 2 | The transformation is in world coordinates. | + +## asset_preparation_api/surfaceSource/surface_source.proto + +This file describes the service used to create, edit and manage surface sources. + +### SurfaceSourcePreparation + +Surface Source Preparation Service + +This service is used to create, edit and manage surface sources. + +| Method Name | Request Type | Response Type | Description | +| ----------- | ------------ | ------------- | ------------| +| CreateSurfaceSource | [CreateSurfaceSourceRequest](#createsurfacesourcerequest) | [CreateSurfaceSourceResponse](#createsurfacesourceresponse) | Creates a new surface source with an optional name and properties.
Note: If unspecified, default values are used.
Returns the identifier of the created surface source. | +| GetSurfaceSource | [GetSurfaceSourceRequest](#getsurfacesourcerequest) | [GetSurfaceSourceResponse](#getsurfacesourceresponse) | Gets the properties of a surface source, given its identifier.
Returns the surface source or display source properties. | +| ListSurfaceSources | .google.protobuf.Empty | [ListSurfaceSourcesResponse](#listsurfacesourcesresponse) | Lists all the created surface sources.
Returns the identifiers and names of the surface sources. | +| UpdateSurfaceSource | [UpdateSurfaceSourceRequest](#updatesurfacesourcerequest) | [UpdateSurfaceSourceResponse](#updatesurfacesourceresponse) | Edits the properties of a surface source, given its identifier.
Note: Names must be unique amongst surface sources. | +| DeleteSurfaceSource | [DeleteSurfaceSourceRequest](#deletesurfacesourcerequest) | [DeleteSurfaceSourceResponse](#deletesurfacesourceresponse) | Deletes a surface source, given its identifier. | +| CreateSurfaceSourceState | [CreateSurfaceSourceStateRequest](#createsurfacesourcestaterequest) | [CreateSurfaceSourceStateResponse](#createsurfacesourcestateresponse) | Creates a new surface source state with optional properties.
Note: Names must be unique amongst sibling surface source states.
Note: "Default" name is reserved.
Note: If some properties are not specified, default values are used.
Returns the information about the created surface source state. | +| GetSurfaceSourceState | [GetSurfaceSourceStateRequest](#getsurfacesourcestaterequest) | [GetSurfaceSourceStateResponse](#getsurfacesourcestateresponse) | Gets the properties of a surface source state, given the parent surface source identifier and the state name.
Returns the surface source state properties. | +| UpdateSurfaceSourceState | [UpdateSurfaceSourceStateRequest](#updatesurfacesourcestaterequest) | [UpdateSurfaceSourceStateResponse](#updatesurfacesourcestateresponse) | Edits the properties of a state, given the parent surface source identifier and the state name.
Note: Names must be unique amongst sibling surface source states.
Note: "Default" name is reserved. | +| DeleteSurfaceSourceState | [DeleteSurfaceSourceStateRequest](#deletesurfacesourcestaterequest) | [DeleteSurfaceSourceStateResponse](#deletesurfacesourcestateresponse) | Deletes a surface source state, given the parent surface source identifier and the state name. | + +## asset_preparation_api/surfaceSource/surface_source_description.proto + +This file describes the messages used to create, edit and manage surface sources. + +### BlackBody + +Spectrum based on a black body. + +| Field | Type | Label | Description | +| ----- | ---- | ----- | ----------- | +| temperature | google.protobuf.DoubleValue | | The temperature of the black body.
Unit: Kelvin (K)
Range: [0,30000]
Default value: 5500 | + +### CreateSurfaceSourceRequest + +The information required to create a surface source. + +| Field | Type | Label | Description | +| ----- | ---- | ----- | ----------- | +| name | google.protobuf.StringValue | | The surface source name.
Note: Names must be unique amongst surface sources.
Note: If no name is defined, a default unique name is automatically set. | +| properties | [SourceProperties](#sourceproperties) | | The source properties. | + +### CreateSurfaceSourceResponse + +The identity of the created surface source. + +| Field | Type | Label | Description | +| ----- | ---- | ----- | ----------- | +| identity | [SurfaceSourceIdentity](#surfacesourceidentity) | | The identity of a surface source.
Returns null in case of failure. | +| status | [asset_preparation.v3.common.Status](#status) | | The feedback status of the creation operation. | + +### CreateSurfaceSourceStateRequest + +The information required to create a surface source state. + +| Field | Type | Label | Description | +| ----- | ---- | ----- | ----------- | +| identifier | google.protobuf.Int32Value | | The surface source identifier. | +| state_name | string | | The state name.
Note: Names must be unique amongst sibling surface source states.
Note: "Default" name is reserved. | +| base_state_name | google.protobuf.StringValue | | The name of an already existing state on which will be based the state to create.
Note: If not defined, the surface source properties are used. | +| state_properties | [SourceProperties](#sourceproperties) | | The state properties. | + +### CreateSurfaceSourceStateResponse + +The response returned when creating a surface source state. + +| Field | Type | Label | Description | +| ----- | ---- | ----- | ----------- | +| identifier | int32 | | The surface source identifier. | +| state_name | string | | The new state name. | +| status | [asset_preparation.v3.common.Status](#status) | | The feedback status of the creation operation. | + +### DeleteSurfaceSourceRequest + +The information required to delete a surface source. + +| Field | Type | Label | Description | +| ----- | ---- | ----- | ----------- | +| identifier | google.protobuf.Int32Value | | The identifier of the surface source to delete. | + +### DeleteSurfaceSourceResponse + +The response returned when deleting a surface source. + +| Field | Type | Label | Description | +| ----- | ---- | ----- | ----------- | +| status | [asset_preparation.v3.common.Status](#status) | | The feedback status of the delete operation. | + +### DeleteSurfaceSourceStateRequest + +The information required to delete a surface source state. + +| Field | Type | Label | Description | +| ----- | ---- | ----- | ----------- | +| identifier | google.protobuf.Int32Value | | The surface source identifier. | +| state_name | string | | The name of the state to delete. | + +### DeleteSurfaceSourceStateResponse + +The response returned when deleting a surface source state. + +| Field | Type | Label | Description | +| ----- | ---- | ----- | ----------- | +| status | [asset_preparation.v3.common.Status](#status) | | The feedback status of the delete operation. | + +### DisplaySourceProperties + +The properties of a display source. + +Note: For display sources, the spectrum is only needed if the display source contributes to lighting. + +| Field | Type | Label | Description | +| ----- | ---- | ----- | ----------- | +| luminance | google.protobuf.DoubleValue | | The display source luminance.
Unit: candela/sq. meter (cd/m2)
Note: Must be positive.
Default value: 0 | +| angular_precision | google.protobuf.DoubleValue | | The angular precision.
Unit: Degree
Range: [0,57]
Default value: 0 | +| lambertian | [LambertianDiagram](#lambertiandiagram) | | Intensity based on a Lambertian angular diagram.
Note: This is the default type of angular diagram. | +| diagram_library | [LibraryDiagram](#librarydiagram) | | Intensity based on a library angular diagram. | +| gaussian | [GaussianDiagram](#gaussiandiagram) | | Intensity based on a gaussian angular diagram. | +| reverse_direction | google.protobuf.BoolValue | | Defines whether the direction of the display source is reversed.
Default value: `false` | +| no_contribution | [asset_preparation.v3.common.Empty](#empty) | | The display source does not contribute to lighting.
Note: This is the default value. | +| lighting_contribution | [LightingContribution](#lightingcontribution) | | The lighting contribution of the display source. | +| spectrum_library | [SpectrumLibrary](#spectrumlibrary) | | Spectrum based on a spectrum file.
Note: This is the default spectrum type. | +| black_body | [BlackBody](#blackbody) | | Spectrum based on a black body. | +| monochromatic | [Monochromatic](#monochromatic) | | Monochromatic spectrum. | +| color_rgb | [asset_preparation.v3.common.ColorRgb](#colorrgb) | | Spectrum based on a RGB color.
Default value: (255,255,255) | +| color_hsv | [asset_preparation.v3.common.ColorHsv](#colorhsv) | | Spectrum based on an HSV color.
Default value: (0,0,100) | +| texture_identifier | google.protobuf.Int32Value | | The identifier of the display texture (created using the Resource service) referenced in the display source.
Note: The texture reference can be removed by setting the value '-1'. | +| uv_channel | google.protobuf.Int32Value | | The UV channel used to map the texture.
Range: [1,4]
Default value: 1 | + +### GaussianDiagram + +The properties of gaussian angular diagram. + +| Field | Type | Label | Description | +| ----- | ---- | ----- | ----------- | +| x | google.protobuf.DoubleValue | | Value along the X axis.
Unit: Degree
Range: [0,180]
Default value: 45 | +| y | google.protobuf.DoubleValue | | Value along the Y axis.
Unit: Degree
Range: [0,180]
Default value: 45 | + +### GetSurfaceSourceRequest + +The information required to examine a surface source. + +| Field | Type | Label | Description | +| ----- | ---- | ----- | ----------- | +| identifier | google.protobuf.Int32Value | | The identifier of the surface source to examine. | + +### GetSurfaceSourceResponse + +The properties of a surface source. + +| Field | Type | Label | Description | +| ----- | ---- | ----- | ----------- | +| identity | [SurfaceSourceIdentity](#surfacesourceidentity) | | The identifier of the surface source. | +| properties | [SourceProperties](#sourceproperties) | | The surface source properties. | +| state_names | string | repeated | The names of the surface source states. | +| status | [asset_preparation.v3.common.Status](#status) | | The feedback status of the examination operation. | + +### GetSurfaceSourceStateRequest + +The information required to examine a state. + +| Field | Type | Label | Description | +| ----- | ---- | ----- | ----------- | +| identifier | google.protobuf.Int32Value | | The identifier of the surface source. | +| state_name | string | | The name of the state to examine. | + +### GetSurfaceSourceStateResponse + +The information about a surface source state. + +| Field | Type | Label | Description | +| ----- | ---- | ----- | ----------- | +| identifier | int32 | | The identifier of the examined surface source. | +| state_name | string | | The state name. | +| state_properties | [SourceProperties](#sourceproperties) | | The properties of the examined state. | +| status | [asset_preparation.v3.common.Status](#status) | | The feedback status of the reading operation. | + +### LambertianDiagram + +Lambertian angular diagram. + +### LibraryDiagram + +The properties of library angular diagram. + +| Field | Type | Label | Description | +| ----- | ---- | ----- | ----------- | +| diagram_identifier | google.protobuf.Int32Value | | The identifier of the intensity diagram (created using the
Resource service) referenced in the surface source.
Note: The intensity diagram reference can be removed by setting the value '-1'. | +| offset | [Vector3](#vector3) | | The intensity diagram offset.
Unit: Degree | + +### LightingContribution + +Describes how a surface or display source contributes to the scene lighting, including whether the different surfaces composing the geometry must be joint or disjoint. + +| Field | Type | Label | Description | +| ----- | ---- | ----- | ----------- | +| joint | [asset_preparation.v3.common.Empty](#empty) | | With joint surfaces, the surface or display source acts as a single point light for contribution to the scene lighting.
Note: This is the default value. | +| disjoint_flux_distribution | [DisjointFluxDistributionType](#disjointfluxdistributiontype) | | With disjoint surfaces, the surface or display source acts as several point lights (as many point lights as there are surfaces in the geometry) for contribution to the scene lighting. | +| orientation_offset | [Vector3](#vector3) | | The orientation offset.
Unit: Degree | +| position_offset | google.protobuf.DoubleValue | | The position offset.
Unit: Millimeter (mm)
Default value: 0 | +| rendering | [Rendering](#rendering) | | The rendering properties. | +| no_shadow | [asset_preparation.v3.common.Empty](#empty) | | The surface source does not cast shadows.
Note: This is the default value. | +| static_shadows | [Shadows](#shadows) | | The surface source produces static shadows. | +| dynamic_shadows | [Shadows](#shadows) | | The surface source produces dynamic shadows. | + +### ListSurfaceSourcesResponse + +The identities of all surface sources in the collection. + +| Field | Type | Label | Description | +| ----- | ---- | ----- | ----------- | +| surface_sources | [SurfaceSourceIdentity](#surfacesourceidentity) | repeated | Surface source identities. | +| status | [asset_preparation.v3.common.Status](#status) | | The feedback status of the listing operation. | + +### Monochromatic + +Monochromatic spectrum. + +| Field | Type | Label | Description | +| ----- | ---- | ----- | ----------- | +| wavelength | google.protobuf.DoubleValue | | The emission wavelength of the Spectrum.
Unit: nanometer (nm)
Range: [360,813]
Default value: 580 | + +### Rendering + +The rendering properties. + +| Field | Type | Label | Description | +| ----- | ---- | ----- | ----------- | +| range | google.protobuf.DoubleValue | | The range describing the maximum distance of the light radiation.
Unit: Meter (m)
Note: Must be positive.
Default value: 128 | + +### Shadows + +The properties of shadows. + +| Field | Type | Label | Description | +| ----- | ---- | ----- | ----------- | +| near_clip | google.protobuf.DoubleValue | | The near clip.
Unit: Meter (m)
Note: Must be positive.
Default value: 0.1. | +| shadows_offset_ratio | google.protobuf.DoubleValue | | The shadow offset ratio.
Note: Must be above 0.00001.
Default value: 0.01. | +| softness | google.protobuf.DoubleValue | | The softness.
Range: [0,2]
Default value: 0 | + +### SourceProperties + +The source properties. + +| Field | Type | Label | Description | +| ----- | ---- | ----- | ----------- | +| surface_source | [SurfaceSourceProperties](#surfacesourceproperties) | | Surface source.
Note: This is the default type. | +| display_source | [DisplaySourceProperties](#displaysourceproperties) | | Display source. | + +### SpectrumLibrary + +Spectrum based on a spectrum file. + +| Field | Type | Label | Description | +| ----- | ---- | ----- | ----------- | +| spectrum_identifier | google.protobuf.Int32Value | | The identifier of the spectrum (created using the Resource service) referenced in the surface source.
Note: The spectrum reference can be removed by setting the value '-1'. | + +### SurfaceSourceIdentity + +The full identity of a surface source, consisting of an identifier and a name. + +| Field | Type | Label | Description | +| ----- | ---- | ----- | ----------- | +| identifier | int32 | | The surface source identifier. | +| name | string | | The surface source name. | + +### SurfaceSourceProperties + +The properties of a surface source. + +| Field | Type | Label | Description | +| ----- | ---- | ----- | ----------- | +| flux | google.protobuf.DoubleValue | | The surface source flux.
Unit: lumen (lm)
Note: Must be positive.
Default value: 500 | +| angular_precision | google.protobuf.DoubleValue | | The angular precision.
Unit: Degree
Range: [0,57]
Default value: 0 | +| lambertian | [LambertianDiagram](#lambertiandiagram) | | Intensity based on a lambertian angular diagram. | +| diagram_library | [LibraryDiagram](#librarydiagram) | | Intensity based on a library angular diagram.
Note: This is the default type of angular diagram. | +| gaussian | [GaussianDiagram](#gaussiandiagram) | | Intensity based on a gaussian angular diagram. | +| reverse_direction | google.protobuf.BoolValue | | Defines whether the direction of the surface source is reversed or not.
Default value: `false` | +| no_contribution | [asset_preparation.v3.common.Empty](#empty) | | The surface source does not contribute to lighting.
Note: This is the default value. | +| lighting_contribution | [LightingContribution](#lightingcontribution) | | The lighting contribution of the surface source. | +| spectrum_library | [SpectrumLibrary](#spectrumlibrary) | | Spectrum based on a spectrum file.
Note: This is the default spectrum type. | +| black_body | [BlackBody](#blackbody) | | Spectrum based on a black body. | +| monochromatic | [Monochromatic](#monochromatic) | | Monochromatic spectrum. | +| color_rgb | [asset_preparation.v3.common.ColorRgb](#colorrgb) | | Spectrum based on a RGB color. | +| color_hsv | [asset_preparation.v3.common.ColorHsv](#colorhsv) | | Spectrum based on an HSV color. | + +### UpdateSurfaceSourceRequest + +The information required to update a surface source. + +Note: All the properties are optional so you can modify only one property. + +| Field | Type | Label | Description | +| ----- | ---- | ----- | ----------- | +| identifier | google.protobuf.Int32Value | | The surface source identifier. | +| name | google.protobuf.StringValue | | The surface source name.
Note: Names must be unique amongst surface sources.
Note: If no name is defined, the name is not updated. | +| properties | [SourceProperties](#sourceproperties) | | The surface source properties. | + +### UpdateSurfaceSourceResponse + +The response returned when updating a surface source. + +| Field | Type | Label | Description | +| ----- | ---- | ----- | ----------- | +| status | [asset_preparation.v3.common.Status](#status) | | The feedback status of the update operation. | + +### UpdateSurfaceSourceStateRequest + +The information required to update a surface source state. + +| Field | Type | Label | Description | +| ----- | ---- | ----- | ----------- | +| identifier | google.protobuf.Int32Value | | The surface source identifier. | +| state_name | string | | The current name of the state. | +| state_new_name | google.protobuf.StringValue | | The new name of the state.
Note: Names must be unique amongst sibling surface source states.
Note: "Default" name is reserved.
Note: If no name is defined, the name is not updated. | +| state_properties | [SourceProperties](#sourceproperties) | | The new state properties. | + +### UpdateSurfaceSourceStateResponse + +The response returned when updating a surface source state. + +| Field | Type | Label | Description | +| ----- | ---- | ----- | ----------- | +| state_name | string | | The state name. | +| status | [asset_preparation.v3.common.Status](#status) | | The feedback status of the update operation. | + +### Vector3 + +Vector in a 3D referential. + +Note: The default value is 0. + +| Field | Type | Label | Description | +| ----- | ---- | ----- | ----------- | +| x | google.protobuf.DoubleValue | | Value along the X axis. | +| y | google.protobuf.DoubleValue | | Value along the Y axis. | +| z | google.protobuf.DoubleValue | | Value along the Z axis. | + +### DisjointFluxDistributionType + +The type of disjoint flux distribution. + +| Name | Number | Description | +| ---- | ------ | ----------- | +| DISTRIBUTION_TYPE_UNSPECIFIED | 0 | Unspecified disjoint flux distribution type. | +| DISTRIBUTION_TYPE_PROPORTIONAL | 1 | Flux distributed proportionally to the area of each disjoint surface.
Note: With this distribution type, the power emitted by one disjoint surface is equal to the power defined in the surface source properties multiplied by the ratio of area of the disjoint surface to the total area. | +| DISTRIBUTION_TYPE_EVEN | 2 | Flux distributed evenly among the disjoint surfaces.
Note: With this distribution type, each disjoint surface emits the same power. The power of each disjoint surface is equal to the power defined in the surface source properties divided by the number of surfaces. | + diff --git a/2025R2/avxcelerate-asset-preparation-api-2025-r2/toc.yml b/2025R2/avxcelerate-asset-preparation-api-2025-r2/toc.yml new file mode 100644 index 0000000000..5b99ff483f --- /dev/null +++ b/2025R2/avxcelerate-asset-preparation-api-2025-r2/toc.yml @@ -0,0 +1,12 @@ +- name: Introduction + href: index.md + items: +- name: API description + items: + href: desc/api-description.md +- name: Reference documentation + items: + href: ref/reference-documentation.md +- name: Changelog + items: + href: changelog/changelog.md \ No newline at end of file