Loading... ### 效果 ![鱼鳞纹路](https://res.lazyun.cn/typecho/2022/07/09/fishscale.jpg?x-oss-process=style/compress) [视频演示](https://www.bilibili.com/video/BV1UB4y1e7xv/) ### 实现思路 - 确定A系列的圆的圆心距离,使用`_DEBUG_DISTANCE_A` 显示如下图 ![](https://res.lazyun.cn/typecho/2022/07/09/distance_a.jpg?x-oss-process=style/compress) - 同理,所有圆偏移坐标`float2(0.5,0.5)` 得 B系列的圆心距离 - 基于圆心距离和给定半径确定出系列圆A和B,使用`_DEBUG_RANGE_A`显示如下 ![](https://res.lazyun.cn/typecho/2022/07/09/range_a.jpg?x-oss-process=style/compress) - 根据鱼鳞层次优先级,确定A和B系列圆的显示访问,使用`_DEBUG_SCALE_A`显示如下 ![](https://res.lazyun.cn/typecho/2022/07/09/scale_a.jpg?x-oss-process=style/compress) - 给A和B系列圆上色并混合,使用`_DEBUG_COLORAB`显示如下 ![](https://res.lazyun.cn/typecho/2022/07/09/color_ab.jpg?x-oss-process=style/compress) - 两系列圆之间的缝隙需要填补,可以`1 - scale_a - scale_b`确定出范围并上色,得到最终效果: ![](https://res.lazyun.cn/typecho/2022/07/09/fishscale_final.jpg?x-oss-process=style/compress) ### 代码 https://github.com/LazyunGame/ShaderEffects/blob/master/Assets/FishScaleShader/FishScale.shader 最后修改:2022 年 07 月 09 日 © 禁止转载 赞 0