【问题标题】:SpotLight Rotation in three.jsThree.js 中的 SpotLight 旋转
【发布时间】:2018-06-08 19:56:50
【问题描述】:

我正在尝试旋转聚光灯。我的代码是:

var light   = new THREE.SpotLight( color, intensity, distance );
light.position.set( 0, 100, 0 );
light.rotation.set( 0, Math.PI, 0 );
light.shadowCameraFar = 50;
light.shadowCameraNear      = 0.01;     
light.castShadow        = true;
light.shadowDarkness        = 0.5;
light.shadowCameraVisible   = true;
light.shadowCameraFar = 800;
light.shadowCameraFov = 15;
scene.add( light );

我想知道我做错了什么。聚光灯不会改变它的旋转独立于我输入的值。

【问题讨论】:

    标签: javascript 3d three.js


    【解决方案1】:

    light.target 确定聚光灯的阴影相机方向。例如,如果您的场景中有一个名为 myObject 的对象,您可以执行以下操作:

    light.target = myObject;
    

    请记住,light.targetObject3D,而不是位置向量。

    Three.js r.49

    【讨论】:

    • 这在您执行 light.target = camera 时有效,但是我无法让它在网格或对象上工作
    【解决方案2】:

    因此,您可以通过直接分配来定位灯光目标:

    myLight.target.position = new THREE.Object3D( 10, 20, 30 );
    

    或者通过定义灯光目标对象属性:

    myLight.target.position.x = 10;
    myLight.target.position.y = 20;
    myLight.target.position.z = 30;
    

    【讨论】:

      猜你喜欢
      • 2021-08-23
      • 2012-09-15
      • 1970-01-01
      • 1970-01-01
      • 2013-05-19
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-10-24
      相关资源
      最近更新 更多