我在Blender中创建了一个简单的网格,它只包含一个纹理平面。 Blender screenshot 我使用以下代码在three.js中导入它:
var texture2 = new THREE.TextureLoader().load('models/TexturesCom_Branches0030_1_S.png');
loader.load("models/plant.json", function (geometry, materials) {
materials.forEach(function (material) {
material.alphaTest = 0.5;
});
mesh = new THREE.Mesh( geometry, materials );
mesh.customDepthMaterial = new THREE.MeshDepthMaterial( {
side: THREE.DoubleSide,
depthPacking: THREE.RGBADepthPacking,
map: texture2,
alphaTest: 0.5
} );
mesh.castShadow = true;
mesh.receiveShadow = true;
scene.add(mesh);
});
正如您所看到的,物体不仅在地面上投射阴影,而且在其自身投射阴影。 我可以关闭receiveShadow,但这对我来说不是解决方案。如果我手动创建THREE.PlaneGeometry,这个问题不会消失。