相关疑难解决方法(0)

限制Three.js中的帧率以提高性能,requestAnimationFrame?

我在想,对于一些项目我做60fps并不是完全需要的.我想我可以有更多的物体和物体以30fps运行,如果我能让它以该帧速率平稳运行.我想如果我在three.js中编辑了requestAnimationFrame垫片,我可以将它限制为30.但是我想知道是否有更好的方法来使用提供的three.js本身.此外,这会给我带来我正在思考的性能提升.我能以30fps的速度渲染两倍于60fps的物体吗?我知道在30和60之间运行的东西之间的区别,但是我能够以平稳的恒定30fps运行吗?

我通常使用WebGLRenderer,如果需要,可以回退到Canvas,除了专门针对一个的项目,通常是webgl着色器项目.

javascript html5 canvas three.js requestanimationframe

23
推荐指数
4
解决办法
2万
查看次数

Three.js Collada - 处理()和释放内存(垃圾收集)的正确方法是什么?

我已经通过ColladaLoader成功导入了.dae场景.

问题是,我需要在几个.dae文件之间切换.

我似乎无法正确实现dispose方法.

        dae.traverse(function(obj) {

            console.log('unloading ' + obj.id);

            scene.remove(obj);

            if(obj.geometry)
                obj.geometry.dispose();
            if(obj.material)
                obj.material.dispose();
            if(obj.mesh)
                obj.mesh.dispose();
            if(obj.texture)
                obj.texture.dispose();

        });

        scene.remove(dae);
Run Code Online (Sandbox Code Playgroud)

我可能做错了什么?

非常感谢提前!


编辑:

这是整个代码.

    var renderer = null;
    var scene = null;
    var camera = null;
    var controls = null;
    var dae = null;
    //var loader = null;

    function init() {


        renderer = new THREE.WebGLRenderer( { alpha: 1, antialias: true, clearColor: 0xffffff } );
        renderer.setSize( 800, 600 );

        var elem = $('.main3d')[0];
        elem.appendChild( renderer.domElement );

        scene = new THREE.Scene();

        camera …
Run Code Online (Sandbox Code Playgroud)

blender collada three.js

8
推荐指数
2
解决办法
6260
查看次数