私は Three.js (FPS のようなもの) で非常に複雑な 3D 環境を構築しています。この目的のために、オブジェクト指向の方法でテクスチャとマテリアルのロードを構造化したいと考えました。例えば; materials.wood.brownplank
特定の質感やその他の特性を持つ再利用可能な素材です。以下は、モデルがマテリアルを使用し、マテリアルがテクスチャを使用するプロセスを簡略化して視覚化したものです。
loadTextures();
loadMaterials();
loadModels();
//start doing stuff in the scene
そのマテリアルをさまざまなサイズのオブジェクトに使用したいと考えています。ただし、Three.js では (AFAIK) 特定のテクスチャ スケールを設定することはできません。オブジェクトに合わせて適切にスケーリングするには、繰り返しを設定する必要があります。しかし、使用するすべてのオブジェクトのすべての平面に対してそれを行いたくありません。
ご覧のとおり、テクスチャのサイズは均一ではありません。
これを達成する簡単な方法はありますか?そのため、毎回テクスチャやマテリアルを複製し、ジオメトリに従って繰り返しを設定することはできません:)
誰かが私を助けてくれることを願っています。
結論:
これを行うための本当に簡単な方法はありません。ロード方法を変更することにmaterials.wood.brownplank
なりました。たとえばgetMaterial('wood', 'brownplank')
、関数では新しいオブジェクトがインスタンス化されます