Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

How to make COLLADA models cast shadow on its own in three.js?

I tried this:

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

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

renderer.shadowMapEnabled = true;

But the model still does not have shadows? Did I do anything wrong? Please help.

like image 441
Derek 朕會功夫 Avatar asked Sep 19 '25 15:09

Derek 朕會功夫


1 Answers

There was change in three.js (see three.js migration r51--r52):

Replaced SceneUtils.traverseHierarchy with object.traverse.

Due to that, now proper way for setting castShadow and receiveShadow for all objects in hierarchy is:

dae.traverse(function(child) {
    child.castShadow = true;
    child.receiveShadow = true;
});
like image 184
Łukasz Avatar answered Sep 22 '25 11:09

Łukasz