我使用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
答案 0 :(得分:4)
您必须使用material不透明度。 一定要先将它标记为透明:
this.material.uniforms.transparent = true;
然后设置不透明度:
this.material.uniforms.opacity = 0.3;
如果您已经渲染了场景,则可能需要将其标记为更新:
this.material.uniforms.needsUpdate = true;
用于纹理使用.alphaMap