如何在three.js中使COLLADA模型投射自己的阴影?

4

我尝试了这个:

dae.castShadow = true;
dae.receiveShadow = true;
scene.add(dae);

//spotLight is defined already.
spotLight.castShadow = true;

renderer.shadowMapEnabled = true;

但是这个模型还没有阴影?我做错了什么吗?请帮忙。
2个回答

3

three.js有一个改动(参见three.js migration r51--r52):

用object.traverse替换了SceneUtils.traverseHierarchy。

由此,现在在层级结构中为所有对象设置castShadowreceiveShadow的正确方法是:

dae.traverse(function(child) {
    child.castShadow = true;
    child.receiveShadow = true;
});

0

您需要将层次结构中的所有对象的castShadowreceiveShadow设置为true

THREE.SceneUtils.traverseHierarchy( dae, function ( child ) {

    child.castShadow = true;
    child.receiveShadow = true;

} );

有错误提示 无法初始化着色器错误(#201) 需要扩展支持。??? - Derek 朕會功夫
在添加代码后,这两个错误出现了。:( (只有在Firefox中,在Chrome中一切正常。) - Derek 朕會功夫

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接