从导出的混合器源创建Three.js材料

时间:2018-04-21 06:33:19

标签: javascript three.js blender

我从搅拌机中导出了一个带有几何体的简单白色材料。 Three.js加载器以某种方式创建了一个MeshPhongMaterial" type"来自源JSON文件的对象:

     ...
     "materials":[{
        "colorEmissive":[0,0,0],
        "colorDiffuse":[0.8,0.8,0.8],
        "DbgName":"Material",
        "wireframe":false,
        "opacity":1,
        "shading":"phong",
        "colorSpecular":[0.5,0.5,0.5],
        "blending":1,
        "transparent":false,
        "specularCoef":50,
        "doubleSided":false,
        "DbgIndex":0,
        "DbgColor":15658734,
        "depthTest":true,
        "depthWrite":true,
        "visible":true
    }],
    ...

我想克隆然后重复使用不同颜色的几何体,但我没有找到加载器如何管理从源构建对象。我阅读了文档,但我没有找到任何可以帮助我的东西。 Material和PhongMaterial上的可设置属性与此源不相似。你能帮我解决这个问题吗? :)我离这位专家很远,如果这是一个愚蠢的问题,那就很抱歉^^

谢谢你的回答和时间! :)

1 个答案:

答案 0 :(得分:0)

如果您使用的是JSONLoader,则代码可能如下所示:

jsonLoader.load("model.json", function (geometry, materials) {
    var mesh = new THREE.Mesh(geometry, materials);
});

如果您的网格物体只有一种材质而您想将其用于其他几何体,则可以使用它创建一个var而不是使用clone()函数:

var gMaterial;
jsonLoader.load("model.json", function (geometry, materials) {
    var mesh = new THREE.Mesh(geometry, materials);
    gMaterial = materials[0];
    mesh1.material = gMaterial.clone();
});