Unity URP 投射错误的阴影

问题描述

我正在使用 Unity 2020.1.13f1c1,我目前遇到一些阴影投射问题,其中投射了错误的阴影。当我在编辑器中进入播放模式时,会发生这种情况。

PlayAnimationInEditor_PlayMode

角色身体的阴影成为我动画中第一个关键帧的头部阴影。 但是当我在没有进入播放模式的情况下播放动画时,它不会在编辑器中发生。那里的阴影很正常。

PlayAnimationInEditor

身体和头部是一个游戏对象下的 2 个独立的游戏对象(四边形)。 这是我用于两个游戏对象的材质的 Shadergraph

ShaderGraphForManualAnimation

另外,我注意到如果我将头部移离 Spotlight 的范围,阴影又会恢复正常。

MoveHeadOutofSpotlight

谁能帮我解决这个问题?有什么地方我可能做错了吗?或者这是Unity中的一个小故障?或者可能与我将项目从旧版本的 Unity 升级到 2020.1.13f1c1 的事实有关?

[此问题也发布在 Unity Forum]

----------更新 26/1/2021----------

FrameDebug 揭示了一些奇怪的东西。渲染管线实际上使用 2 种不同的纹理进行阴影和不透明渲染。 在阴影渲染通道中,它使用头部的纹理。但是在不透明渲染过程中,它使用来自身体的纹理。

ShadowPass

OpaquePass

我对URP渲染管线的内部不是很熟悉,但是管线如何在阴影渲染通道和不透明渲染通道之间切换同一网格的纹理?

解决方法

Nvm 好像是 Unity 项目自动升级的问题。重做动画就解决了。