From ebf3c5e0f87ed6aa0bd61b6d5b4aa819687c0c36 Mon Sep 17 00:00:00 2001 From: "mette.lilienthal" Date: Mon, 13 Jan 2025 10:21:56 +0100 Subject: [PATCH 01/20] review update --- content/general-docs/introduction.adoc | 2 +- content/geometry/object-human/human-structure.adoc | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/content/general-docs/introduction.adoc b/content/general-docs/introduction.adoc index 34a6a0d5..7f6662c8 100644 --- a/content/general-docs/introduction.adoc +++ b/content/general-docs/introduction.adoc @@ -168,7 +168,7 @@ Notes, footnotes, and examples shall not contain requirements or any information The following deliverables are provided for {THIS_STANDARD}: -* https://asam-ev.github.io/OpenMATERIAL/asamopenmaterial/latest/specification/index.html[{THIS_STANDARD} BS 1-0-0 Specification, 2025-MM-DD] (this document, contained in this site) +* https://asam-ev.github.io/OpenMATERIAL/asamopenmaterial/latest/specification/index.html[{THIS_STANDARD}^®^ BS 1-0-0 Specification, 2025-MM-DD] (this document, contained in this site) * https://github.com/asam-ev/OpenMATERIAL/tree/main/schemas[JSON schema files] for all json formats (contained in the open-source standard repository) * https://github.com/asam-ev/OpenMATERIAL/tree/main/examples[Example files] for all defined file formats (contained in the open-source standard repository) and further examples of ** a https://github.com/asam-ev/OpenMATERIAL/tree/main/examples/vehicle_example[vehicle] (contained in the open-source standard repository) diff --git a/content/geometry/object-human/human-structure.adoc b/content/geometry/object-human/human-structure.adoc index 415b12c4..65b810ff 100644 --- a/content/geometry/object-human/human-structure.adoc +++ b/content/geometry/object-human/human-structure.adoc @@ -215,7 +215,7 @@ The `Root` bone is the parent bone for all other bones. It can be used to contro == Hip (T) -The `Hip` bone represents the lowest parts and bones of the spine, that is, the Hip, Coccyx and Sacrum spine bones of the human skeleton. +The `Hip` bone represents the lowest parts and bones of the spine, that is, the Hip, Coccyx, and Sacrum spine bones of the human skeleton. .Hip bone [%header, cols="20, 80"] From 035cdb2e8bb540c774cb3540fa8748fec49c2f57 Mon Sep 17 00:00:00 2001 From: "mette.lilienthal" Date: Fri, 17 Jan 2025 08:21:27 +0100 Subject: [PATCH 02/20] update review --- .../geometry/object-environment/environment-general.adoc | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/content/geometry/object-environment/environment-general.adoc b/content/geometry/object-environment/environment-general.adoc index ff2f4fb1..6286d0b0 100644 --- a/content/geometry/object-environment/environment-general.adoc +++ b/content/geometry/object-environment/environment-general.adoc @@ -4,10 +4,10 @@ The environment consists of the terrain, buildings, objects, and traffic areas, The environment's 3D geometry is structured according to the node structure defined in xref:../geometry/object-environment/environment-index.adoc#_model_structure[Model structure]. The structure begins with a root node, which is the parent of all other nodes. If applicable, the origin of the root node should match that of the corresponding OpenDRIVE map. -Children of the root node are terrain, environment objects and the road network. -The latter is further detailed by its child nodes drivable area, sidewalks, roadmarks, road objects and signals. +Children of the root node are terrain, environment objects, and the road network. +The latter is further detailed by its child nodes, the drivable area, sidewalks, roadmarks, road objects, and signals. An https://github.com/asam-ev/OpenMATERIAL/tree/main/examples/environment_example[example environment asset] is provided in the examples folder. Groups with a local transform are indicated in the structure by a (T). -This is only an indicator in the documentation and must not be contained in the actual node name. \ No newline at end of file +This is only an indicator in the documentation and is not necessarily contained in the actual node name. \ No newline at end of file From fbd96123fafae3094a5040321a65ca5a581e64fe Mon Sep 17 00:00:00 2001 From: "mette.lilienthal" Date: Fri, 17 Jan 2025 08:44:29 +0100 Subject: [PATCH 03/20] update --- content/general-docs/backward-compatibility.adoc | 3 ++- content/index.adoc | 3 +++ 2 files changed, 5 insertions(+), 1 deletion(-) diff --git a/content/general-docs/backward-compatibility.adoc b/content/general-docs/backward-compatibility.adoc index 37387a04..1638767f 100644 --- a/content/general-docs/backward-compatibility.adoc +++ b/content/general-docs/backward-compatibility.adoc @@ -8,4 +8,5 @@ endif::[] {THIS_STANDARD} is backwards compatible with {THIS_STANDARD} - +This is the first release of this standard published by ASAM. +Therefore, no information about the backward compatibility of this standard has been added to this section. \ No newline at end of file diff --git a/content/index.adoc b/content/index.adoc index 14d35ec7..cb87f068 100644 --- a/content/index.adoc +++ b/content/index.adoc @@ -17,6 +17,9 @@ include::{root-path}_config.adoc[] This document is the copyrighted property of ASAM e.V. In alteration to the regular https://www.asam.net/license[license terms], ASAM allows unrestricted distribution of this standard. §2 (1) of ASAM's regular https://www.asam.net/license[license terms] is therefore substituted by the following clause: "The licensor grants everyone a basic, non-exclusive and unlimited license to use the standard {THIS_STANDARD}". ==== + +ASAM OpenMATERIAL is a registered trade mark of ASAM e.V. + // // DO NOT CHANGE!!! From 5333d0f52972acf19619afbb4d03f396913b094f Mon Sep 17 00:00:00 2001 From: "mette.lilienthal" Date: Fri, 17 Jan 2025 14:15:26 +0100 Subject: [PATCH 04/20] linguistic review --- content/general-docs/introduction.adoc | 2 +- content/general-docs/scope.adoc | 2 +- content/geometry/general.adoc | 24 +- content/geometry/introduction.adoc | 4 +- content/geometry/object-classes.adoc | 2 +- .../geometry/object-human/human-general.adoc | 7 +- schemas/material_brdf_schema.json | 274 +++++++++--------- 7 files changed, 158 insertions(+), 157 deletions(-) diff --git a/content/general-docs/introduction.adoc b/content/general-docs/introduction.adoc index 7f6662c8..34a6a0d5 100644 --- a/content/general-docs/introduction.adoc +++ b/content/general-docs/introduction.adoc @@ -168,7 +168,7 @@ Notes, footnotes, and examples shall not contain requirements or any information The following deliverables are provided for {THIS_STANDARD}: -* https://asam-ev.github.io/OpenMATERIAL/asamopenmaterial/latest/specification/index.html[{THIS_STANDARD}^®^ BS 1-0-0 Specification, 2025-MM-DD] (this document, contained in this site) +* https://asam-ev.github.io/OpenMATERIAL/asamopenmaterial/latest/specification/index.html[{THIS_STANDARD} BS 1-0-0 Specification, 2025-MM-DD] (this document, contained in this site) * https://github.com/asam-ev/OpenMATERIAL/tree/main/schemas[JSON schema files] for all json formats (contained in the open-source standard repository) * https://github.com/asam-ev/OpenMATERIAL/tree/main/examples[Example files] for all defined file formats (contained in the open-source standard repository) and further examples of ** a https://github.com/asam-ev/OpenMATERIAL/tree/main/examples/vehicle_example[vehicle] (contained in the open-source standard repository) diff --git a/content/general-docs/scope.adoc b/content/general-docs/scope.adoc index 347b950f..737223bf 100644 --- a/content/general-docs/scope.adoc +++ b/content/general-docs/scope.adoc @@ -8,7 +8,7 @@ endif::[] {THIS_STANDARD} specifies the following: -* Structure and coordinate frames for _3D models_ (*3D Data Files*), supporting common 3D exchange formats such as FBX, glTF; and USD. +* Structure and coordinate frames for _3D models_ (*3D Data Files*), supporting common 3D exchange formats such as FBX, glTF, and USD. * Metadata for _3D models_ and references to *Material Mapping Files* based on JSON schemas in *Asset Files*. * _Material_ mapping based on JSON schemas in *Material Mapping Files*. * Physics-based or measured _material properties_ based on JSON schemas in *Material Data Files*. diff --git a/content/geometry/general.adoc b/content/geometry/general.adoc index 26be40f4..fd205cff 100644 --- a/content/geometry/general.adoc +++ b/content/geometry/general.adoc @@ -107,19 +107,19 @@ The following naming conventions apply to {THIS_STANDARD} geometry files: Every node structure for a 3D object uses predefined keywords to allow a consistent naming convention and parsing. Some keywords are already defined by the standard and more could follow in future updates. -The user is free to add more keywords for himself, if they are needed. +The user is free to add more keywords for themself, if they are needed. -* All components shall be named according to the capital Snake_Case definition, starting with uppercase letters. +* All components shall be named according to capital Snake_Case definition, starting with uppercase letters. * Group nodes (also known as empty nodes or parent nodes) shall have "Grp_" as a prefix. -* Iterators are added as suffixes. - In the documentation, iterator names are written in pointy braces. Example: . - In the node names itself, the iterator names are replaced by integer values starting from 0. +* Iterators shall be added as suffixes. + In the documentation, iterator names are written in angled brackets. Example: . + In the node names itself, the iterator names are replaced by integer values, starting from 0. * Sequence of suffixes: 1: Iterator 2: Type Enumerator 3: Subtype Enumerator. * The predefined keywords shall be used for the corresponding asset parts and can be found in the according subchapters. === Metadata -* Naming of fields shall be according to lowerCamelCase definition, starting with lower letters. +* Naming of fields shall be according to CamelCase definition, starting with lowercase letters. * Naming of custom properties shall follow the predefined keys. * Objects, arrays (lists) and enums shall follow the .json notation. @@ -141,9 +141,9 @@ This is an example of a _3D model_ file in glTF format with an accompanying _3D * Meshes shall not contain problematic characteristics such as doubled, isolated, coincident, coplanar, degenerate, or primitives. * Meshes shall have outside facing normals. Soft or hard edges shall be set correctly. * Meshes shall not be empty, nor contain multiple LODs. -* Meshes shall be triangulated and potential normal maps shall match that triangulation. -* Rendering materials shall support PBR workflows and there shall not be geometry without assigned material. -* Additional requirements apply, when {THIS_STANDARD} assignment textures are used: +* Meshes shall be triangulated. Potential normal maps shall match that triangulation. +* Rendering materials shall support physically based rendering (PBR) workflows and there shall not be geometry without assigned material. +* Additional requirements apply when {THIS_STANDARD} assignment textures are used: ** UV channel 1 shall be used for assignment textures. ** UV Islands shall have margins inbetween, so that assignment texture interpolation errors are avoided. ** There shall not be any geometry without UV coverage. @@ -154,12 +154,12 @@ This is an example of a _3D model_ file in glTF format with an accompanying _3D * Elongated primitives should be avoided as they fit badly in acceleration structures. * Alpha-textured meshes should be optimized to minimize the amount of alpha testing. * Meshes should not have holes or gaps. -* Meshes should have clean edgeflow. +* Meshes should have a clean edgeflow. * Usage of N-Gons is not recommended. * Faces should be one-sided. -* The lowest number of polygons possible should be strived for while still retaining the object’s shape. +* An object's shape should have the lowest possible number of polygons. * Texel density should be homogeneous and as low as possible. * UV stretching should be minimized. -* Naming of files, nodes, meshes and materials should be meaningful. +* Naming of files, nodes, meshes, and materials should be meaningful. * Usage of multiple PBR maps is encouraged (albedo, roughness, metallic, normals). * Smaller objects should have one _material_ per object (for example, baked traffic cone), while larger objects should contain multiple seamless repeatable materials (for example, brick building). diff --git a/content/geometry/introduction.adoc b/content/geometry/introduction.adoc index 1e0dd35e..da61f664 100644 --- a/content/geometry/introduction.adoc +++ b/content/geometry/introduction.adoc @@ -65,7 +65,7 @@ The ASAM OpenX standards strive to provide comprehensive, realistic, and most im Asset files (.xoma) of individual objects, like vehicles, shall be linked with the https://opensimulationinterface.github.io/osi-antora-generator/asamosi/current/gen/structosi3_1_1MovingObject.html#a07558573bee7a5fa2f0729e1cad1325f[MovingObject::model_reference] or the https://opensimulationinterface.github.io/osi-antora-generator/asamosi/current/gen/structosi3_1_1StationaryObject.html#aad1c24fcdb11699954bf3494b8632288[StationaryObject::model_reference]. Both environment and objects may either be given as an absolute path or a relative path. A relative path is indicated by a dot `(.)` as the first character. - As ASAM OSI transfers the data between tools and simulation models, the root path, that a relative model reference path is relative to, has to be given or known to all tools and models in the tool chain. - This can be done with tool settings, configs or model parameters, for example, an FMI parameter. + As ASAM OSI transfers the data between tools and simulation models, the root path that a relative model reference path is relative to, has to be given or known to all tools and models in the tool chain. + This can be done with tool settings, configs, or model parameters, for example, an FMI parameter. diff --git a/content/geometry/object-classes.adoc b/content/geometry/object-classes.adoc index 592dbf42..d370a031 100644 --- a/content/geometry/object-classes.adoc +++ b/content/geometry/object-classes.adoc @@ -13,6 +13,6 @@ The {THIS_STANDARD} standard supports the following object classes: * xref:../geometry/object-environment/environment-index.adoc[Environment] If a human is clearly distinguishable from a vehicle, then both the -human and the vehicle are represented by two different objects. Examples are +human and the vehicle are represented by two different objects respectively. Examples are bicycles, motorbikes, or scooters, where the human and the vehicle are perceived as separate entities. diff --git a/content/geometry/object-human/human-general.adoc b/content/geometry/object-human/human-general.adoc index 6782aae4..c09f562a 100644 --- a/content/geometry/object-human/human-general.adoc +++ b/content/geometry/object-human/human-general.adoc @@ -4,8 +4,9 @@ A human is a bipedal being that can be represented by an object in 3D geometry. The human 3D geometry is generically structured into the node structure and skeleton (also often called armature) defined in the xref:../geometry/object-human/human-index.adoc#_model_structure[Model structure]. The structure starts with a Root node as a parent group for all other nodes in the structure. -Splitting the object into different parts, such as clothing, hair, and accessories, enables animation and exchange of parts. If equipment or accessories are very specific for a human, rather small and not self-contained or animated, they can be part of the human asset itself. -For example: Backpacks, sunglasses and jewelry can be part of the human asset. Bycicles, scooter, and skateboards are separate objects and not part of the human asset. + +Splitting the object into different parts, such as clothing, hair, and accessories, enables animation and exchange of parts. If a piece of equipment or accessory is specific to a human, rather small, and not self-contained or animated, it can be part of the human asset itself. +For example: Backpacks, sunglasses, and jewelry can be part of the human asset. Bicycles, scooters, and skateboards are separate objects and not part of the human asset. Not all nodes have to be present in every human _3D model_. Custom _object parts_ may be added to facilitate and better visualize additional use cases, but all custom parts shall adhere to the specified structure principle. @@ -15,4 +16,4 @@ The naming convention makes it possible to mirror one side of the skeleton to th The bones follow a specific bone orientation: The y-axis of a bone always follows the bone direction, regardless of whether it points sidewards, upwards, or forwards. The x-axis usually faces forwards accordingly. Bones with a local transform are indicated in the structure by a (T). -This is only an indicator in the documentation and must not be contained in the actual node name. \ No newline at end of file +This is only an indicator in the documentation and is not necessarily contained in the actual node name. diff --git a/schemas/material_brdf_schema.json b/schemas/material_brdf_schema.json index 64f97330..2076a5e4 100644 --- a/schemas/material_brdf_schema.json +++ b/schemas/material_brdf_schema.json @@ -1,138 +1,138 @@ -{ - "$schema": "http://json-schema.org/draft-07/schema#", - "type": "object", - "description": "ASAM OpenMATERIAL 3D Material BRDF look-up table file definition.", - "properties": { - "metadata": { - "type": "object", - "description": "The key meta information about the BRDF look-up table.", - "properties": { - "name": { - "type": "string", - "description": "The display name of the material, such as 'Red brick' or 'Dark asphalt'." - }, - "description": { - "type": "string", - "description": "Short description of the material in 2 - 3 sentences." - }, - "uuid": { - "type": "string", - "description": "Universally unique identifier for the material in 8-4-4-4-12 format, see https://en.wikipedia.org/wiki/Universally_unique_identifier. The uuid stays the same, even if version is updated.", - "pattern": "\\b[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12}\\b$" - }, - "materialVersion": { - "type": "string", - "description": "The version number of the material, following semantic versioning (for example, '1.0.0').", - "pattern": "^\\d+\\.\\d+\\.\\d+$" - }, - "openMaterialVersion": { - "type": "string", - "description": "The version of the ASAM OpenMATERIAL 3D specification used, adhering to semantic versioning (for example, '1.0.0').", - "pattern": "^\\d+\\.\\d+\\.\\d+$" - }, - "copyright": { - "type": "string", - "description": "Indicates copyright details, including the year and copyright holder (for example, '© 2024 ACME Inc.')." - }, - "license": { - "type": "string", - "description": "Describes the license for material distribution. Use an SPDX identifier for open-source licenses (for example, 'MIT'), or provide a URL or filename for proprietary licenses." - }, - "author": { - "type": "string", - "description": "Lists the author(s) of the material as a name, email, or company. Multiple authors should be comma-separated." - }, - "creationDate": { - "type": "string", - "description": "The date and time of material creation, formatted as YYYYMMDDTHHMMSSZ according to ISO 8601 (for example, '20240703T101728Z').", - "pattern": "^\\d{8}T\\d{6}Z$" - }, - "source": { - "type": "string", - "description": "Source of the BRDF data. Was is measured, simulated, or taken from literature?" - }, - "typicalSensorTechnology": { - "type": "string", - "description": "Typical sensor technology this BRDF table is used for. Examples: radar, lidar, camera. If multiply apply, use comma-separation." - } - }, - "required": [ - "name", - "uuid", - "materialVersion", - "openMaterialVersion", - "copyright", - "license", - "author", - "source" - ] - }, - "brdf": { - "type": "object", - "description": "The BRDF is used as a basic quantity to characterize the reflecting properties of a surface geometrically. The following BRDF definition applies: “The ratio of the radiance or power per unit solid-angle in the outgoing direction from a unit projected surface area to the collimated irradiance or power per unit projected surface area.” A physically plausible BRDF shall additionally obey the following three properties. (1) Positivity: The BRDF has units of inverse steradians (1/sr) and can vary from 0 to infinity. (2) Helmholtz reciprocity: It is symmetric in the incoming and outgoing direction. (3) Energy conservation: No more radiant energy is reflected from a point on the surface than incident radiant energy to that point. ", - "properties": { - "wavelengths": { - "type": "array", - "description": "List of all wavelengths in meters contained in the lookup table.", - "items": { - "type": "number" - } - }, - "lookupTable": { - "type": "array", - "description": "Array of bidirectional reflectance distribution function (BRDF) values. The array shall be sorted based on the columns starting with the first.", - "items": { - "type": "array", - "items": [ - { - "type": [ - "number", - "null" - ], - "description": "Wavelength of radiation in meters." - }, - { - "type": [ - "number", - "null" - ], - "description": "Incident elevation angle (= zenith angle) relative to the surface normal in rad." - }, - { - "type": [ - "number", - "null" - ], - "description": "Exit elevation angle (= zenith angle) relative to the surface normal in rad." - }, - { - "type": [ - "number", - "null" - ], - "description": "Exit azimuth angle in rad. For BRDFs with incident and exit vectors on the same plane as the normal, exit azimuth angle is 0." - }, - { - "type": [ - "number", - "null" - ], - "description": "BRDF value in 1/sr." - } - ], - "minItems": 5, - "maxItems": 5 - } - } - }, - "required": [ - "wavelengths", - "lookupTable" - ] - } - }, - "required": [ - "metadata", - "brdf" - ] +{ + "$schema": "http://json-schema.org/draft-07/schema#", + "type": "object", + "description": "ASAM OpenMATERIAL 3D Material BRDF look-up table file definition.", + "properties": { + "metadata": { + "type": "object", + "description": "The key meta information about the BRDF look-up table.", + "properties": { + "name": { + "type": "string", + "description": "The display name of the material, such as 'Red brick' or 'Dark asphalt'." + }, + "description": { + "type": "string", + "description": "Short description of the material in 2 - 3 sentences." + }, + "uuid": { + "type": "string", + "description": "Universally unique identifier for the material in 8-4-4-4-12 format, see https://en.wikipedia.org/wiki/Universally_unique_identifier. The uuid stays the same, even if the version is updated.", + "pattern": "\\b[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12}\\b$" + }, + "materialVersion": { + "type": "string", + "description": "The version number of the material, following semantic versioning (for example, '1.0.0').", + "pattern": "^\\d+\\.\\d+\\.\\d+$" + }, + "openMaterialVersion": { + "type": "string", + "description": "The version of the ASAM OpenMATERIAL 3D specification used, adhering to semantic versioning (for example, '1.0.0').", + "pattern": "^\\d+\\.\\d+\\.\\d+$" + }, + "copyright": { + "type": "string", + "description": "Indicates copyright details, including the year and copyright holder (for example, '© 2024 ACME Inc.')." + }, + "license": { + "type": "string", + "description": "Describes the license for material distribution. Use an SPDX identifier for open-source licenses (for example, 'MIT'), or provide a URL or filename for proprietary licenses." + }, + "author": { + "type": "string", + "description": "Lists the author(s) of the material as a name, email, or company. Multiple authors should be comma-separated." + }, + "creationDate": { + "type": "string", + "description": "The date and time of material creation, formatted as YYYYMMDDTHHMMSSZ according to ISO 8601 (for example, '20240703T101728Z').", + "pattern": "^\\d{8}T\\d{6}Z$" + }, + "source": { + "type": "string", + "description": "Source of the BRDF data. Was is measured, simulated, or taken from literature?" + }, + "typicalSensorTechnology": { + "type": "string", + "description": "Typical sensor technology this BRDF table is used for. Examples: radar, lidar, camera. If multiply apply, use comma-separation." + } + }, + "required": [ + "name", + "uuid", + "materialVersion", + "openMaterialVersion", + "copyright", + "license", + "author", + "source" + ] + }, + "brdf": { + "type": "object", + "description": "The BRDF is used as a basic quantity to characterize the reflecting properties of a surface geometrically. The following BRDF definition applies: “The ratio of the radiance or power per unit solid-angle in the outgoing direction from a unit projected surface area to the collimated irradiance or power per unit projected surface area.” A physically plausible BRDF shall additionally obey the following three properties. (1) Positivity: The BRDF has units of inverse steradians (1/sr) and can vary from 0 to infinity. (2) Helmholtz reciprocity: It is symmetric in the incoming and outgoing direction. (3) Energy conservation: No more radiant energy is reflected from a point on the surface than incident radiant energy to that point. ", + "properties": { + "wavelengths": { + "type": "array", + "description": "List of all wavelengths in meters contained in the lookup table.", + "items": { + "type": "number" + } + }, + "lookupTable": { + "type": "array", + "description": "Array of bidirectional reflectance distribution function (BRDF) values. The array shall be sorted based on the columns starting with the first.", + "items": { + "type": "array", + "items": [ + { + "type": [ + "number", + "null" + ], + "description": "Wavelength of radiation in meters." + }, + { + "type": [ + "number", + "null" + ], + "description": "Incident elevation angle (= zenith angle) relative to the surface normal in rad." + }, + { + "type": [ + "number", + "null" + ], + "description": "Exit elevation angle (= zenith angle) relative to the surface normal in rad." + }, + { + "type": [ + "number", + "null" + ], + "description": "Exit azimuth angle in rad. For BRDFs with incident and exit vectors on the same plane as the normal, exit azimuth angle is 0." + }, + { + "type": [ + "number", + "null" + ], + "description": "BRDF value in 1/sr." + } + ], + "minItems": 5, + "maxItems": 5 + } + } + }, + "required": [ + "wavelengths", + "lookupTable" + ] + } + }, + "required": [ + "metadata", + "brdf" + ] } \ No newline at end of file From 9a96e149293daefbcdbbe51181438b11a7843a93 Mon Sep 17 00:00:00 2001 From: "mette.lilienthal" Date: Fri, 17 Jan 2025 14:26:37 +0100 Subject: [PATCH 05/20] review --- content/geometry/file-format-support.adoc | 2 +- content/geometry/object-vehicle/vehicle-general.adoc | 2 +- content/geometry/object-vehicle/vehicle-naming-convention.adoc | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/content/geometry/file-format-support.adoc b/content/geometry/file-format-support.adoc index bac6189f..6805ca0d 100644 --- a/content/geometry/file-format-support.adoc +++ b/content/geometry/file-format-support.adoc @@ -14,7 +14,7 @@ However, the geometry specification defines coordinate systems, units, node hier glTF:: _3D models_ of {THIS_STANDARD} in glTF format shall comply with the official https://registry.khronos.org/glTF/specs/2.0/glTF-2.0.html[glTF specification]. -The glTF specification has two delivery options: glTF + bin + textures and the container format glb. +The glTF specification has two delivery options: glTF + bin + textures, and the container format glb. Both delivery options are supported in {THIS_STANDARD}. + The glTF coordinate system is right-handed, with +Y as the up axis, +Z as forward, and -X as right. The front of a glTF asset faces +Z. diff --git a/content/geometry/object-vehicle/vehicle-general.adoc b/content/geometry/object-vehicle/vehicle-general.adoc index ed547398..eb3d4885 100644 --- a/content/geometry/object-vehicle/vehicle-general.adoc +++ b/content/geometry/object-vehicle/vehicle-general.adoc @@ -12,7 +12,7 @@ The origin of the Root node is the center of the vehicle's bounding box projecte Separating vehicle elements into different groups allows for the movement or animation of parts, such as wheels and doors, positioning external light sources in a simulation, and many other use cases. Group nodes are empty nodes representing the coordinate origin of the contained geometry. -Meshes are to be placed in the corresponding group node. +Meshes should be placed in the corresponding group node. Not all nodes need to be present in every vehicle _3D model_, as not all vehicles have parts that fit all groups. Additional group nodes may be added to support additional use cases, but they shall be integrated into the general structure of external or internal and static or dynamic groups and follow the naming convention. diff --git a/content/geometry/object-vehicle/vehicle-naming-convention.adoc b/content/geometry/object-vehicle/vehicle-naming-convention.adoc index 2bcedfbd..b3c349df 100644 --- a/content/geometry/object-vehicle/vehicle-naming-convention.adoc +++ b/content/geometry/object-vehicle/vehicle-naming-convention.adoc @@ -7,5 +7,5 @@ Count the wheel index per axle from right to left (in positive y-direction and a Count the door index per side from front to rear and right to left (in positive y-direction). Count the seat index per level from first level front to rear, and right to left, to the next level from right to left and front to rear. Note: A rear bench with 3 seats will be consideres as 3 seats, because 3 passengers could take a seat on it. -If needed, the user is free to add more groups and new keywords, which are not part of the standard, for himself. +If needed, the user is free to add more groups and new keywords, which are not part of the standard, for themself. From b87768ebb28cc420f19ca957df0c492bd9bf92d5 Mon Sep 17 00:00:00 2001 From: "mette.lilienthal" Date: Mon, 20 Jan 2025 09:01:08 +0100 Subject: [PATCH 06/20] fix validation --- schemas/mapping_schema.json | 24 ++++++++---------------- 1 file changed, 8 insertions(+), 16 deletions(-) diff --git a/schemas/mapping_schema.json b/schemas/mapping_schema.json index ff4c7dea..0e082f89 100644 --- a/schemas/mapping_schema.json +++ b/schemas/mapping_schema.json @@ -30,25 +30,17 @@ "description": "The version of the ASAM OpenMATERIAL 3D specification used, adhering to semantic versioning (for example, '1.0.0').", "pattern": "^\\d+\\.\\d+\\.\\d+$" }, - "copyrights": { - "type": "array", - "description": "Indicates copyright details, including the year and copyright holder (e.g., '© 2024 ACME Inc.').", - "items": { - "type": "string" - }, - "minItems": 1 + "copyright": { + "type": "string", + "description": "Indicates copyright details, including the year and copyright holder (for example, '© 2024 ACME Inc.')." }, "license": { "type": "string", "description": "Describes the license for mapping table distribution. Use an SPDX identifier for open-source licenses (for example, 'MIT'), or provide a URL or filename for proprietary licenses." }, - "authors": { - "type": "array", - "description": "Lists the author(s) of the mapping table as a name, email, or company.", - "items": { - "type": "string" - }, - "minItems": 1 + "author": { + "type": "string", + "description": "Lists the author(s) of the mapping table as a name, email, or company. Multiple authors should be comma-separated." }, "creationDate": { "type": "string", @@ -61,9 +53,9 @@ "uuid", "mappingVersion", "openMaterialVersion", - "copyrights", + "copyright", "license", - "authors" + "author" ] }, "materialMapping": { From 67102e9a09ab79768df03aa93fb368cbc61db58c Mon Sep 17 00:00:00 2001 From: mettelilienthal <108519172+mettelilienthal@users.noreply.github.com> Date: Mon, 20 Jan 2025 09:46:51 +0100 Subject: [PATCH 07/20] Update material_schema.json --- schemas/material_schema.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/schemas/material_schema.json b/schemas/material_schema.json index 52d28770..6d196188 100644 --- a/schemas/material_schema.json +++ b/schemas/material_schema.json @@ -32,7 +32,7 @@ }, "copyrights": { "type": "array", - "description": "Indicates copyright details, including the year and copyright holder (e.g., '© 2024 ACME Inc.').", + "description": "Indicates copyright details, including the year and copyright holder (for example, '© 2024 ACME Inc.').", "items": { "type": "string" }, From 520f53d0ba5d5c1bf94fd27542763592356c0b7c Mon Sep 17 00:00:00 2001 From: mettelilienthal <108519172+mettelilienthal@users.noreply.github.com> Date: Mon, 20 Jan 2025 09:49:45 +0100 Subject: [PATCH 08/20] Update mapping_schema.json --- schemas/mapping_schema.json | 10 +++++++--- 1 file changed, 7 insertions(+), 3 deletions(-) diff --git a/schemas/mapping_schema.json b/schemas/mapping_schema.json index 0e082f89..511d8294 100644 --- a/schemas/mapping_schema.json +++ b/schemas/mapping_schema.json @@ -30,9 +30,13 @@ "description": "The version of the ASAM OpenMATERIAL 3D specification used, adhering to semantic versioning (for example, '1.0.0').", "pattern": "^\\d+\\.\\d+\\.\\d+$" }, - "copyright": { - "type": "string", - "description": "Indicates copyright details, including the year and copyright holder (for example, '© 2024 ACME Inc.')." + "copyrights": { + "type": "array", + "description": "Indicates copyright details, including the year and copyright holder (for example, '© 2024 ACME Inc.').", + "items": { + "type": "string" + }, + "minItems": 1 }, "license": { "type": "string", From 4fdc8783653f46d37e8ff622fe3a9309794cd2a8 Mon Sep 17 00:00:00 2001 From: martinfiebig <98826240+martinfiebig@users.noreply.github.com> Date: Mon, 20 Jan 2025 09:55:49 +0100 Subject: [PATCH 09/20] Update mapping_schema.json --- schemas/mapping_schema.json | 14 +++++++++----- 1 file changed, 9 insertions(+), 5 deletions(-) diff --git a/schemas/mapping_schema.json b/schemas/mapping_schema.json index 511d8294..1ff7403c 100644 --- a/schemas/mapping_schema.json +++ b/schemas/mapping_schema.json @@ -42,9 +42,13 @@ "type": "string", "description": "Describes the license for mapping table distribution. Use an SPDX identifier for open-source licenses (for example, 'MIT'), or provide a URL or filename for proprietary licenses." }, - "author": { - "type": "string", - "description": "Lists the author(s) of the mapping table as a name, email, or company. Multiple authors should be comma-separated." + "authors": { + "type": "array", + "description": "Lists the author(s) of the mapping table as a name, email, or company. Multiple authors should be comma-separated.", + "items": { + "type": "string" + }, + "minItems": 1 }, "creationDate": { "type": "string", @@ -57,9 +61,9 @@ "uuid", "mappingVersion", "openMaterialVersion", - "copyright", + "copyrights", "license", - "author" + "authors" ] }, "materialMapping": { From 98881adc5613e94108ad3264175594ca36854515 Mon Sep 17 00:00:00 2001 From: martinfiebig <98826240+martinfiebig@users.noreply.github.com> Date: Mon, 20 Jan 2025 09:56:31 +0100 Subject: [PATCH 10/20] Update mapping_schema.json --- schemas/mapping_schema.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/schemas/mapping_schema.json b/schemas/mapping_schema.json index 1ff7403c..e8657268 100644 --- a/schemas/mapping_schema.json +++ b/schemas/mapping_schema.json @@ -42,7 +42,7 @@ "type": "string", "description": "Describes the license for mapping table distribution. Use an SPDX identifier for open-source licenses (for example, 'MIT'), or provide a URL or filename for proprietary licenses." }, - "authors": { + "authors": { "type": "array", "description": "Lists the author(s) of the mapping table as a name, email, or company. Multiple authors should be comma-separated.", "items": { From 97f00f68dab1a40e2dbc06bfb57f6fc16f4b62a0 Mon Sep 17 00:00:00 2001 From: martinfiebig <98826240+martinfiebig@users.noreply.github.com> Date: Mon, 20 Jan 2025 09:57:02 +0100 Subject: [PATCH 11/20] Update material_brdf_schema.json --- schemas/material_brdf_schema.json | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/schemas/material_brdf_schema.json b/schemas/material_brdf_schema.json index 09fc2a30..7e7dc1c4 100644 --- a/schemas/material_brdf_schema.json +++ b/schemas/material_brdf_schema.json @@ -1,4 +1,3 @@ - { "$schema": "http://json-schema.org/draft-07/schema#", "type": "object", @@ -137,4 +136,4 @@ "brdf" ] -} \ No newline at end of file +} From be59c02f635bd8eb26b08f1b1027b058d1ec6289 Mon Sep 17 00:00:00 2001 From: martinfiebig <98826240+martinfiebig@users.noreply.github.com> Date: Mon, 20 Jan 2025 09:59:55 +0100 Subject: [PATCH 12/20] Update material_brdf_schema.json --- schemas/material_brdf_schema.json | 33 +++++++++++++++++++------------ 1 file changed, 20 insertions(+), 13 deletions(-) diff --git a/schemas/material_brdf_schema.json b/schemas/material_brdf_schema.json index 7e7dc1c4..d8405ee0 100644 --- a/schemas/material_brdf_schema.json +++ b/schemas/material_brdf_schema.json @@ -17,7 +17,7 @@ }, "uuid": { "type": "string", - "description": "Universally unique identifier for the material in 8-4-4-4-12 format, see https://en.wikipedia.org/wiki/Universally_unique_identifier. The uuid stays the same, even if the version is updated.", + "description": "Universally unique identifier for the material in 8-4-4-4-12 format, see https://en.wikipedia.org/wiki/Universally_unique_identifier. The uuid stays the same, even if version is updated.", "pattern": "\\b[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12}\\b$" }, "materialVersion": { @@ -30,26 +30,34 @@ "description": "The version of the ASAM OpenMATERIAL 3D specification used, adhering to semantic versioning (for example, '1.0.0').", "pattern": "^\\d+\\.\\d+\\.\\d+$" }, - "copyright": { - "type": "string", - "description": "Indicates copyright details, including the year and copyright holder (for example, '© 2024 ACME Inc.')." + "copyrights": { + "type": "array", + "description": "Indicates copyright details, including the year and copyright holder (for example, '© 2024 ACME Inc.').", + "items": { + "type": "string" + }, + "minItems": 1 }, "license": { "type": "string", "description": "Describes the license for material distribution. Use an SPDX identifier for open-source licenses (for example, 'MIT'), or provide a URL or filename for proprietary licenses." }, - "author": { - "type": "string", - "description": "Lists the author(s) of the material as a name, email, or company. Multiple authors should be comma-separated." + "authors": { + "type": "array", + "description": "Lists the author(s) of the mapping table as a name, email, or company. Multiple authors should be comma-separated.", + "items": { + "type": "string" + }, + "minItems": 1 }, "creationDate": { "type": "string", "description": "The date and time of material creation, formatted as YYYYMMDDTHHMMSSZ according to ISO 8601 (for example, '20240703T101728Z').", "pattern": "^\\d{8}T\\d{6}Z$" }, - "source": { + "sources": { "type": "string", - "description": "Source of the BRDF data. Was is measured, simulated, or taken from literature?" + "description": "Source of the BRDF data. Was is measured, simulated, or taken from literature? Multiple sources should be comma-separated." }, "typicalSensorTechnology": { "type": "string", @@ -61,10 +69,10 @@ "uuid", "materialVersion", "openMaterialVersion", - "copyright", + "copyrights", "license", - "author", - "source" + "authors", + "sources" ] }, "brdf": { @@ -135,5 +143,4 @@ "metadata", "brdf" ] - } From f0a91239edc47e70a4a46413fc8d8f8ec8ee16fa Mon Sep 17 00:00:00 2001 From: martinfiebig <98826240+martinfiebig@users.noreply.github.com> Date: Mon, 20 Jan 2025 10:01:03 +0100 Subject: [PATCH 13/20] Update material_brdf_schema.json --- schemas/material_brdf_schema.json | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/schemas/material_brdf_schema.json b/schemas/material_brdf_schema.json index d8405ee0..6780ab86 100644 --- a/schemas/material_brdf_schema.json +++ b/schemas/material_brdf_schema.json @@ -34,7 +34,7 @@ "type": "array", "description": "Indicates copyright details, including the year and copyright holder (for example, '© 2024 ACME Inc.').", "items": { - "type": "string" + "type": "string" }, "minItems": 1 }, @@ -44,7 +44,7 @@ }, "authors": { "type": "array", - "description": "Lists the author(s) of the mapping table as a name, email, or company. Multiple authors should be comma-separated.", + "description": "Lists the author(s) of the material as a name, email, or company. Multiple authors should be comma-separated.", "items": { "type": "string" }, From f502808998697013980396fe68659f6f5863d502 Mon Sep 17 00:00:00 2001 From: FKlopfer Date: Mon, 20 Jan 2025 10:54:57 +0100 Subject: [PATCH 14/20] Continue review Signed-off-by: FKlopfer --- content/general-docs/introduction.adoc | 22 +++++++++++----------- content/index.adoc | 2 +- 2 files changed, 12 insertions(+), 12 deletions(-) diff --git a/content/general-docs/introduction.adoc b/content/general-docs/introduction.adoc index 39836145..b42dd2db 100644 --- a/content/general-docs/introduction.adoc +++ b/content/general-docs/introduction.adoc @@ -30,11 +30,11 @@ Standardization efforts have been made for scenarios and road data using ASAM Op === The two main chapters of {THIS_STANDARD} -{THIS_STANDARD} is divided into distinct yet complementary chapters enabling a modular approach to implementation. Key to this is the distinction between Material and Geometry. Based on specific use-cases, users of {THIS_STANDARD} can implement the standard for one or both chapters. At least one of the two chapters shall be implemented to conform with the standard. +{THIS_STANDARD} is divided into distinct yet complementary chapters enabling a modular approach to implementation. Key to this is the distinction between material and geometry. Based on specific use-cases, users of {THIS_STANDARD} can implement the standard for one or both chapters. At least one of the two chapters shall be implemented to conform with the standard. -* *Material*: This chapter includes definitions and file formats for storing and exchanging material properties. These properties can be physical, such as surface roughness, permittivity, and index of refraction, or measured data, like wavelength and angle-dependent reflectance values. Tools or systems focusing on material properties can implement support for the Material chapter. For example: “This tool supports {THIS_STANDARD}: Material”. +* *Material*: This chapter includes definitions and file formats for storing and exchanging material properties. These properties can be physical, such as surface roughness, permittivity, and index of refraction, or measured data, like wavelength and angle-dependent reflectance values. Tools or systems focusing on material properties can implement support for the material chapter. For example: “This tool supports {THIS_STANDARD}: Material”. -* *Geometry*: This chapter contains structures for different object classes. These structures define uniform node structure, naming scheme and coordinate systems to enable exchange, common integration and animation of 3D models. Tools or systems working primarily with geometric data, such as 3D models or spatial structures, can implement support for the Geometry chapter. For example: “This tool supports {THIS_STANDARD}: Geometry”. +* *Geometry*: This chapter contains structures for different object classes. These structures define uniform node structure, naming scheme and coordinate systems to enable exchange, common integration and animation of 3D models. Tools or systems working primarily with geometric data, such as 3D models or spatial structures, can implement support for the geometry chapter. For example: “This tool supports {THIS_STANDARD}: Geometry”. * *Full Compliance*: For a full exchange of simulation-ready 3D assets however, both chapters must be supported. Systems or tools providing full support for both material and geometric data can be described as follows: “This tool supports {THIS_STANDARD}”. @@ -44,8 +44,8 @@ A list of use cases examples can be found in the https://asam-ev.github.io/OpenM {THIS_STANDARD} defines various file formats for specifying assets, _material properties_, and the mapping between them. <> illustrates these file formats and their interconnections. -The definitions of the geometry related data formats marked in red can be found in xref:geometry/geometry-index.adoc[]. -The definitions of the _material_ related data formats marked in blue can be found in xref:material/material-index.adoc[]. +The definitions of the geometry related data formats marked in red can be found in the geometry chapter. +The definitions of the _material_ related data formats marked in blue can be found in the material chapter. [#fig-openmaterial-overview] .Overview of {THIS_STANDARD} file formats and data flow @@ -55,7 +55,7 @@ The first interaction with an {THIS_STANDARD}-compliant _3D model_ is through th The *asset file* is a JSON file with the file extension .xoma ({THIS_STANDARD} Asset). A detailed definition of the https://github.com/asam-ev/OpenMATERIAL/blob/main/schemas/asset_schema.json[asset file JSON schema] is given in xref:geometry/asset-schema.adoc[]. -The asset file shall have the same name as a corresponding 3D data file in glTF, FBX or USD format. +The asset file shall have the same name as a corresponding 3D data file in glTF, FBX, or USD format. To facilitate instancing, multiple asset file may be linked to a single _3D model_ file by adding an index separated by a dot (.) as a suffix to the asset file name. It contains metadata, such as description, unique identifier, version information, copyright details, and so on. It also includes a _material_ texture assignment table, allowing dedicated _material_ mapping textures to be assigned to materials within 3D data files. @@ -65,10 +65,10 @@ For the mapping currently only the rba channels are used (first 24 Bit). The last channel is reserved for future use. An https://github.com/asam-ev/OpenMATERIAL/tree/main/examples/example_asset.xoma[example asset] is provided in the examples folder of the repository. -The *3D data file* is a standard _3D model_ file in glTF, FBX or USD format. +The *3D data file* is a standard _3D model_ file in glTF, FBX, or USD format. Multiple formats can exist in parallel, so one asset file can have multiple 3D data files with different formats with the same name as the asset file. -However, to be standard compliant, a simulation environment must support at least one of the named 3D data formats. -More information about the file formats is given in is given in xref:geometry/file-format-support.adoc[]. +However, to be compliant with {THIS_STANDARD}, a simulation environment must support at least one of the named 3D data formats. +More information about the file formats is given in in xref:geometry/file-format-support.adoc[]. An https://github.com/asam-ev/OpenMATERIAL/tree/main/examples/example_asset.gltf[example model] is provided in the examples folder of the repository. The *material mapping file* is separated from the asset file to facilitate reusability. @@ -93,7 +93,7 @@ The defined look-up tables include: * xref:material/material-emp-schema.adoc[Electromagnetic properties] * xref:material/material-optical-schema.adoc[Optical properties] * xref:material/material-brdf-schema.adoc[Bidirectional reflectance distribution functions (BRDFs)] -* xref:material/material-reflectance-schema.adoc[Reflectance table] +//* xref:material/material-reflectance-schema.adoc[Reflectance table] Examples for _material property_ files and look-up table files are provided in the https://github.com/asam-ev/OpenMATERIAL/tree/main/examples/[examples folder] of the repository. @@ -104,7 +104,7 @@ Examples for _material property_ files and look-up table files are provided in t To ensure compliance with the {THIS_STANDARD} specification, users need to be able to distinguish between requirements, recommendations, permissions, possibilities and capabilities, and external constraints. -The following rules for using modal verbs apply: +The rules listed in <> for using modal verbs apply: [#tab-modal-verbs] .Verbal forms for expressions of provisions diff --git a/content/index.adoc b/content/index.adoc index cb87f068..6495189e 100644 --- a/content/index.adoc +++ b/content/index.adoc @@ -18,7 +18,7 @@ This document is the copyrighted property of ASAM e.V. In alteration to the regular https://www.asam.net/license[license terms], ASAM allows unrestricted distribution of this standard. §2 (1) of ASAM's regular https://www.asam.net/license[license terms] is therefore substituted by the following clause: "The licensor grants everyone a basic, non-exclusive and unlimited license to use the standard {THIS_STANDARD}". ==== -ASAM OpenMATERIAL is a registered trade mark of ASAM e.V. +ASAM OpenMATERIAL 3D is a registered trademark of ASAM e.V. // // DO NOT CHANGE!!! From 5d39c48bf0ab165fb827661180edbf6b4a836fc8 Mon Sep 17 00:00:00 2001 From: FKlopfer Date: Mon, 20 Jan 2025 14:55:37 +0100 Subject: [PATCH 15/20] Continue linguistic review Signed-off-by: FKlopfer --- .../general-docs/backward-compatibility.adoc | 2 -- content/general-docs/introduction.adoc | 10 +++--- content/geometry/general.adoc | 31 ++++++++++--------- content/geometry/introduction.adoc | 16 +++++----- 4 files changed, 30 insertions(+), 29 deletions(-) diff --git a/content/general-docs/backward-compatibility.adoc b/content/general-docs/backward-compatibility.adoc index 1638767f..793b3728 100644 --- a/content/general-docs/backward-compatibility.adoc +++ b/content/general-docs/backward-compatibility.adoc @@ -6,7 +6,5 @@ ifndef::include-only-once[] include::{root-path}_config.adoc[] endif::[] -{THIS_STANDARD} is backwards compatible with {THIS_STANDARD} - This is the first release of this standard published by ASAM. Therefore, no information about the backward compatibility of this standard has been added to this section. \ No newline at end of file diff --git a/content/general-docs/introduction.adoc b/content/general-docs/introduction.adoc index b42dd2db..9bac712c 100644 --- a/content/general-docs/introduction.adoc +++ b/content/general-docs/introduction.adoc @@ -166,8 +166,8 @@ Notes, footnotes, and examples shall not contain requirements or any information The following deliverables are provided for {THIS_STANDARD}: * https://asam-ev.github.io/OpenMATERIAL/asamopenmaterial/latest/specification/index.html[{THIS_STANDARD} BS 1-0-0 Specification, 2025-MM-DD] (this document, contained in this site) -* https://github.com/asam-ev/OpenMATERIAL/tree/main/schemas[JSON schema files] for all json formats (contained in the open-source standard repository) -* https://github.com/asam-ev/OpenMATERIAL/tree/main/examples[Example files] for all defined file formats (contained in the open-source standard repository) and further examples of -** a https://github.com/asam-ev/OpenMATERIAL/tree/main/examples/vehicle_example[vehicle] (contained in the open-source standard repository) -** a https://github.com/asam-ev/OpenMATERIAL/tree/main/examples/human_example[human] (contained in the open-source standard repository) -** an https://github.com/asam-ev/OpenMATERIAL/tree/main/examples/environment_example[environment] (contained in the open-source standard repository) +* https://github.com/asam-ev/OpenMATERIAL/tree/main/schemas[JSON schema files] for all json formats (contained in the {THIS_STANDARD} Github repository) +* https://github.com/asam-ev/OpenMATERIAL/tree/main/examples[Example files] for all defined file formats (contained in the {THIS_STANDARD} Github repository) and further examples of +** a https://github.com/asam-ev/OpenMATERIAL/tree/main/examples/vehicle_example[vehicle] (contained in the {THIS_STANDARD} Github repository) +** a https://github.com/asam-ev/OpenMATERIAL/tree/main/examples/human_example[human] (contained in the {THIS_STANDARD} Github repository) +** an https://github.com/asam-ev/OpenMATERIAL/tree/main/examples/environment_example[environment] (contained in the {THIS_STANDARD} Github repository) diff --git a/content/geometry/general.adoc b/content/geometry/general.adoc index e70775b1..a3638143 100644 --- a/content/geometry/general.adoc +++ b/content/geometry/general.adoc @@ -35,7 +35,7 @@ Unless stated otherwise, all numeric values within {THIS_STANDARD} are in SI uni Both coordinate systems consist of three orthogonal directions associated with x-, y-, and z-axes, and a coordinate origin where axes meet. The coordinate -systems are right-handed Cartesian coordinate systems according to ISO 8855. For +systems are right-handed Cartesian coordinate systems according to ISO 8855 cite:[iso8855]. For a non-rotated coordinate system, the following applies: * Forward matches x-axis @@ -120,50 +120,53 @@ The following naming conventions apply to {THIS_STANDARD} geometry files: === Node structure Every node structure for a 3D object uses predefined keywords to allow a consistent naming convention and parsing. -Some keywords are already defined by the standard and more could follow in future updates. -The user is free to add more keywords for themself, if they are needed. +Some keywords are already defined by the {THIS_STANDARD} standard and more could follow in future updates. +Users are free to add more keywords for themself, if they are needed. The following rules apply: -* All components shall be named according to capital Snake_Case definition, starting with uppercase letters. +* All components shall be named according to capital snake case definition, starting with uppercase letters. * Group nodes (also known as empty nodes or parent nodes) shall have "Grp_" as a prefix. * Iterators shall be added as suffixes. In the documentation, iterator names are written in angled brackets. Example: . In the node names itself, the iterator names are replaced by integer values, starting from 0. * Sequence of suffixes: 1: Iterator 2: Type Enumerator 3: Subtype Enumerator. -* The predefined keywords shall be used for the corresponding asset parts and can be found in the according subchapters. +* The predefined keywords shall be used for the corresponding asset parts and can be found in the corresponding subchapters. === Metadata -* Naming of fields shall be according to CamelCase definition, starting with lowercase letters. +The following rules for metadata apply: + +* Fields shall be named according to the Camel case definition, starting with lowercase letters. * Naming of custom properties shall follow the predefined keys. -* Objects, arrays (lists) and enums shall follow the .json notation. +* Objects, arrays (lists), and enums shall follow the notation in the corresponding json files. == _3D asset_ file The _3D asset_ file provides metadata as well as a mapping table to {THIS_STANDARD} _material property_ files. -This information extends the geometry of an asset given in standard _3D model_ file formats, for example, glTF, FBX or USD. +This information extends the geometry of an asset given in standard _3D model_ file formats, for example, glTF, FBX, or USD. The _3D asset_ file is in JSON format with the file extension `xoma`. As indicated above, the asset file has to have the same file name as the accompanying _3D model_. -This is an example of a _3D model_ file in glTF format with an accompanying _3D asset_ file: +The following is an example of a _3D model_ file in glTF format with an accompanying _3D asset_ file: * `my-model.gltf` * `my-model.xoma` == Requirements -* The object's geometry shall be in real word scale, using meters as unit for measurement for distances. -* The object's origins and pivot points shall coincide with position and orientation of the origin of the object's reference coordinate frame if not specified otherwise. +* The geometry of the object shall be in real-word scale, using meters as the unit for measurement distances. +* The object's origins and pivot points shall coincide with position and orientation of the origin of the object's reference coordinate frame, unless otherwise specified . * Meshes shall not contain problematic characteristics such as doubled, isolated, coincident, coplanar, degenerate, or primitives. * Meshes shall have outside facing normals. Soft or hard edges shall be set correctly. -* Meshes shall not be empty, nor contain multiple LODs. +* Meshes shall not be empty or contain multiple LODs. * Meshes shall be triangulated. Potential normal maps shall match that triangulation. * Rendering materials shall support physically based rendering (PBR) workflows and there shall not be geometry without assigned material. * Additional requirements apply when {THIS_STANDARD} assignment textures are used: ** UV channel 1 shall be used for assignment textures. -** UV Islands shall have margins inbetween, so that assignment texture interpolation errors are avoided. +** UV Islands shall have margins in between, so that assignment texture interpolation errors are avoided. ** There shall not be any geometry without UV coverage. == Recommendations + * UVs should not overlap and be within 0-1 UV space. * Elongated primitives should be avoided as they fit badly in acceleration structures. * Alpha-textured meshes should be optimized to minimize the amount of alpha testing. @@ -175,5 +178,5 @@ This is an example of a _3D model_ file in glTF format with an accompanying _3D * Texel density should be homogeneous and as low as possible. * UV stretching should be minimized. * Naming of files, nodes, meshes, and materials should be meaningful. -* Usage of multiple PBR maps is encouraged (albedo, roughness, metallic, normals). +* Usage of multiple PBR maps is encouraged (for example, albedo, roughness, metallic, normals). * Smaller objects should have one _material_ per object (for example, baked traffic cone), while larger objects should contain multiple seamless repeatable materials (for example, brick building). diff --git a/content/geometry/introduction.adoc b/content/geometry/introduction.adoc index 366fbfaf..e7d9ed1c 100644 --- a/content/geometry/introduction.adoc +++ b/content/geometry/introduction.adoc @@ -9,7 +9,7 @@ endif::[] == Motivation -A _3D asset_ is a digital entity that includes a 3D geometric representation of an object (also known as _3D model_ or **3D Data File**) along with its attributes and metadata. +A _3D asset_ is a digital entity that includes a 3D geometric representation of an object (also known as _3D model_ or 3D Data File) along with its attributes and metadata. Common formats for storing the geometry and visual materials of _3D models_ include glTF, FBX, and USD. However, these formats do not provide a standardized way to structure the geometry or provide extensive metadata storage and exchange capabilities. @@ -17,9 +17,9 @@ The {THIS_STANDARD} standard addresses these needs. This chapter includes all geometry related definitions of {THIS_STANDARD}, marked in red in <>. -The {THIS_STANDARD} **Asset File** (for example, "omg_my-model.xoma") contains essential information relevant to the display and interactivity attributes of the _3D model_ in various computer applications. +The {THIS_STANDARD} asset file, for example, "omg_my-model.xoma", contains essential information relevant to the display and interactivity attributes of the _3D model_ in various computer applications. This includes metadata, _material_ mappings, and semantic information like coordinate system and pivot point descriptions. -The mapping of materials is stored in a separate **Material Mapping File** (.xomm), which is linked in the Asset File. +The mapping of materials is stored in a separate material mapping file (.xomm), which is linked in the asset file. This setup ensures that the _3D asset_ (or 3D Data File) can be consistently integrated into complex simulations or real-time environments with detailed _material_ and dynamic properties. [#fig-openmaterial-geometry-overview] @@ -46,19 +46,19 @@ Users can continue using their familiar tools and processes to manage geometry, == Interaction with other ASAM standards -The ASAM OpenX standards strive to provide comprehensive, realistic, and most importantly, exchangeable simulation data for the development and testing of autonomous systems: +The ASAM OpenX standards strive to provide comprehensive, realistic, and exchangeable simulation data for the development and testing of autonomous systems: * ASAM OpenDRIVE standardizes the description of road networks, including geometric definitions of the road, but primarily focuses on the semantic description of the road. The {THIS_STANDARD} object class "Environment" enhances this by allowing the definition of a comprehensive _3D environment_ that aligns with an ASAM OpenDRIVE map. * ASAM OpenSCENARIO is a file format created to describe dynamic content in driving and traffic simulators, with a primary focus on complex maneuvers involving multiple entities like vehicles and pedestrians. {THIS_STANDARD} defines node structures and metadata for these object classes to seamlessly integrate ASAM OpenSCENARIO definitions with a _3D model_. The asset file (.xoma) of a static _3D environment_ shall be linked in ASAM OpenSCENARIO using the https://publications.pages.asam.net/standards/ASAM_OpenSCENARIO/ASAM_OpenSCENARIO_XML/latest/generated/content/RoadNetwork.html[SceneGraphFile property]. - Asset files (.xoma) of individual objects, such as vehicles, shall be linked using the https://publications.pages.asam.net/standards/ASAM_OpenSCENARIO/ASAM_OpenSCENARIO_XML/latest/07_components_scenario/07_02_storyboard_entities.html#_3d_models_for_entities[model3d property]. + Asset files (.xoma) of individual objects, such as vehicles, shall be linked using the https://publications.pages.asam.net/standards/ASAM_OpenSCENARIO/ASAM_OpenSCENARIO_XML/latest/07_components_scenario/07_02_storyboard_entities.html[model3d property]. Both environment and objects may either be given as an absolute path or as a path relative to the ASAM OpenSCENARIO file (.xosc). A relative path is indicated by a dot (.) as the first character. - The paths to _3D assets_ specified in the _scenario_ definition shall serve as single source of truth and be used consistently in simulation environments. + The paths to 3D assets specified in the _scenario_ definition shall serve as single source of truth and be used consistently in simulation environments. In the case of distributed simulation environments, the paths shall be synchronized between all relevant simulation components. - Synchronization may be implemented using ASAM Open Simulation Interface (OSI) (see below). + Synchronization may be implemented using ASAM Open Simulation Interface (OSI). * ASAM Open Simulation Interface is a specification for interfaces between models and components in a distributed simulation. ASAM OSI primarily focuses on the environmental perception of automated driving functions, but it also covers interfaces for models of traffic participants. The asset file (.xoma) of a _3D environment_ shall be linked in ASAM OSI using the https://opensimulationinterface.github.io/osi-antora-generator/asamosi/current/gen/structosi3_1_1GroundTruth.html#a83042861723a4a9e890a53aa98d88858[GroundTruth::model_reference]. @@ -68,6 +68,6 @@ The ASAM OpenX standards strive to provide comprehensive, realistic, and most im As ASAM OSI transfers the data between tools and simulation models, the root path that a relative model reference path is relative to, has to be given or known to all tools and models in the tool chain. This can be done with tool settings, configs, or model parameters, for example, an FMI parameter. -The transformation of reference frames between these ASAM standards is described in the xref:../geometry/general.adoc#_local_coordinate_system[General section]. +The transformation of reference frames between these ASAM standards is described in xref:../geometry/general.adoc#_local_coordinate_system[]. From dcc48e10f5ca1a1fa42b39ac4dc1160d0f0cc5ff Mon Sep 17 00:00:00 2001 From: FKlopfer Date: Mon, 20 Jan 2025 15:35:05 +0100 Subject: [PATCH 16/20] small edit Signed-off-by: FKlopfer --- content/general-docs/introduction.adoc | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/content/general-docs/introduction.adoc b/content/general-docs/introduction.adoc index 9bac712c..58000176 100644 --- a/content/general-docs/introduction.adoc +++ b/content/general-docs/introduction.adoc @@ -165,7 +165,7 @@ Notes, footnotes, and examples shall not contain requirements or any information The following deliverables are provided for {THIS_STANDARD}: -* https://asam-ev.github.io/OpenMATERIAL/asamopenmaterial/latest/specification/index.html[{THIS_STANDARD} BS 1-0-0 Specification, 2025-MM-DD] (this document, contained in this site) +* https://asam-ev.github.io/OpenMATERIAL/asamopenmaterial/latest/specification/index.html[{THIS_STANDARD}® BS 1-0-0 Specification, 2025-MM-DD] (this document, contained in this site) * https://github.com/asam-ev/OpenMATERIAL/tree/main/schemas[JSON schema files] for all json formats (contained in the {THIS_STANDARD} Github repository) * https://github.com/asam-ev/OpenMATERIAL/tree/main/examples[Example files] for all defined file formats (contained in the {THIS_STANDARD} Github repository) and further examples of ** a https://github.com/asam-ev/OpenMATERIAL/tree/main/examples/vehicle_example[vehicle] (contained in the {THIS_STANDARD} Github repository) From c2d87272061aac101edae558ffab9fcb83a2d5b5 Mon Sep 17 00:00:00 2001 From: FKlopfer Date: Tue, 21 Jan 2025 10:16:40 +0100 Subject: [PATCH 17/20] Incorporate feedback Signed-off-by: FKlopfer --- content/general-docs/introduction.adoc | 2 +- content/geometry/general.adoc | 2 +- content/geometry/introduction.adoc | 4 ++-- content/geometry/object-environment/environment-general.adoc | 2 +- content/nav-openmaterial.adoc | 1 + schemas/material_brdf_schema.json | 2 +- 6 files changed, 7 insertions(+), 6 deletions(-) diff --git a/content/general-docs/introduction.adoc b/content/general-docs/introduction.adoc index 58000176..e319db4e 100644 --- a/content/general-docs/introduction.adoc +++ b/content/general-docs/introduction.adoc @@ -93,7 +93,7 @@ The defined look-up tables include: * xref:material/material-emp-schema.adoc[Electromagnetic properties] * xref:material/material-optical-schema.adoc[Optical properties] * xref:material/material-brdf-schema.adoc[Bidirectional reflectance distribution functions (BRDFs)] -//* xref:material/material-reflectance-schema.adoc[Reflectance table] +* xref:material/material-reflectance-schema.adoc[Reflectance table] Examples for _material property_ files and look-up table files are provided in the https://github.com/asam-ev/OpenMATERIAL/tree/main/examples/[examples folder] of the repository. diff --git a/content/geometry/general.adoc b/content/geometry/general.adoc index a3638143..8b2dc19e 100644 --- a/content/geometry/general.adoc +++ b/content/geometry/general.adoc @@ -135,7 +135,7 @@ Users are free to add more keywords for themself, if they are needed. The follow The following rules for metadata apply: -* Fields shall be named according to the Camel case definition, starting with lowercase letters. +* Fields shall be named according to the lowerCamelCase definition, starting with lowercase letters. * Naming of custom properties shall follow the predefined keys. * Objects, arrays (lists), and enums shall follow the notation in the corresponding json files. diff --git a/content/geometry/introduction.adoc b/content/geometry/introduction.adoc index e7d9ed1c..04983002 100644 --- a/content/geometry/introduction.adoc +++ b/content/geometry/introduction.adoc @@ -17,7 +17,7 @@ The {THIS_STANDARD} standard addresses these needs. This chapter includes all geometry related definitions of {THIS_STANDARD}, marked in red in <>. -The {THIS_STANDARD} asset file, for example, "omg_my-model.xoma", contains essential information relevant to the display and interactivity attributes of the _3D model_ in various computer applications. +The {THIS_STANDARD} asset file contains essential information relevant to the display and interactivity attributes of the _3D model_ in various computer applications. This includes metadata, _material_ mappings, and semantic information like coordinate system and pivot point descriptions. The mapping of materials is stored in a separate material mapping file (.xomm), which is linked in the asset file. This setup ensures that the _3D asset_ (or 3D Data File) can be consistently integrated into complex simulations or real-time environments with detailed _material_ and dynamic properties. @@ -68,6 +68,6 @@ The ASAM OpenX standards strive to provide comprehensive, realistic, and exchang As ASAM OSI transfers the data between tools and simulation models, the root path that a relative model reference path is relative to, has to be given or known to all tools and models in the tool chain. This can be done with tool settings, configs, or model parameters, for example, an FMI parameter. -The transformation of reference frames between these ASAM standards is described in xref:../geometry/general.adoc#_local_coordinate_system[]. +The transformation of reference frames between these ASAM standards is described in xref:../geometry/general.adoc#_local_coordinate_system[Local coordinate system]. diff --git a/content/geometry/object-environment/environment-general.adoc b/content/geometry/object-environment/environment-general.adoc index 6286d0b0..3be03435 100644 --- a/content/geometry/object-environment/environment-general.adoc +++ b/content/geometry/object-environment/environment-general.adoc @@ -10,4 +10,4 @@ The latter is further detailed by its child nodes, the drivable area, sidewalks, An https://github.com/asam-ev/OpenMATERIAL/tree/main/examples/environment_example[example environment asset] is provided in the examples folder. Groups with a local transform are indicated in the structure by a (T). -This is only an indicator in the documentation and is not necessarily contained in the actual node name. \ No newline at end of file +This is only an indicator in the documentation and must not be contained in the actual node name. \ No newline at end of file diff --git a/content/nav-openmaterial.adoc b/content/nav-openmaterial.adoc index a8cb78ac..2719f547 100644 --- a/content/nav-openmaterial.adoc +++ b/content/nav-openmaterial.adoc @@ -32,6 +32,7 @@ include::material/material-schema.adoc[leveloffset=+2] include::material/material-emp-schema.adoc[leveloffset=+2] include::material/material-optical-schema.adoc[leveloffset=+2] include::material/material-brdf-schema.adoc[leveloffset=+2] +include::material/material-reflectance-schema.adoc[leveloffset=+2] :sectnums!: [bibliography] diff --git a/schemas/material_brdf_schema.json b/schemas/material_brdf_schema.json index 6780ab86..5df9dc4d 100644 --- a/schemas/material_brdf_schema.json +++ b/schemas/material_brdf_schema.json @@ -44,7 +44,7 @@ }, "authors": { "type": "array", - "description": "Lists the author(s) of the material as a name, email, or company. Multiple authors should be comma-separated.", + "description": "Lists the author(s) of the material as a name, email, or company.", "items": { "type": "string" }, From 32a19b1dbac405faad04aa4c1dd454431a522454 Mon Sep 17 00:00:00 2001 From: FKlopfer Date: Tue, 21 Jan 2025 11:17:17 +0100 Subject: [PATCH 18/20] Small edits Signed-off-by: FKlopfer --- content/bibliography.bib | 4 ++++ schemas/mapping_schema.json | 4 ++-- schemas/material_reflectance_schema.json | 2 +- 3 files changed, 7 insertions(+), 3 deletions(-) diff --git a/content/bibliography.bib b/content/bibliography.bib index 6859a68e..fd54ff45 100644 --- a/content/bibliography.bib +++ b/content/bibliography.bib @@ -45,3 +45,7 @@ @misc{EPSG title = {https://epsg.io[Coordinate Systems Worldwide^]}, note = {[viewed 2024-03-18]} } + +@Standard{uui, + title = {https://en.wikipedia.org/wiki/Universally_unique_identifier[__Wikipedia__^], Universally unique identifier} +} \ No newline at end of file diff --git a/schemas/mapping_schema.json b/schemas/mapping_schema.json index e8657268..d686899b 100644 --- a/schemas/mapping_schema.json +++ b/schemas/mapping_schema.json @@ -17,7 +17,7 @@ }, "uuid": { "type": "string", - "description": "Universally unique identifier for the mapping table in 8-4-4-4-12 format, see https://en.wikipedia.org/wiki/Universally_unique_identifier. The uuid stays the same, even if version is updated.", + "description": "Universally unique identifier for the mapping table in 8-4-4-4-12 format, see cite:[uui]. The uuid stays the same, even if version is updated.", "pattern": "\\b[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12}\\b$" }, "mappingVersion": { @@ -44,7 +44,7 @@ }, "authors": { "type": "array", - "description": "Lists the author(s) of the mapping table as a name, email, or company. Multiple authors should be comma-separated.", + "description": "Lists the author(s) of the mapping table as a name, email, or company.", "items": { "type": "string" }, diff --git a/schemas/material_reflectance_schema.json b/schemas/material_reflectance_schema.json index b953c4cd..ffdd2c56 100644 --- a/schemas/material_reflectance_schema.json +++ b/schemas/material_reflectance_schema.json @@ -57,7 +57,7 @@ }, "sources": { "type": "string", - "description": "Sources of the reflectance data. Was is measured, simulated, or taken from literature? Multiple sources should be comma-separated." + "description": "Sources of the reflectance data (for example, was is measured, simulated, or taken from literature?) Multiple sources should be comma-separated." } }, "required": [ From b1d011bfc6d8dcdc58f85264e6991a4176130739 Mon Sep 17 00:00:00 2001 From: FKlopfer Date: Tue, 21 Jan 2025 11:26:13 +0100 Subject: [PATCH 19/20] remove direct wikipedia link and reference bibliography instead Signed-off-by: FKlopfer --- schemas/asset_schema.json | 2 +- schemas/material_brdf_schema.json | 2 +- schemas/material_emp_schema.json | 2 +- schemas/material_optical_schema.json | 2 +- schemas/material_reflectance_schema.json | 2 +- schemas/material_schema.json | 2 +- 6 files changed, 6 insertions(+), 6 deletions(-) diff --git a/schemas/asset_schema.json b/schemas/asset_schema.json index ae426d06..2664cb22 100644 --- a/schemas/asset_schema.json +++ b/schemas/asset_schema.json @@ -57,7 +57,7 @@ }, "uuid": { "type": "string", - "description": "Universally unique identifier for the asset in 8-4-4-4-12 format, see https://en.wikipedia.org/wiki/Universally_unique_identifier. The uuid stays the same, even if version is updated.", + "description": "Universally unique identifier for the asset in 8-4-4-4-12 format, see cite:[uui]. The uuid stays the same, even if version is updated.", "pattern": "\\b[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12}\\b$" }, "assetVersion": { diff --git a/schemas/material_brdf_schema.json b/schemas/material_brdf_schema.json index 5df9dc4d..860d7ce8 100644 --- a/schemas/material_brdf_schema.json +++ b/schemas/material_brdf_schema.json @@ -17,7 +17,7 @@ }, "uuid": { "type": "string", - "description": "Universally unique identifier for the material in 8-4-4-4-12 format, see https://en.wikipedia.org/wiki/Universally_unique_identifier. The uuid stays the same, even if version is updated.", + "description": "Universally unique identifier for the material in 8-4-4-4-12 format, see see cite:[uui]. The uuid stays the same, even if version is updated.", "pattern": "\\b[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12}\\b$" }, "materialVersion": { diff --git a/schemas/material_emp_schema.json b/schemas/material_emp_schema.json index b7ecfb1b..88d0d6fc 100644 --- a/schemas/material_emp_schema.json +++ b/schemas/material_emp_schema.json @@ -17,7 +17,7 @@ }, "uuid": { "type": "string", - "description": "Universally unique identifier for the material in 8-4-4-4-12 format, see https://en.wikipedia.org/wiki/Universally_unique_identifier. The uuid stays the same, even if version is updated.", + "description": "Universally unique identifier for the material in 8-4-4-4-12 format, see cite:[uui]. The uuid stays the same, even if version is updated.", "pattern": "\\b[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12}\\b$" }, "materialVersion": { diff --git a/schemas/material_optical_schema.json b/schemas/material_optical_schema.json index ffe4fc32..ca1481c7 100644 --- a/schemas/material_optical_schema.json +++ b/schemas/material_optical_schema.json @@ -17,7 +17,7 @@ }, "uuid": { "type": "string", - "description": "Universally unique identifier for the material in 8-4-4-4-12 format, see https://en.wikipedia.org/wiki/Universally_unique_identifier. The uuid stays the same, even if version is updated.", + "description": "Universally unique identifier for the material in 8-4-4-4-12 format, see cite:[uui]. The uuid stays the same, even if version is updated.", "pattern": "\\b[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12}\\b$" }, "materialVersion": { diff --git a/schemas/material_reflectance_schema.json b/schemas/material_reflectance_schema.json index ffdd2c56..dbda63cc 100644 --- a/schemas/material_reflectance_schema.json +++ b/schemas/material_reflectance_schema.json @@ -17,7 +17,7 @@ }, "uuid": { "type": "string", - "description": "Universally unique identifier for the material in 8-4-4-4-12 format, see https://en.wikipedia.org/wiki/Universally_unique_identifier. The uuid stays the same, even if version is updated.", + "description": "Universally unique identifier for the material in 8-4-4-4-12 format, see cite:[uui]. The uuid stays the same, even if version is updated.", "pattern": "\\b[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12}\\b$" }, "materialVersion": { diff --git a/schemas/material_schema.json b/schemas/material_schema.json index 6d196188..7a1c5824 100644 --- a/schemas/material_schema.json +++ b/schemas/material_schema.json @@ -17,7 +17,7 @@ }, "uuid": { "type": "string", - "description": "Universally unique identifier for the material in 8-4-4-4-12 format, see https://en.wikipedia.org/wiki/Universally_unique_identifier. The uuid stays the same, even if version is updated.", + "description": "Universally unique identifier for the material in 8-4-4-4-12 format, see cite:[uui]. The uuid stays the same, even if version is updated.", "pattern": "\\b[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12}\\b$" }, "materialVersion": { From 2365a2daea86bb929d910e7c46f4e1c27ce57124 Mon Sep 17 00:00:00 2001 From: FKlopfer Date: Tue, 21 Jan 2025 11:31:08 +0100 Subject: [PATCH 20/20] fix typo Signed-off-by: FKlopfer --- schemas/material_brdf_schema.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/schemas/material_brdf_schema.json b/schemas/material_brdf_schema.json index 860d7ce8..9a20369f 100644 --- a/schemas/material_brdf_schema.json +++ b/schemas/material_brdf_schema.json @@ -17,7 +17,7 @@ }, "uuid": { "type": "string", - "description": "Universally unique identifier for the material in 8-4-4-4-12 format, see see cite:[uui]. The uuid stays the same, even if version is updated.", + "description": "Universally unique identifier for the material in 8-4-4-4-12 format, see cite:[uui]. The uuid stays the same, even if version is updated.", "pattern": "\\b[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12}\\b$" }, "materialVersion": {