效果
- 底部有一层底纹
- 底纹上方有一层根据模型高度向上扫描的发光条
- 改变模型尺寸,模型的贴图不变
- 可改变发光条亮度
- 可改变地图透明度
- 可以调整贴图尺寸
- 可以调整扫描时间间隔
- 可以调整发光条的宽度
- 可以改变发光条的扫描方向
实现思路解析
实现方式
透明度(消耗高)
遮罩,开启噪点遮罩(相对透明度来说消耗更低)
具体实现
-
扫描效果
- 用uv偏移的思路,将uv某个维度的值加上time,就会一直向一个方向偏移,然后将这个值模上一个 1+发光条宽度的值,就会将偏移值限制在 0 - 1+发光条宽度这个范围。然后再用smoothStep函数将这个范围的值重新映射到 0 - 1,这样uv就会在指定方向做0-1的偏移了
- 利用 *2-1取绝对值 的方法取到从1-0-1的渐变效果,然后用smoothstep函数设定发光条的宽度,然后取反,这样在uv偏移作用下,设定的发光条就会在0-1间偏移
-
贴图纹理设置
- 直接利用AbsoluteWorldPosition然后Mask某两个channel,总会有某个方向纹理不变形,那么就开始揉和三个组合各自纹理没有变形的channel,就能组合出一个xyz三个方向都不变形的纹理规则了
- 在实践中法线,将AbsoluteWorldPosition的RG通道mask后给到UV,那么Z轴uv就会规范,不随物体尺寸而变形。同理可以推导GB是X方向规范,而RB是Y轴规范
- 利用顶点法线方法,将X轴大于0.5的直接赋值X轴UV规范的GB组合,Y轴大于0.5的直接赋值Y轴UV规范的RB组合,剩下的赋值Z轴UV规范的RG组合。通过lerp进行筛选
-
底纹设置
- 将获取的发光条遮罩加上(纹理*0.1透明度)的值,让整体有一层淡淡的底纹效果,但是这个底纹设置在OpacityMask,需要开启噪点遮罩,开启后允许根据透明度具体值做遮罩展示
- 将获取的发光条遮罩加上(纹理*0.1透明度)的值,让整体有一层淡淡的底纹效果,但是这个底纹设置在OpacityMask,需要开启噪点遮罩,开启后允许根据透明度具体值做遮罩展示