Javascript 如何更改three.js/WebGL中STL对象的不透明度?

Javascript 如何更改three.js/WebGL中STL对象的不透明度?,javascript,three.js,webgl,opacity,Javascript,Three.js,Webgl,Opacity,我正在自学WebGL,准备做一个我想做的项目,但我对Three.js的所有漂亮特性都很陌生 我有一个STL对象,我正在使用STL加载程序将其导入到三维查看器中。现在,我希望能够更改该对象的不透明度,也可能删除该对象的某些特征,以查看STL图像的内部。如何更改对象的不透明度,可能需要创建一个按钮来更改不透明度。我该怎么做 此外,如果可能(因为加载的模型由多个部分组成),是否移除某些结构?也许旁边有一个工具栏,上面写着第1部分、第2部分、第3部分,对于每个部分,你都可以看到那个部分 非常感谢!!:D

我正在自学WebGL,准备做一个我想做的项目,但我对Three.js的所有漂亮特性都很陌生

我有一个STL对象,我正在使用STL加载程序将其导入到三维查看器中。现在,我希望能够更改该对象的不透明度,也可能删除该对象的某些特征,以查看STL图像的内部。如何更改对象的不透明度,可能需要创建一个按钮来更改不透明度。我该怎么做

此外,如果可能(因为加载的模型由多个部分组成),是否移除某些结构?也许旁边有一个工具栏,上面写着第1部分、第2部分、第3部分,对于每个部分,你都可以看到那个部分


非常感谢!!:D

在代码中的某个时刻,您必须使用STL加载程序加载STL文件。由于STL文件没有材质,您可以添加如下材质定义:

var material = new THREE.MeshPhongMaterial ({ color: 0xFF0000 });
var mesh = new THREE.Mesh (object, material);
其中,对象是从addEventListener函数中的event.target指定的,因为这是加载STL文件的方法。可以将材质定义更改为:

var material = new THREE.MeshPhongMaterial ({ color: 0xFF0000, opacity: 0.5, transparent: true });
var mesh = new THREE.Mesh (object, material);

以获得红色透明材质。您不必使用Phong,也可以使用LambertMaterial。

非常感谢。如果我想在工具栏中添加一个按钮来控制不透明度设置,该怎么办?类似于该对象的渐变滚动按钮吗?您可以查看使用dat.gui.js库的三个.js示例。