如何让COLLADA模型在three.js中独立投射阴影?

时间:2012-05-26 20:45:37

标签: javascript three.js collada

我试过了:

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

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

renderer.shadowMapEnabled = true;

但模型仍然没有阴影?我做错了什么吗?请帮忙。

2 个答案:

答案 0 :(得分:1)

three.js有变化(见three.js migration r51--r52):

  

用object.traverse替换SceneUtils.traverseHierarchy。

由于这个原因,现在为层次结构中的所有对象设置castShadowreceiveShadow的正确方法是:

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

答案 1 :(得分:0)

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

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

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

} );