gpt4 book ai didi

Three.js地形阴影

转载 作者:行者123 更新时间:2023-12-02 19:50:50 29 4
gpt4 key购买 nike

我已经使用平面几何对象完成了地形。我设置了一个顶点的 y 坐标来碰撞我的地形。然后我在场景中添加了定向光,发现“山丘”等没有阴影。

我还添加了一个球体,并注意到该地形上也没有阴影。

var light = new THREE.DirectionalLight(0xffffff, 1);
light.castShadow = true;
light.shadowCameraVisible = true;
light.position.set(-300, 120, -200); // CHANGED
scene.add(light);
scene.add( new THREE.DirectionalLightHelper(light, 0.2) );

Directional light with sphere above the terrain

但是当我用聚光灯替换定向光时,我看到了我想要的地形上的阴影。

var slight = new THREE.SpotLight(0xffffff,1);
slight.position.set(-100,60,100);
slight.shadowCameraVisible = true;
scene.add(slight);
scene.add(new THREE.SpotLightHelper(slight, 0.5));

Spotlight with terrain

所以问题是:

  • 我怎样才能制作出看起来像阳光的灯光,这样地形就不是平面颜色而是依赖于光线? ( future 它将成为真实城市的一部分)
  • 我应该怎样做才能看到物体在地形上的阴影? (来自 fiddle 示例:球体的阴影)

谢谢

最佳答案

您正在修改地形的顶点。当您这样做时,您还必须修改顶点法线。一种方法是这样的:

geometry.computeVertexNormals();

要创建阴影,您必须启用它们。

renderer.shadowMap.enabled = true;

三.js r.130

关于Three.js地形阴影,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33566294/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com