0

質問はそれをすべて言います。法線マップをメッシュの一部 (選択したいくつかの面) にのみ適用したいと考えています。

現在、法線マップはすべて 512 x 512 で、キャンバスから取得されます。

これを達成するにはどのような方法がありますか?

4

1 に答える 1

1

THREE.MeshFaceMaterial を見ることから始めるのが良いでしょう。これにより、1 つのメッシュで複数のテクスチャを使用できるようになります。適切なドキュメントを見つけるのに苦労していますが、jsfiddle でこの小さなデモをチェックして、動作を確認できます。個々のマテリアルごとに色を定義するだけでなく、その normalMap を目的の法線マップとして定義します。

次に、この例では、次のようなコードを使用して、各面を特定のテクスチャに手動でマッピングできます。

cube.geometry.faces[desiredFaceIndex].materialIndex = desiredMaterialIndex

Three.js にメッシュを渡す前にメッシュを変更することで、これを設定するもっとスマートな方法がおそらくたくさんあります。複数のテクスチャを想定してモデルを作成した場合は、フィドルに示されている方法を使用してそれらを適用するだけで、目的の結果を得ることができると思います。幸運を!

于 2013-05-08T18:38:08.747 に答える