Three.js 将 envmap 与半透明纹理混合

Three.js blend envmap with semi transparent texture

我有一架带有 MeshBasicMaterial 和立方体相机的飞机。我将 cubecamera.renderTarget 作为我的 material 的 envmap 和 png 图像作为我的 material 的纹理。 png 图像是透明的,除了它的中心。我想要完成的是让反射 - cubecamera envmap 仅在 png 透明的情况下可见。

这可能吗?如果是这样,请指导我,因为我是 three.js 的新手。 目前我的 material 看起来像这样:

productMaterial = new THREE.MeshBasicMaterial( {
    map: productModelTexture,
    envMap: that.cubeCamera.renderTarget,
    combine: THREE.MixOperation,
    reflectivity: 0.25,
    color: that.models.settings.color,
    specular: that.models.settings.specular,
    side: THREE.FrontSide,
    transparent: true,
    fog: false
} );

您应该将透明度 alpha 导出到它自己的图像贴图,而不是使用透明 PNG,并使用材质的 alphaMap 属性 来设置透明度。

http://threejs.org/docs/#Reference/Materials/MeshPhongMaterial