private Spatial tryCreateGeometry(int materialIndex, Mesh jmeMesh, boolean single) {
        // Map meshes without material indices to material 0.
        if (materialIndex == -1) {
            materialIndex = 0;
        }
        
        Material jmeMat;
        if (materialIndex >= materials.size()) {
            // Material index does not exist. Create default material.
            jmeMat = new Material(assetManager, "Common/MatDefs/Light/Lighting.j3md");
            jmeMat.setReceivesShadows(true);
        } else {
            FbxMaterial fbxMat = materials.get(materialIndex);
            jmeMat = fbxMat.getJmeObject();
        }
        
        String geomName = getName();
        if (single) {
            geomName += "-submesh";
        } else {
            geomName += "-mat-" + materialIndex + "-submesh";
        }
        Spatial spatial = new Geometry(geomName, jmeMesh);
        spatial.setMaterial(jmeMat);
        if (jmeMat.isTransparent()) {
            spatial.setQueueBucket(Bucket.Transparent);
        }
        if (jmeMat.isReceivesShadows()) {
            spatial.setShadowMode(ShadowMode.Receive);
        }
        spatial.updateModelBound();
        return spatial;
    }
For FBX nodes that contain a skeleton (i.e. FBX limbs).
jme3-plugins/src/fbx/java/com/jme3/scene/plugins/fbx/node/FbxNode.java