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
我有一架带有 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