繁体   English   中英

在 Autodesk Forge Viewer 中添加 ThreeJs model

[英]Add ThreeJs model in Autodesk Forge Viewer

我通过objectloader加载threejs model时遇到问题,我添加了最新的ThreeJs库版本以获得更多功能,例如使用objectloader创建文本......这是我的代码:

    loadThreeJs() {
        const loader = new THREEE.ObjectLoader();

        loader.load('./assets/MVP-TW-CCTV TOWER.json', (obj) => {
            console.log(obj)
            var object3DInside = obj.children[0].children[0];
            console.log(object3DInside)
            setTimeout(() => {this.addScene(object3DInside)},1000)
        }, (xhr) => {
            console.log((xhr.loaded / xhr.total * 100) + '% loaded');
        });
    }
    addScene(obj:any)
    {
        this.viewer.impl.createOverlayScene('load-scene');
        this.viewer.impl.addOverlay('load-scene', obj );
        this.viewer.impl.invalidate(true);
    }

其中三个是我从外部加载的三个库。 obj是场景,所以我得到了 object3D 的孩子,但它总是返回object not an instance of THREE.Object3D. 我记录结果和类型是object3D,它应该是正确的,但它不是?

在此处输入图像描述

看起来您正在使用另一个版本的 three.js 并在全局范围内引用它,这不是由 Forge Viewer 本身提供的,它会与 Forge Viewer 冲突。 正如Petr在这里提到的( 在autodesk forge viewer中升级三个js版本),Forge Viewer使用自维护的three.js r71删除了大部分内置的three.js功能。

如果您想使用 Forge Viewer 的 three.js 库中缺少的功能,我建议您使用一些现代开发工具,例如捆绑程序(Webpack 是最受欢迎的工具)。 您可以利用 ES6 模块并仅将严格需要的依赖项导入您的应用程序。 threejs-full-es6 package 允许您将 Three.js 功能独立导入您的应用程序,因此在这种情况下,我们可以导入THREEE.ObjectLoader,所有其他必需的依赖项将由 ZEFE90A8ZE604A7C8B9EEZ 实现处理。

请在此处查看 Forge 社区博客: https://forge.autodesk.com/blog/how-add-newest-threejs-features-forge-viewer

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM