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

Three.js set object opacity/transparent

本文关键字:透明度 不透明度 对象 js 设置 Three      更新时间:2023-09-26

我正在创建一个场景,其中包含从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

您还必须设置

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

在材质上使用不透明度。

material.transparent只接受布尔值而不接受数值

WRONG !!!!! material.transparent = 0 or material.transparent = 1
RIGHT ------> material.transparent = true or material.transparent = false