3.0阴影有两个 BUG

一个是receiveShadow设置无效
大致问题代码如下

protected _updatePipeline () {

    const root = legacyCC.director.root;

    const pipeline = root.pipeline;

    const enable = this.enabled && this.type === ShadowType.ShadowMap;

    // if (pipeline.macros.CC_RECEIVE_SHADOW === enable) { return; }

    // pipeline.macros.CC_RECEIVE_SHADOW = enable;

    if (pipeline.macros.CC_RECEIVE_SHADOW === enable || (enable && pipeline.macros.CC_RECEIVE_SHADOW === undefined)) { return; }

    if (enable) {

        delete pipeline.macros.CC_RECEIVE_SHADOW;

    } else {

        pipeline.macros.CC_RECEIVE_SHADOW = false;

    }

    root.onGlobalPipelineStateChanged();

}

还有一个问题是plane无法造成阴影,这个问题还没看怎么回事
plane这个没问题了,是1.2的阴影没有用正面剔除导致之前用错了。

实测 3.1.1 CC_RECEIVE_SHADOW 也是没用的,receiveshadow 设置成 ON 和OFF 都能接收到阴影