Threejs r73阴影变化 - 如何控制阴影相机视锥细胞?

时间:2015-12-24 08:31:52

标签: javascript three.js

我在从r72更新到r73时遇到了问题。我认为它与r73中的阴影变化有关。我也试过运行最新的主人,但问题仍然存在。

我创建了两个小提琴来说明问题。这个小提琴正在使用r72 http://jsfiddle.net/01xm6taz/3/这个小提琴http://jsfiddle.net/mtcq070x/2/正在使用r73

问题在于我已经失去了对shadowCamera的视锥的控制,我似乎无法弄清楚如何在r73中正确切换阴影。重要的是能够控制平截头体以便用低分辨率阴影贴图获得合适的阴影,并且切换阴影也是必不可少的。如果我可以再次控制平截头体,那么我可以不同地切换(通过设置远和接近0或其他东西)

如果你打开r72小提琴,你会发现你可以控制r72中的平截头体而不是r73。

具体来说,以下几行不再适用于r73:

        light.shadowCamera.near = self.shadownear;
        light.shadowCamera.far = self.shadowfar;
        light.shadowCamera.left = -self.shadowleft;
        light.shadowCamera.right = self.shadowright;
        light.shadowCamera.bottom = -self.shadowtop;
        light.shadowCamera.top = self.shadowbottom;
        light.shadowCamera.shadowBias = self.shadowbias;
        light.shadowDarkness = self.shadowdarkness;
        light.shadowCamera.updateProjectionMatrix();

我可以坚持使用r72,但是我会失去我们在r73中获得的一些不错的.toJSON更新。

1 个答案:

答案 0 :(得分:1)

事实证明,API只是略有改变。以下代码工作正常:

    light.shadow.camera.near = self.shadownear;
    light.shadow.camera.far = self.shadowfar;
    light.shadow.camera.left = -self.shadowleft;
    light.shadow.camera.right = self.shadowright;
    light.shadow.camera.bottom = -self.shadowtop;
    light.shadow.camera.top = self.shadowbottom;
    light.shadow.camera.shadowBias = self.shadowbias;
    light.shadowDarkness = self.shadowdarkness;
    light.shadow.camera.updateProjectionMatrix();

我希望更清楚地概述一下这些突破性变化:)