2

I have been working on webGL for more than 3 months and earlier it was easily rendering my .obj and .mtl with OBJMTLLoader.js. But now it's not rendering properly. It is only rendering .obj file, not .mtl file.

So I searched web and found OBJMTLLoader.js is no longer in use. And instead we use MTLLoader.js and OBJLoader.js.

The Code is like this:

var onprogress = function (xhr) {
    if (xhr.lengthComputable) {
        var percentComplete = xhr.loaded / xhr.total * 100;
        console.log(Math.round(percentComplete, 2) + '% downloaded');
    }
};

var onerror = function (xhr) {
    console.log(xhr);
};


THREE.Loader.Handlers.add(/\.dds$/i, new THREE.DDSLoader());

var mtlLoader = new THREE.MTLLoader();
if (mtljs) {
    for (var i = 0; i < mtljs.length; i++) {
        mtlLoader.setPath(mtljs[i].substr(0, mtljs[i].lastIndexOf("/") + 1));
        mtlLoader.load(mtljs[i], function (materials) {
            materials.preLoad();

            var objLoader = new THREE.OBJLoader();
            if (objjs) {
                for (var j = 0; j < objjs.length; j++) {
                    objLoader.setMaterials(materials);
                    objLoader.setPath(objjs[i].substr(0, objjs[i].lastIndexOf("/") + 1));
                    objLoader.load(objjs[i], function (object) {
                        object.position.y = -33;
                        scene.add(object);
                    }, onprogress, onerror);
                }
            }
        }, onprogress, onerror);
    }
}

mtlLoader.castShadow = true;
mtlLoader.receiveShadow = true;

renderer = Detector.webgl ? new THREE.WebGLRenderer() : new THREE.CanvasRenderer();
renderer.setClearColor(0xffffff, true);
renderer.setPixelRatio(window.devicePixelRatio);
renderer.setSize(windowHalfX, windowHalfY);
renderer.shadowMap.enabled = true;
renderer.shadowMap.Type = THREE.PCFSoftShadowMap;
container.appendChild(renderer.domElement);

controls = new THREE.OrbitControls(camera, renderer.domElement);

window.addEventListener('resize', onWindowResize, false);

Now, this code is not giving Error. It is giving this warning

THREE.WebGLRenderer: OES_texture_float_linear extension not supported

I want to know why this is happening and is their any solution on this? What if I don't need to use OES_texture_float_linear extension, Or find another alternative for the same?

RamenChef
  • 5,557
  • 11
  • 31
  • 43
Ashish Akhare
  • 27
  • 1
  • 8

0 Answers0