【发布时间】:2012-09-14 02:31:49
【问题描述】:
我在 Blender 中用 2 种不同颜色的材料制作了 Dice,并使用 Blender 导出器将其导出。在我的 three.js 代码中,我使用 JSONLoader 获取网格并使用 new THREE.MeshFaceMaterial();作为材料。
这可以很好地加载模型,两种不同颜色的材料都正确显示。但我的问题是,我希望骰子在表面上有高光。这甚至可以通过导出的 Blender 模型实现吗?
当我使用 THREE.MeshPhongMaterial() 作为球体的材质时,我设法获得了一个具有镜面高光的球体,但该球体不是从 Blender 导入的,据我所知,我无法应用 Phong 材质当我用 JSONLoader 加载网格时,还是有什么技巧?请记住:我在骰子上有两种不同颜色的材料,我从 Blender 导入 JSON 文件。骰子本身是红色的,但点应该是黑色的。所以我说的不是立方体每一面的不同颜色,而是立方体每一面都有两种不同的颜色。你能帮帮我吗?
这里是sn-p的代码:
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 加载纹理而不是材质,但我也无法实现镜面高光那。
【问题讨论】:
标签: three.js