private void loadModel(Vector3f offset, float scale, int modelType, int materialType) {
        if (loadedSpatial != null) {
            loadedSpatial.removeFromParent();
        }


        if (modelType == 0) loadedSpatial = loadGltf();
        else if (modelType == 1) loadedSpatial = loadGltfGen();
        else if (modelType == 2) loadedSpatial = loadOgre();
        else if (modelType == 3) loadedSpatial = loadOgreGen();

        loadedSpatial.scale(scale);
        loadedSpatial.move(offset);
        if (materialType == 0) loadedSpatial.setMaterial(createPBRLightingMat());
        else if (materialType == 1) loadedSpatial.setMaterial(createSPLightingMat());
        else if (materialType == 2) loadedSpatial.setMaterial(createLightingMat());
        probeNode.attachChild(loadedSpatial);
    }
This test cycles through a model exported in different formats and with different materials with tangents
generated in different ways. The normal map should look correct in all cases. Refer to
https://github.com/KhronosGroup/glTF-Sample-Models/tree/master/2.0/NormalTangentMirrorTest for details on
the correct result and debugging.
jme3-examples/src/main/java/jme3test/material/TestNormalMappingConsistency.java