Three.js设置对象不透明度/透明度

时间:2015-02-04 15:30:35

标签: javascript 3d three.js

我正在创建一个包含从JSON文件加载的部分的场景。 我可以隐藏并显示每个对象。但现在我想为单个对象设置不透明度/透明度。

我使用此代码创建对象。

    geometryArray = new Object();
    var loader = new THREE.JSONLoader();
    for(var i = 0; i < jsonFileNames.length; i++){
        var layerName = jsonFileNames[i].split("/")[1].slice(0, -5);
        loader.load(layerName, jsonFileNames[i], function(geometry, materials, layerName){
            mesh = new THREE.Mesh(geometry, new THREE.MeshLambertMaterial({vertexColors: THREE.FaceColors, side:THREE.DoubleSide, transparent: true}));
            mesh.scale.set(scaleFactor, scaleFactor, scaleFactor);
            mesh.name = layerName;
            scene.add(mesh);
            geometryArray[layerName] = mesh;
        }, layerName);
    }

我可以使用此代码显示/隐藏对象

geometryArray[layerName].visible = true;

但是如何为对象设置不透明度/透明度?

我尝试使用此代码,但这不起作用。

geometryArray[layerName].materials[0].opacity

2 个答案:

答案 0 :(得分:0)

您还必须设置

geometryArray[layerName].materials[0].transparent = true

在材料上使用不透明度。

答案 1 :(得分:-1)

material.transparent仅接受布尔值而非数字值

WRONG !!!!! material.transparent = 0 or material.transparent = 1

RIGHT ------> material.transparent = true or material.transparent = false