Javascript three.js:部分透明网格投射的阴影

Javascript three.js:部分透明网格投射的阴影,javascript,three.js,Javascript,Three.js,我有一个带有纹理的模型,纹理在某些区域是透明的(alpha为零) 但是,当模型投射阴影时,阴影看起来就像模型是实体一样 如何解决此问题?在three.js中投射阴影时,从灯光的角度来看,网格被视为实体 但是,如果网格具有透明纹理或alpha贴图,则可以通过为网格指定CustomDepthMaterial来实现适当的阴影 有几种方法可以做到这一点。一种方法是通过自定义着色器材质。这一方法在美国有一个例子 对于更简单的场景,使用此模式即可: var customDepthMaterial = ne

我有一个带有纹理的模型,纹理在某些区域是透明的(alpha为零)

但是,当模型投射阴影时,阴影看起来就像模型是实体一样


如何解决此问题?

在three.js中投射阴影时,从灯光的角度来看,网格被视为实体

但是,如果网格具有透明纹理或alpha贴图,则可以通过为网格指定
CustomDepthMaterial
来实现适当的阴影

有几种方法可以做到这一点。一种方法是通过自定义
着色器材质
。这一方法在美国有一个例子

对于更简单的场景,使用此模式即可:

var customDepthMaterial = new THREE.MeshDepthMaterial( {

    depthPacking: THREE.RGBADepthPacking,

    map: myTexture, // or, alphaMap: myAlphaMap

    alphaTest: 0.5

} );

mesh.customDepthMaterial = customDepthMaterial;

three.js r.85

欢迎来到SO。请记住点击复选标记“接受”答案。非常感谢。