Unity - 静态对象忽略的顶点光(光照贴图)

Unity - Vertex light ignored by static objects (lightmapped)

顶点光在动态对象上工作得很好,但第二次我将它们设为静态并烘焙光照贴图时它们被忽略了。

我尝试在着色器中更改为不同的 "lightmodes",但 none 有效。 Lightmode "ForwardBase" 似乎真的一团糟,尽管根据 https://docs.unity3d.com/Manual/SL-PassTags.html

上的描述,我认为它是可以使用的

如有任何建议,我们将不胜感激:)

我对题主的理解

据我了解,当您烘焙光照贴图时,唯一会改变烘焙对象光线的光源是像素光。但是你想让它与顶点光一起工作。

我仍然不完全确定你的意思是光一开始就不会烘烤到烘烤的贴图中,还是烘烤后它不会影响物体的光照水平。

总之,我搜索了一下。

可能solution/explanation1

当我搜索时,我发现了这个工具和描述。

https://assetstore.unity.com/packages/vfx/shaders/vertex-lit-shader-baked-shadows-realtime-light-75977

By default, using Unity’s built-in shader Mobile/VertexLit lighting works only as either baked or realtime but you cannot display a realtime light on a baked surface. This shader allows a baked surface to also receive realtime lighting.

请注意,该工具是免费的。


可能solution/explanation2

我也看到了这个教程:https://catlikecoding.com/unity/tutorials/rendering/part-16/

作者写的地方

When lightmaps are used, Unity will never include vertex lights. Their keywords are mutually exclusive. So we don't need a variant with both VERTEXLIGHT_ON and LIGHTMAP_ON at the same time.

最后请注意,这些解决方案似乎是在早期版本的 Unity 上开发的。可能存在更合适的更新解决方案。

希望对您有所帮助。