私は、ブレンダーで作成されたUVマッピングを備えた3Dモデルを持っています。私はテクスチャがモデルの片側にのみ適用されるようにUVマッピングを適用しました。モデルをobj
とmtl
にエクスポートしました。このモデルをthree.js
にインポートすると、意図したとおりに動作し、ローダーはmtl
ファイルで定義されたイメージをテクスチャとして自動的に適用します。three.jsでobjモデルの素材を変更
今度は、このテクスチャをプログラマチックにthree.js
に変更したいと思います。モデルには複数の素材があります(私はそれが複数の顔のためだと思います)。 UVマッピングを維持し、適用されるテクスチャを変更するだけで材料を再適用するにはどうすればよいですか? map
とenvMap
をモデルに適用したいと思います。いくつかの試行錯誤の後に適用さm
とm2
位置と
var m = new THREE.MeshPhongMaterial({
envMap: cubemap,
reflectivity: 0.9
});
var m2 = new THREE.MeshPhongMaterial({
envMap: cubemap,
color: parseInt(material.color, 16),
reflectivity: 0.9,
map: THREE.ImageUtils.loadTexture('/textures/uv_checker large.png')
});
loadedMesh.material = [m,m,m,m,m,m2,m2,m2,m];
。テクスチャが適用されますが、元のテクスチャと同じように見えることはありません。私はいくつかの小さな空のスペースがあり、私のUVマッピングのためにテクスチャを持たないはずの場所にもテクスチャがあります。
これにはどのようにアプローチできますか?
過去に私が問題を抱えていたので、OBJMTLLoaderを使用することはありません。OBJLoaderでモデルをロードし、別に材料を作成します。 – 2pha