ThreeJS更新阴影的缓冲几何

时间:2020-06-10 09:29:51

标签: javascript three.js shadow

我在ThreeJS中加载了一个.gltf模型,它带有一个关键帧动画,该动画会改变对象的形状(这是一个点级动画)。它工作正常,但阴影不会改变! 我玩过geometry.computeVertexNormals(),但是当我应用它时,我的模型变成了全黑。

有人可以帮我吗?

谢谢, 西蒙妮(Simone)

1 个答案:

答案 0 :(得分:0)

应该没有理由致电BufferGeometry.computeVertexNormals()。您可以通过以下方式启用阴影投射:

gltf.scene.traverse( function ( object ) {

    if ( object.isMesh ) {

        object.castShadow = true;

    }

}

如果模型也应接收阴影,请将属性receiveShadows设置为true

您还需要在渲染器上启用阴影,正确配置灯光的阴影摄像头,并确保地板具有可以接收阴影的材料(例如,MeshBasicMaterial除外)。如下所示的示例可能是一个很好的方向:

https://threejs.org/examples/webgl_animation_skinning_blending

相关问题