首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何使用DRACO装载机与GLTF装载机?

如何使用DRACO装载机与GLTF装载机?
EN

Stack Overflow用户
提问于 2022-05-03 19:51:01
回答 1查看 469关注 0票数 2

你好伙计们!

一直在用three.js做一些实验,设法用draco将70 MB的模型降低到10 MB,但是我对Draco并不太熟悉,我还没有找到一个关于如何使用Draco加载器和GLTF加载器的好例子,有人能给我展示一个很好的示例或检查我的代码,看看我需要更改哪些东西才能使用它并加载压缩模型吗?泰姆!

代码语言:javascript
复制
    import * as THREE from '../build/three.module.js';
        import Stats from './jsm/libs/stats.module.js';
        import { OrbitControls } from './jsm/controls/OrbitControls.js';
        import { GLTFLoader } from './jsm/loaders/GLTFLoader.js';

        let camera, scene, renderer, stats;
        var raycaster, mouse = { x : 0, y : 0 };
        var objects = []; 
        var selectedObject;


        init();
        animate();

        function init() {

            const container = document.createElement( 'div' );
            document.body.appendChild( container );

            camera = new THREE.PerspectiveCamera( 45, window.innerWidth / window.innerHeight, 0.25, 20 );
            camera.position.set( - 1.8, 0.6, 2.7 );

            scene = new THREE.Scene();
            scene.background = new THREE.Color( 0xa0a0a0 );
            raycaster = new THREE.Raycaster();


            const hemiLight = new THREE.HemisphereLight( 0xa0a0a0,  0xa0a0a0, 2);
            scene.add(hemiLight);


                // model
                
                        const loader = new GLTFLoader().setPath( 'models/fbx/lowlight3_out/' );
                        loader.load( 'lowlight3.gltf', function ( gltf ) {

                            gltf.scene.traverse( function ( child ) {

                        if ( child.isMesh ) {

                            child.castShadow = true;
                            child.receiveShadow = true;


                        }

                    } );

                    scene.add( gltf.scene );

                } );

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2022-05-03 21:08:45

只需按照three.js的默认示例添加Draco,就可以让它正常工作:

添加

代码语言:javascript
复制
import { DRACOLoader } from './jsm/loaders/DRACOLoader.js';

&

代码语言:javascript
复制
                    const loader = new GLTFLoader().setPath( 'models/fbx/compressed/' );
                    const dracoLoader = new DRACOLoader();
                    dracoLoader.setDecoderPath( './js/libs/draco/' );
                    loader.setDRACOLoader( dracoLoader );

对于任何有相同问题的人,只需查看下面的示例:

https://threejs.org/docs/#examples/en/loaders/GLTFLoader

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/72104756

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档