【问题标题】:Three js merging Geometries and Mesh三个 js 合并几何和网格
【发布时间】:2014-06-26 04:16:10
【问题描述】:

三个js ver67 当前代码是这样的 -

    var materials = [];
    var totalGeom = new THREE.Geometry();
    var cubeMat;
    for (var i = 0; i < dataSetArray.length; i++) {
        var ptColor = dataSetArray[i].color;
        var value = dataSetArray[i].value;
        var position = latLongToVector3(dataSetArray[i].y, dataSetArray[i].x, 600, 1);

        var cubeGeom = new THREE.BoxGeometry(5, 5, 1 + value / 20);


        cubeMat = new THREE.MeshLambertMaterial({
            color: new THREE.Color(ptColor),
            opacity: 0.6
        });


        materials.push(cubeMat);
        // cubeGeom.updateMatrix();

        var cubeMesh = new THREE.Mesh(cubeGeom, cubeMat);
        cubeMesh.position = position;
        cubeMesh.lookAt(scene.position);

        // totalGeom.merge(cubeMesh.geometry, cubeMesh.geometry.matrix);
        //THREE.GeometryUtils.setMaterialIndex(cubeMesh.geometry, i);
        THREE.GeometryUtils.merge(totalGeom, cubeMesh);
    }


    var total = new THREE.Mesh(totalGeom, new THREE.MeshFaceMaterial(materials));
    scene.add(total);

但是我收到了消息

已弃用:GeometryUtils 的 .merge() 已移至 Geometry。请改用geometry.merge(geometry2, matrix, materialIndexOffset)。

在 chrome 开发工具中。

当我尝试类似 - totalGeom.merge(cubeMesh.geometry, cubeMesh.geometry.matrix); 而不是 THREE.GeometryUtils.merge(totalGeom, cubeMesh);我得到例外。

我将如何进行上述合并?请帮忙。

【问题讨论】:

  • 尝试cubeMesh.updateMatrix(); totalGeom.merge(cubeMesh.geometry, cubeMesh.matrix); 但在此之前,请使用cubeMesh.position.copy( position ) 而不是cubeMesh.position = position;
  • 成功了!感谢 cubeMesh.position.copy(position) 提示。
  • 我总是收到Uncaught TypeError: Cannot read property 'visible' of undefined。你知道为什么吗?

标签: javascript three.js


【解决方案1】:

这样做:

cubeMesh.updateMatrix();
totalGeom.merge( cubeMesh.geometry, cubeMesh.matrix );

进一步的理解可以看THREE.Geometry.merge()的源码。

three.js r.69

【讨论】:

    猜你喜欢
    • 2018-04-09
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-06-25
    • 2017-04-13
    • 2017-12-22
    相关资源
    最近更新 更多