admin管理员组

文章数量:1202791

I'm trying to load an .stl file into three.js. Everything works fine and I get the model as BufferGeometry using this code:

    var loader = new THREE.STLLoader();
    loader.addEventListener( 'load', function ( event )
    {

        var material = new THREE.MeshLambertMaterial({
            color: 0x888888,
            side: THREE.DoubleSide
        });

        var bufferGeometry = event.content;
        var mesh = new THREE.Mesh(geometry, material);
        scene.add( mesh );
    });
    loader.load( 'model.stl' );

To make it easier to further manipulate the model I would like to have the geometry as regular THREE.Geometry instead of THREE.BufferGeometry. Is it possible to either load the .stl in a way so I receive it as a THREE.Geometry or is it possible to convert from THREE.BufferGeometry to THREE.Geometry? Or is this possible using a .obj file or sth else?

I'm trying to load an .stl file into three.js. Everything works fine and I get the model as BufferGeometry using this code:

    var loader = new THREE.STLLoader();
    loader.addEventListener( 'load', function ( event )
    {

        var material = new THREE.MeshLambertMaterial({
            color: 0x888888,
            side: THREE.DoubleSide
        });

        var bufferGeometry = event.content;
        var mesh = new THREE.Mesh(geometry, material);
        scene.add( mesh );
    });
    loader.load( 'model.stl' );

To make it easier to further manipulate the model I would like to have the geometry as regular THREE.Geometry instead of THREE.BufferGeometry. Is it possible to either load the .stl in a way so I receive it as a THREE.Geometry or is it possible to convert from THREE.BufferGeometry to THREE.Geometry? Or is this possible using a .obj file or sth else?

Share Improve this question edited Jul 5, 2017 at 17:22 WestLangley 105k11 gold badges286 silver badges283 bronze badges asked Dec 31, 2014 at 14:28 FlavioFlavio 1,5875 gold badges20 silver badges30 bronze badges
Add a comment  | 

1 Answer 1

Reset to default 25

This answer only applies to versions of three.js prior to r.125.

STLLoader now returns a BufferGeometry object.

You can convert that to a THREE.Geometry like so:

var geometry = new THREE.Geometry().fromBufferGeometry( bufferGeometry );

three.js r.124

本文标签: javascriptLoading object as Geometry instead of BufferGeometry in threejsStack Overflow