Issues with FBX to glTF conversion

Hi!

We are using Cesium ion to convert FBX files to GLB and are having the following issues:

  1. 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.

  2. 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

  1. 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.