11

我是threejs的新手,我正在尝试制作一个简单的3d模型。尽管如此,自从我开始使用不透明度以来,我遇到了一些透明度/差异问题。

我的代码的重要部分在这里:

    var cylJaun = new THREE.MeshNormalMaterial({color: 0xFFFF00, opacity: 1});
    var cylBleu = new THREE.MeshNormalMaterial({color: 0x0000FF, opacity: 0.5 });

    var cylJaun1 = new THREE.Mesh(new THREE.CylinderGeometry(50,50,50,100,1,false),cylJaun);
    var cylJaun2 = new THREE.Mesh(new THREE.CylinderGeometry(50,50,50,100,1,false),cylJaun);
    var cylJaun3 = new THREE.Mesh(new THREE.CylinderGeometry(50,50,50,100,1,false),cylJaun);

    var cylBleu1 = new THREE.Mesh(new THREE.CylinderGeometry(70,70,200,100,1,false),cylBleu);

    cylJaun1.position.y -= 60; 
    cylJaun3.position.y += 60; 

    group.add(cylBleu1);

    group.add(cylJaun1);
    group.add(cylJaun2);
    group.add(cylJaun3);

    scene.add(group);

如您所见,我尝试将 3 个圆柱体放入第四个。问题是当我的对象在特定范围内旋转时,这 3 个圆柱体中的一些会消失。

4

1 回答 1

26

您需要transparent: true为较大的圆柱体设置材料。

var cylBleu = new THREE.MeshNormalMaterial( { transparent: true, opacity: 0.5 } );

如果您是初学者,那么您将通过尝试透明度来跳入深渊。

WebGL 的透明度可能很棘手。如果您打算继续走这条路,请疯狂地谷歌搜索,并尽可能了解所涉及的问题,以及如何在 three.js 中处理这些问题。

三.js r.53

于 2012-12-15T02:09:36.227 回答