Hi!
We are using Cesium ion to convert FBX files to GLB and are having the following issues:
-
It seems like separate meshes in a model are being combined and merged into a single mesh. We would prefer that models keep their individual meshes as they were before the conversion.
-
Transparent materials seem to be losing their transparency after the conversion.
For example here is a material defined in an FBX file:
Material: 140669780624512, "Material::Transparency Intensity", "" {
Version: 102
ShadingModel: "lambert"
MultiLayer: 0
Properties70: {
P: "AmbientColor", "Color", "", "A",0,0,0
P: "DiffuseColor", "Color", "", "A",0,0,0
P: "TransparentColor", "Color", "", "A",1,1,1
P: "TransparencyFactor", "Number", "", "A",0.8
P: "Emissive", "Vector3D", "Vector", "",0,0,0
P: "Ambient", "Vector3D", "Vector", "",0,0,0
P: "Diffuse", "Vector3D", "Vector", "",0,0,0
P: "Opacity", "double", "Number", "",0.2
}
}
And the material in the glTF after being converted:
{
"alphaMode": "OPAQUE",
"extras": {
"fromFBX": {
"shadingModel": "Lambert",
"isTruePBR": false
}
},
"pbrMetallicRoughness": {
"baseColorFactor": [
0,
0,
0,
0.200000002980232
],
"metallicFactor": 0.200000002980232,
"roughnessFactor": 0.800000011920929
},
"emissiveFactor": [
0,
0,
0
],
"doubleSided": false,
"name": "Transparency Intensity"
}
The problem seems to be it’s setting alphaMode to OPAQUE
- The emissive factor doesn’t seem to be preserved through the conversion.
Example material in FBX:
Material: 140669781679200, "Material::Mat", "" {
Version: 102
ShadingModel: "lambert"
MultiLayer: 0
Properties70: {
P: "EmissiveColor", "Color", "", "A",1,0,0
P: "AmbientColor", "Color", "", "A",0,0,0
P: "DiffuseColor", "Color", "", "A",0,0.266666666666668,1
P: "Emissive", "Vector3D", "Vector", "",1,0,0
P: "Ambient", "Vector3D", "Vector", "",0,0,0
P: "Diffuse", "Vector3D", "Vector", "",0,0.266666666666668,1
P: "Opacity", "double", "Number", "",1
}
}
And the material in the glTF after being converted:
{
"name": "Mat",
"pbrMetallicRoughness": {
"baseColorFactor": [
0.0,
0.2666666805744171,
1.0,
1.0
],
"baseColorTexture": {
"index": -1,
"textCoord": 0
},
"metallicFactor": 0.200000002980232,
"roughnessFactor": 0.800000011920929,
"metallicRoughnessTexture": {
"index": -1,
"textCoord": 0
}
},
"extensions": {
"KHR_materials_pbrSpecularGlossiness": {
"diffuseFactor": [
0.0,
0.0,
0.0,
0.0
],
"diffuseTexture": {
"index": -1,
"textCoord": 0
},
"glossinessFactor": 0.0,
"specularFactor": [
0.0,
0.0,
0.0
]
},
"KHR_materials_unlit": {}
},
"commonConstant": {
"ambientFactor": [],
"lightmapTexture": {
"index": -1,
"textCoord": 0,
"scale": 1.0
},
"lightmapFactor": []
},
"normalTexture": {
"index": -1,
"textCoord": 0,
"scale": 1.0
},
"occlusionTexture": {
"index": -1,
"textCoord": 0,
"strength": 1.0
},
"emissiveTexture": {
"index": 0,
"textCoord": 0
},
"emissiveFactor": [
1.0,
1.0,
1.0
],
"alphaMode": "OPAQUE",
"alphaCutoff": 0.5,
"doubleSided": false
}
in the FBX material “EmissiveColor” is set to 1, 0, 0 but in the converted glTF material “emissiveFactor” is set to 1, 1, 1.
Right now these issues are causing our team to do a lot manual conversion work for our customers. So we are wondering if there are any steps that can be made to resolve these issues.