0

したがって、十分に機能する高さマップシステムがありますが、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 で立ち往生したくありません =[

4

1 に答える 1