したがって、十分に機能する高さマップシステムがありますが、THREE.js が r60 に更新されて Face4 オブジェクトが削除されたため、問題が発生しています。
私のコードは次のようなものです:
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 で立ち往生したくありません =[