Итак, у меня есть система высотных карт, которая работает достаточно хорошо, однако с тех пор как THREE.js обновился до r60, который удалил объект Face4, у меня возникли проблемы.Three.js r60 Карта высот
Мой код-то вроде этого:
this.buildGeometry = function(){
var geo, len, i, f, y;
geo = new THREE.PlaneGeometry(3000, 3000, 128, 128);
geo.dynamic = true;
geo.applyMatrix(new THREE.Matrix4().makeRotationX(-Math.PI/2));
this.getHeightData('heightmap.png', function (data) {
len = geo.faces.length;
for(i=0;i<len;i++){
f = geo.faces[i];
if(f){
y = (data[i].r + data[i].g + data[i].b)/2;
geo.vertices[f.a].y = y;
geo.vertices[f.b].y = y;
geo.vertices[f.c].y = y;
geo.vertices[f.d].y = y;
}
}
geo.computeFaceNormals();
geo.computeCentroids();
mesh = new THREE.Mesh(geo, new THREE.MeshBasicMaterial({color:0xff0000}));
scene.add(mesh);
});
};
Это хорошо работает, поскольку пиксель представляет каждое лицо. Как это делается сейчас, когда лица все триангулированы?
Аналогичным образом я использую карты изображений для позиционирования модели. Каждый пиксель соответствует соответствующему Face4, а требуемая сетка помещается в центр тяжести. Как это можно сделать сейчас?
Я действительно скучаю по возможности обновить библиотеку и не хочу быть застрял в R59 больше = [
Ну, по крайней мере, я чувствую себя лучше, так как никто другой не знает, как это сделать, или, по-видимому, LOL. – Hobbes