无法读取未定义的属性“isInterleavedBufferAttribute”

use*_*414 5 three.js

我尝试使用 Three.js "version": "0.113.2"

我有消息Cannot read property 'isInterleavedBufferAttribute' of undefined

我的 Three.js 有以下代码,如消息所示。

但是,我自己没有这样做。我的代码正在执行某些操作。

有人告诉我如何解决这个问题。

function get( attribute ) {

    if ( attribute.isInterleavedBufferAttribute ) { attribute = attribute.data; }

    return buffers.get( attribute );

}

function remove( attribute ) {

    if ( attribute.isInterleavedBufferAttribute ) { attribute = attribute.data; }

    var data = buffers.get( attribute );

    if ( data ) {

        gl.deleteBuffer( data.buffer );

        buffers.delete( attribute );

    }

}

function update( attribute, bufferType ) {

    if ( attribute.isInterleavedBufferAttribute ) { attribute = attribute.data; }

    var data = buffers.get( attribute );

    if ( data === undefined ) {

        buffers.set( attribute, createBuffer( attribute, bufferType ) );

    } else if ( data.version < attribute.version ) {

        updateBuffer( data.buffer, attribute, bufferType );

        data.version = attribute.version;

    }

}
Run Code Online (Sandbox Code Playgroud)

}

我的代码的一部分尝试在场景中添加点云。如果在最后一行添加注释scene.add( points ),错误消息将停止。

        var vertices = [];
        var colors = [];
        var pcUrl = " <?php echo $pcUrl ?> ";
        var req = new XMLHttpRequest(); 
        req.open("get", pcUrl, true); 
        req.send(null); 
        req.onload = function(){
        convertCSVtoArray(req.responseText); 
        }


        function convertCSVtoArray(str){ 
            line = str.split("\n"); /

            for (var  i  =0; i< line.length-1 ; ++i){
                row = line[i].split(',');

                var x = row[0];
                var y = row[1];
                var z = row[2];

                vertices.push( x, y, z );
            }
        }
        var geometry = new THREE.BufferGeometry();
        geometry.setAttribute( vertices );

        var material = new THREE.PointsMaterial( { color: 0xff4444 } );
        var points = new THREE.Points( geometry, material );
        scene.add( points );
Run Code Online (Sandbox Code Playgroud)

Mug*_*n87 2

几何.setAttribute( 顶点 );

它应该是:

geometry.setAttribute( 'position', new THREE.Float32BufferAttribute( vertices, 3 ) );
Run Code Online (Sandbox Code Playgroud)