Blender で 2 つの異なる色のマテリアルで Dice を作成し、Blender エクスポーターでエクスポートしました。私の three.js コードでは、JSONLoader を使用してメッシュを取得し、new THREE.MeshFaceMaterial(); を使用します。材料として。
これにより、モデルが正常にロードされ、2 つの異なる色のマテリアルが正しく表示されます。しかし、私の問題は、サイコロの表面にスペキュラ ハイライトを持たせたいということです。これは、エクスポートされた Blender モデルでも可能ですか?
球体のマテリアルとして THREE.MeshPhongMaterial() を使用すると、スペキュラー ハイライトを含む球体を取得できましたが、球体は Blender からインポートされておらず、私の知る限り、読み込み時にフォン マテリアルを適用できません。 JSONLoader を使用したメッシュ、またはトリックはありますか? 覚えておいてください: さいころに 2 つの異なる色のマテリアルがあり、これを Blender から JSON ファイルにインポートしました。サイコロ自体は赤ですが、ドットは黒でなければなりません。つまり、立方体の各面で異なる色について話しているのではなく、立方体のすべての面で 2 つの異なる色について話しているのです。手伝って頂けますか?
コード スニペットは次のとおりです。
loader.load("models/dice.js", function(geometry){
var material = new THREE.MeshFaceMaterial();
material.specular = 0xffffff;
material.shininess = 10000000000;
dice=new THREE.Mesh(geometry, material);
dice.position.set(0,-400,5);
dice.scale.set(75, 75, 75);
dice.overdraw = true;
dice.name="dice";
navscene.add(dice);
});
2 つのマテリアルからテクスチャを作成して Blender に適用すると、JSONLoader がマテリアルの代わりにテクスチャを読み込むことができますが、それを使用してもスペキュラー ハイライトを実現できませんでした。