I am trying to find a list of the r,g,b values for each material in the CDB Base Materials List.
Is there a specific global values or is it different for each database?
Material on 3D models (GS/GT/MM) also uses CMIX.
Note that the signature datasets are for radar signature (RCS as shapefile) and this is not the same as material definition. The signature dataset is not present in all CDBs (Presagis Terra Vista does not currently publish this).
Back to materials on 3D models....
In CDB 3.0, CMIX is present as an attribute of the feature dataset (GS/GTfeature in vector format. This is a coarse representation of "the most represented" composite material in the model. You can also put the CMIX in the geometry itself as a comment in OpenFlight node (group node to specify a geometry subset). Those refer to the ModelDescriptor (GT/GS/MM) file for Composite material definition.
In addition to those, CDB 3.2 introduced a Material Texture (dataset 304, 504 and 601) to allow more precise material representation not limited by geometry.
Those various means to encode materials can be viewed as different LODs, going from a simple but coarse representation to a more detailed and fine representation.
As an additional resource on CDB materials, you can also lookup the CDB Primer presentation in the CDB starter kit.
Thank you Hermann for the elaborated explanation. It is very helpful!
I am downloading the Starter Kit and will investigate it more deeply.
In continuation to your description, I wonder if the same method is working for the GSmodels and GTmodels? I assume their textures are stored in the GSModelSignature and GTModelSignature directories. What is their format? Tiff or TMM? And what about moving models?
I believe you are talking about the Composite Material Index (CMIX) and Composite Material Table (CMT).
The material definition in the CDB are used in a number of datasets (005 - RMTexture, 006 - RMDescriptor, 200 - VectorMaterial etc....) and rely on the same powerful and flexible concept explained in the CDB Specification.
The CMIX value (what you refer as RGB but in CDB it is only one value in one channel) is not fixed by the spec but allocated at the CDB creation time. When the composite material is assembled with its various substrates of base materials, an index is allocated. This assembling leads to an infinite number of combination which is why the specification does not allocate the index.
For example, the pair of "005 - RMTexture" and "006 - RMDescriptor" must be used together. For each RMtexture TIFF file, there is a matching XML material description in RMDescriptor which provided the CMIX value (index) mapping to a full Composite material. Lookup the "XML notation for a Composite Material Table" in the CDB specification Volume 1.
Each Composite material definition start with a "<Composite_Material index="...">" entry. This is the index allocated for the matching TIFF file. Within the Composite Material definition, the CDB Base material enumeration is used (as text like BM_WATER, no index are allocated). The valid list of material in the enumeration is distributed with the specification in the CDB/Metadata folder as Material.xml.
Composite Material indexes are allocated based on the material present in the TIFF file only, typically starting with index 1 (0 reserved for default value). If only 5 different composite materials are present in the TIFF file, they will typically be indexed from 1 to 5 (however, index allocation is not dictated by the spec. As long as the index used in the TIFF can be found in the Material Descriptor XML, the data is valid). The same composite can be allocated a different index in a different pair of XML and TIFF file.
I recommend you download the CDB Starter kit from the Presagis Web Site for a sample database:
Now, if you are trying to interface an existing system which supports only a pre-defined list of material, you will have to approximate the material. That approximation may be something like this:
- use only the first Base material of the primary substrate (most present material)
- use a system specific mapping table to map a CDB base material to a system material index
Does that answer your question?