【发布时间】:2017-10-12 06:05:56
【问题描述】:
阴影只显示部分而不是整个对象。 在我的例子中,我有一棵树,并为它设置了 MeshDepthMaterial,因为树的叶子是透明的。但影子只有树干,没有叶子。 我的模型是通过OBJLoader添加的,所以不知道是不是模型问题。
这是我的代码:
loader.load("/uploads/rs/373/nqkcjvs8/bamboopalm.json", function(o) {
var mesh = o.getObjectByName("Cylinder06");
var mat = mtloader.load("/uploads/rs/373/nqkcjvs8/bamboopalm_1k.jpg");
let matalpha = mtloader.load("/uploads/rs/373/nqkcjvs8/bamboopalm_1k_alpha.jpg");
mat.anisotropy = 16;
mesh.material = new THREE.MeshPhongMaterial({
map:mat,
alphaMap: matalpha,
side: THREE.DoubleSide,
alphaTest: .5
});
var depthMaterial = new THREE.MeshDepthMaterial({
depthPacking: THREE.RGBADepthPacking,
alphaMap: matalpha,
alphaTest: .5
});
mesh.castShadow = mesh.receiveShadow = true;
mesh.position.set(0, -50, 0);
var scale = 10;
mesh.scale.set(scale, scale, scale);
mesh.customDepthMaterial = depthMaterial;
scene.add(mesh);
});
这是一个在线演示:OBJLoader Tree
如你所见,影子只有树干,没有叶子。
【问题讨论】:
-
演示已修复。
标签: three.js