无法在3js中从PCDLoader绘制pcd文件

时间:2019-05-02 15:33:15

标签: three.js point-clouds lidar

我正在尝试按照here中提到的示例来绘制pcd文件。使用给定的pcd,我可以绘制,但是具有的pcd,我无法绘制。我交叉检查了格式,并且浏览器中也没有错误。这是我的pcd file。我没有出什么问题。

1 个答案:

答案 0 :(得分:1)

我已经在计算机上测试了您的PCD文件,并且该文件呈现find。但是,由于数据集的空间分布完全不同,因此在上述示例中仅替换PCD文件是行不通的。因此,您需要其他摄像头和控件设置。您应该能够使用以下基本代码查看点云:

var camera, container, scene, renderer;

init();
animate();

function init() {

    scene = new THREE.Scene();

    camera = new THREE.PerspectiveCamera( 15, window.innerWidth / window.innerHeight, 0.1, 1000 );
    camera.position.z = 700;

    scene.add( camera );

    renderer = new THREE.WebGLRenderer( { antialias: true } );
    renderer.setPixelRatio( window.devicePixelRatio );
    renderer.setSize( window.innerWidth, window.innerHeight );
    document.body.appendChild( renderer.domElement );

    var loader = new THREE.PCDLoader();
    loader.load( './models/pcd/binary/test.pcd', function ( points ) {

        points.material.size = 5;

        scene.add( points );

    } );

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

    window.addEventListener( 'resize', onWindowResize, false );

}

function onWindowResize() {

    camera.aspect = window.innerWidth / window.innerHeight;
    camera.updateProjectionMatrix();

    renderer.setSize( window.innerWidth, window.innerHeight );

}

function animate() {

    requestAnimationFrame( animate );

    renderer.render( scene, camera );

}