質問はそれをすべて言います。法線マップをメッシュの一部 (選択したいくつかの面) にのみ適用したいと考えています。
現在、法線マップはすべて 512 x 512 で、キャンバスから取得されます。
これを達成するにはどのような方法がありますか?
質問はそれをすべて言います。法線マップをメッシュの一部 (選択したいくつかの面) にのみ適用したいと考えています。
現在、法線マップはすべて 512 x 512 で、キャンバスから取得されます。
これを達成するにはどのような方法がありますか?
THREE.MeshFaceMaterial を見ることから始めるのが良いでしょう。これにより、1 つのメッシュで複数のテクスチャを使用できるようになります。適切なドキュメントを見つけるのに苦労していますが、jsfiddle でこの小さなデモをチェックして、動作を確認できます。個々のマテリアルごとに色を定義するだけでなく、その normalMap を目的の法線マップとして定義します。
次に、この例では、次のようなコードを使用して、各面を特定のテクスチャに手動でマッピングできます。
cube.geometry.faces[desiredFaceIndex].materialIndex = desiredMaterialIndex
Three.js にメッシュを渡す前にメッシュを変更することで、これを設定するもっとスマートな方法がおそらくたくさんあります。複数のテクスチャを想定してモデルを作成した場合は、フィドルに示されている方法を使用してそれらを適用するだけで、目的の結果を得ることができると思います。幸運を!