ThreeJS为阴影几何更新阴影

问题描述 投票:1回答:1

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

有人可以帮我这个吗?

谢谢,西蒙妮

javascript three.js shadow
1个回答
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

© www.soinside.com 2019 - 2024. All rights reserved.