Shader Graph20-三面拉伸修复

问题:z方向也就是从上向下看的时候,纹理是正常的。而x、y的方向上纹理出现了拉伸。

Shader Graph20-三面拉伸修复_第1张图片

一、需要通过Triplanar Projection来解决,先来实现z轴方向的效果。

 Shader中下边红框为Mask的部分对应红绿蓝三色图,绿框部分Texture对应带有拉伸Texture图,两部分的结果就是最左侧的图。

Mask部分,先使用VertexNormal取绝对值然后Power得到红绿蓝三色间隔黑色部分,然后使用divide去掉黑色部分,得到下图左侧的结果,然后Split得到B方向也就是z轴方向的结果。

Shader Graph20-三面拉伸修复_第2张图片

Texture部分,采用世界坐标,multiply转为米单位,mask只取z轴方向。

Shader Graph20-三面拉伸修复_第3张图片

Shader Graph20-三面拉伸修复_第4张图片

二、三个方向都加上效果

Shader Graph20-三面拉伸修复_第5张图片

 在场景上添加两个球体,左侧是使用Triplanar Projection,右侧是没有使用的。右侧的在水平方向是上有拉伸现象,顶部还有聚集缩小的现象。

 Shader Graph20-三面拉伸修复_第6张图片

右侧的Material为下面的内容。

Shader Graph20-三面拉伸修复_第7张图片

三、Unity的版本

Swizze节点与Unreal的中的Mask节点的作用是相同的。

Shader Graph20-三面拉伸修复_第8张图片Unity中提供了Triplanar节点实现了以上所有功能,very cool。

Shader Graph20-三面拉伸修复_第9张图片

 

 

你可能感兴趣的:(Shader,Graph,Unreal,Unity,Triplanar)