Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/three.js/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 三个js合并几何体和网格_Javascript_Three.js - Fatal编程技术网

Javascript 三个js合并几何体和网格

Javascript 三个js合并几何体和网格,javascript,three.js,Javascript,Three.js,三个js版本67 当前代码类似于这样- 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;

三个js版本67 当前代码类似于这样-

    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);
var材料=[];
var totalGeom=new THREE.Geometry();
var cubeMat;
对于(var i=0;i
然而,我得到了这个信息

不推荐使用:GeometryUtils的.merge()已移动到几何体。使用geometry.merge(geometry2、矩阵、materialIndexOffset)代替

在chrome开发工具中

当我尝试像- 合并(cubeMesh.geometry,cubeMesh.geometry.matrix); 而不是三个.GeometryUtils.merge(totalGeom,cubeMesh);我有例外

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

执行以下操作:

cubeMesh.updateMatrix();
totalGeom.merge( cubeMesh.geometry, cubeMesh.matrix );
如需进一步了解,请参阅
THREE.Geometry.merge()
的源代码


three.js r.69

Try
cubeMesh.updateMatrix();totalGeom.merge(cubeMesh.geometry,cubeMesh.matrix)
但在执行此操作之前,请使用
cubeMesh.position.copy(position)
而不是
cubeMesh.position=position成功了!感谢您提供的cubeMesh.position.copy(position)提示。我总是收到
未捕获的类型错误:无法读取未定义的属性“visible”
。你知道为什么吗?