如何使用Three.js加載obj和mtl文件


OBJ和MTL是3D模型的幾何模型文件和材料文件。

在最新的three.js版本(r78)中,以前的OBJMTLLoader類已廢棄。

現在要加載OBJ和MTL文件,需要結合OBJLoader和MTLLoader兩個類來實現,這也提供了操作的靈活性。

下述代碼中首先使用MTLLoader加載egg.mtl材料文件,然后把該材料設置給一個OBJLoader對象,以便在加載obj模型的時候進行應用。

onProgress是加載過程回調函數,onError是錯誤處理函數。

// model
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) {};
 
THREE.Loader.Handlers.add(/\.dds$/i, new THREE.DDSLoader());
 
var mtlLoader = new THREE.MTLLoader();
mtlLoader.setPath('/uploads/160601/obj/');
mtlLoader.load('egg.mtl', function(materials) {
 
    materials.preload();
 
    var objLoader = new THREE.OBJLoader();
    objLoader.setMaterials(materials);
    objLoader.setPath('/uploads/160601/obj/');
    objLoader.load('egg.obj', function(object) {
 
        object.position.y = -0.5;
        scene.add(object);
 
    }, onProgress, onError);
 
});

 

完整代碼:https://wow.techbrood.com/fiddle/27158


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM