THREE.js 中 material 的不透明度

Opacity of material in THREE.js

我正在使用 lambert 着色器,在示例中它设置 material 如下:

  this.material.uniforms.emissive.value = new THREE.Color(
  Math.random(),
  Math.random(),
  Math.random());

在我有一个简单的着色器设置 material 之前我可以控制 alpha:

this.material.uniforms.color.value = new THREE.Vector4(
  Math.random(),
  Math.random(),
  Math.random(),
  0.3)

但看起来 lambert 着色器没有颜色向量4。

知道如何控制 alpha 吗?

我在此处对兰伯特着色器使用相同的示例:https://forge.autodesk.com/blog/forge-viewer-custom-shaders-part-2

简单着色器来自:http://adndevblog.typepad.com/cloud_and_mobile/2017/01/forge-viewer-custom-shaders-part-1.html

您将不得不使用 material 不透明度。 请务必先将其标记为透明:

this.material.uniforms.transparent = true;

然后设置不透明度:

this.material.uniforms.opacity.value = 0.3;

如果您已经渲染了场景,您可能必须将其标记为更新:

this.material.uniforms.needsUpdate = true;

纹理使用 .alphaMap