0

我正在尝试使用 onChange 方法更改聚光灯对象的 shadowCameraFov 属性,代码如下:

    gui.add(controls, 'spotCameraFov', 30, 270).onChange( function (e) {
            spotLight.shadowCameraFov = e;
            console.log(e);
    });

我可以看到该值正在发生变化(来自 console.log ),但它实际上对聚光灯 shadowCameraFov 没有影响。关于如何使它起作用的任何建议?

4

1 回答 1

1

这是您需要遵循的模式:

gui.add( controls, 'shadowCameraFov', 30, 120 ).onChange( function() {

    spotLight.shadowCameraFov = controls.shadowCameraFov;
    spotLight.shadowCamera.fov = spotLight.shadowCameraFov;
    spotLight.shadowCamera.updateProjectionMatrix();

});

你可以在这里看到一个活生生的例子:http: //threejs.org/examples/webgl_shading_physical.html。控件位于右上角。

三.js r.62

于 2013-11-03T16:12:46.620 回答