我在 Blender 中用 2 种不同颜色的材料制作了 Dice,并使用 Blender 导出器将其导出。在我的 three.js 代码中,我使用 JSONLoader 获取网格并使用 new THREE.MeshFaceMaterial(); 作为材料。
这可以很好地加载模型,两种不同颜色的材料正确显示。但我的问题是,我希望骰子在表面上有高光。这甚至可以通过导出的 Blender 模型实现吗?
当我使用 THREE.MeshPhongMaterial() 作为球体的材质时,我设法获得了一个带有镜面高光的球体,但是该球体不是从 Blender 导入的,据我所知,加载时我无法应用 Phong 材质Mesh with JSONLoader,还是有什么窍门?请记住:我在骰子上有两种不同颜色的材料,我从 Blender 导入 JSON 文件。骰子本身是红色的,但点应该是黑色的。所以我不是在说立方体的每一侧都有不同的颜色,而是立方体每一侧都有两种不同的颜色。你能帮助我吗?
这是代码片段:
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);
});
如果有帮助,我可以从这两种材质中创建纹理并将它们应用到 Blender 中,以便 JSONLoader 加载纹理而不是材质,但我也无法实现镜面高光。