Layer Material Blend无法使用Skin空间

Hi,

我们在使用Layer Material材质时,遇到一个问题。就是在Material Layer Blend中似乎无法使用Skin空间。

我们是在角色的胳膊上还有武器之类的添加一个血渍的层,但是实现的过程中发现很多角色胳膊上都有一个很明显的接缝。位置都不太一样。似乎和UV有关?

[Image Removed]

我们之前考虑用顶点色绘制的方法去处理接缝 但是效果不是很好。

[Image Removed]

[Image Removed]

所以把这个方案Pass了。

后面我们又想了一个方式,是把一张Mask三向投射到Skin空间应该就可以解决问题了。但是发现Material Layer Blend中似乎不能使用Skin空间。

[Image Removed]

直接就报错了

[Image Removed]

我们想了解下,还有什么办法能处理这个接缝么?因为我们大量使用分层材质,不太好回退到普通材质了。所以想了解下,有什么办法能在分层材质下处理Mask三向投射到Skin空间么?或者是否有其他方式能比较好的处理这个接缝问题?

可能截图效果不是很明显,我录了一个简单的视频:

https://drive.google.com/file/d/15ZZWeasjfPzDBmv1Pl4L8P3xlLfezZha/view?usp=sharing

附件中,也提供了一个测试Demo。

您好,

可以用Pre-Skinned Local Position在Material Layer Blend。这个问题是用Pre-Skinned Local Position在像素着色器。在像素着色器,应该用VertexInterpolator节点和Shader Stage Switch节点。

以下是图片:

[Image Removed]

这VertexInterpolator节点会插值,然后这些值可以用在像素着色器上。

Shader Stage Switch节点的结果会在顶点和像素着色器都有效。Material Layer Blend可以同时被它们使用,所以应该用Shader Stage Switch的结果。

这个举例图片如下:

[Image Removed]

如果Shader Complexity成为问题,你也可能研究Mesh Decals。可能这不会发生,这是建议。

Best regards,

Lance Chaney

非常感谢,使用Shader Stage Switch以后,不会再出现编译错误了。