2015-11-12 4 views
0

Я экспериментирую с отличным процессом Bjørn Sandvik для импорта данных о местности в сцену.Обновление геометрии местности с помощью Three.js

Проверьте это:

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?

ответ

2

что вы .add() к scene объекта видно как элемент scene.children массива - вам все еще может ссылаться на свой plane и геометрии его как plane.geometry - самолет является единственным объектом в сцене, он вероятно, будет scene.children[0].geometry

Смотрите эту страницу: https://github.com/mrdoob/three.js/wiki/Updates подсказки о том, как дать ТРЕТИЙ знать геометрию меняется

+0

я вижу! Спасибо bjorke, я обновил свой код и смог загрузить новую геометрию. Отлично! –

Смежные вопросы