The materialDefinitions object in I3S version 1.7 and higher are feature-compatible with glTF material but with the following exceptions. I3S material colors properties (baseColorFactor, emissiveFactor etc.) are assumed to be in the same color space as the textures, most commonly sRGB while in glTF they are interpreted as linear. glTF has separate definitions for properties like strength for occlusionTextureInfo and scale for normalTextureInfo. Further I3S has only one texture definition with factor that replaces strength and scale.
Property | Type | Description |
---|---|---|
pbrMetallicRoughness | pbrMetallicRoughness | A set of parameter values that are used to define the metallic-roughness material model from Physically-Based Rendering (PBR) methodology. When not specified, all the default values of pbrMetallicRoughness apply. |
normalTexture | materialTexture | The normal texture map. They are a special kind of texture that allow you to add surface detail such as bumps, grooves, and scratches to a model which catch the light as if they are represented by real geometry. |
occlusionTexture | materialTexture | The occlusion texture map. The occlusion map is used to provide information about which areas of the model should receive high or low indirect lighting |
emissiveTexture | materialTexture | The emissive texture map. A texture that receives no lighting, so the pixels are shown at full intensity. |
emissiveFactor | number[3] | The emissive color of the material. |
alphaMode | string | Defines the meaning of the alpha-channel/alpha-mask. Possible values are:
|
alphaCutoff | number | The alpha cutoff value of the material (alphaMode=mask ) default = 0.25 . |
doubleSided | boolean | Specifies whether the material is double sided. For lightning, the opposite normals will be used when original normals are facing away from the camera. default=false . |
cullFace | string | Winding order is counterclockwise. Possible values are:
|
{
"alphaMode": "mask",
"alphaCutoff": 0.25,
"pbrMetallicRoughness": {
"baseColorFactor": [
0.5,
0.5,
0.5,
1.0
],
"baseColorTexture": {
"textureSetDefinitionId": 0,
"texCoord": 0
},
"metallicFactor": 1,
"roughnessFactor": 1,
"metallicRoughnessTexture": {
"textureSetDefinitionId": 2,
"texCoord": 1
}
},
"normalTexture": {
"textureSetDefinitionId": 1,
"factor": 2.0,
"texCoord": 1
}
}