使用 Three.js 更新地形几何

Updating Terrain Geometry with Three.js

我正在试验 Bjørn Sandvik 将地形数据导入场景的非常棒的过程。

查看:

http://blog.thematicmapping.org/2013/10/terrain-building-with-threejs.html

  var terrainLoader = new THREE.TerrainLoader();
terrainLoader.load('../assets/jotunheimen.bin', function(data) {

    var geometry = new THREE.PlaneGeometry(60, 60, 199, 199);

    for (var i = 0, l = geometry.vertices.length; i < l; i++) {
        geometry.vertices[i].z = data[i] / 65535 * 10;
    }

    var material = new THREE.MeshPhongMaterial({
        color: 0xdddddd, 
        wireframe: true
    });

    var plane = new THREE.Mesh(geometry, material);
    scene.add(plane);

});

我的目的是用它来显示时间序列的高程数据,因此将加载多个 .bin 文件以提供代表几年时间段的数据,以显示随时间的变化。

我在使用新数据更新几何图形时遇到困难。我认为我的困难源于函数内部定义的平面和几何变量,这意味着它们在全局上下文中未定义。所以稍后当我调用这些变量时,它们没有任何关联的值。

有谁知道如何使用 TerrainLoader 加载的新数据来更新此几何体?

.add()scene 对象的任何内容都作为 scene.children 数组的元素可见 - 您仍然可以引用您的 plane 和it as plane.geometry -- 飞机是场景中唯一的物体,它可能是 scene.children[0].geometry

请参阅此页面:https://github.com/mrdoob/three.js/wiki/Updates 以获取有关如何让三号知道几何形状正在发生变化的提示