THREE.js中材料的不透明度

时间:2017-02-16 10:37:47

标签: javascript three.js shader autodesk-forge

我使用lambert着色器,并在exaple中设置这样的材料:

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

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

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

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

关于如何控制alpha的任何想法?

我在这里使用与lambert着色器相同的示例: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

1 个答案:

答案 0 :(得分:4)

您必须使用material不透明度。 一定要先将它标记为透明:

this.material.uniforms.transparent = true;

然后设置不透明度:

this.material.uniforms.opacity = 0.3;

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

this.material.uniforms.needsUpdate = true;

用于纹理使用.alphaMap