私は一人称迷路を構築しています - 迷路の各壁はTHREE.PlaneGeometry
. 私が理解しているように、これらの壁をすべて単一のオブジェクトにマージする方がはるかに優れています。新しい「壁」が追加されるたびにこれを行うクラス「壁」を作成しました。
this.geometry.merge(wall.mesh.geometry, wall.mesh.matrix);
すべての壁を追加したら、マテリアルを作成してテクスチャを適用します。
this.material = new THREE.MeshBasicMaterial( {
map: this.texture,
side: THREE.DoubleSide
} );
this.mesh = new THREE.Mesh( this.geometry, this.material );
私が抱えている問題は、壁の幅がすべて同じではないため、マージされたジオメトリでテクスチャ マッピングがすべてファンキー ( Image Here ) になることです。各平面はテクスチャ全体を受け取り、その寸法に引き延ばします。すべての壁に同じテクスチャリングが必要であることを念頭に置いて、壁の周りにテクスチャを「ラップ」する最良の方法は何でしょうか? それとも、そもそも壁を別の方法で構築する必要がありますか?
私も両方Three.MultiMaterial(materials)
をTHREE.MeshFaceMaterial(materials)
試しました (各壁に独自のマテリアルを適用します) が、どちらもパフォーマンスを大幅に低下させます。
前もって感謝します、
幸せな日々、
J
スクリーンショット:迷路の画像