zoukankan      html  css  js  c++  java
  • 如何使用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

  • 相关阅读:
    leetcode_Basic Calculator II
    leetcode_Basic Calculator
    LeetCode_Add Two Numbers
    LeetCode_Partition List
    LeetCode_Compare Version Numbers
    LeetCode—Longest Consecutive Sequence
    Thrift数据类型
    thrift简介
    grpc与json格式互转
    grpc测试
  • 原文地址:https://www.cnblogs.com/smedas/p/12454695.html
Copyright © 2011-2022 走看看