移动端的tangent recompute问题

移动端打包后实机的skincache的tangent recompute无法生效,角色在闭眼时的阴影褶皱无法更新(表情曲线的normal和basecolor有生效),​这个什么解决的办法吗

[Attachment Removed]

重现步骤
移动端打包后实机的skincache的tangent recompute无法生效,角色在闭眼时的阴影褶皱无法更新(表情曲线的normal和basecolor有生效)

[Attachment Removed]

Hi,

你好,SkinCache在移动端有多种限制

  1. 你可以搜索下面的代码,就会看到两处关闭SkinCache的地方,这个限制目前是在Mali设备,跑OpenGLES的设备上可能会有问题,如果你的设备是跑Vulkan,或者是其他GPU的设备,可以修改代码让其跳过这个限制。
  2. 另外如果你们用到VertexColor,可以参考5.7版本里的FColorVertexBuffer::InitRHI实现,改成用AreBufferSRVsAlwaysCreatedByDefault,这个函数5.5没有,可以自己实现以下。

if (RenderData->LODRenderData[LODIndex].GetNumVertices() * 3 >= (64 * 1024))还有一个地方修复是针对GeometryCollection在移动端上Tangent计算不正常的,不确定是否跟你们效果有关 https://github.com/EpicGames/UnrealEngine/commit/88a77e82f8f3caead94b8dd5659dbeeea9be9932

[Attachment Removed]

您好,感谢解答,最终定位到问题确实是VertexColor的问题,看起来是被ManualVertexFetch移动端的限制阻碍回退掉了,已经可以了,感谢!

[Attachment Removed]