| |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
-> 游戏开发 -> 【Unity Shader】Special Effects(二)BorderFlow 边框流动(UI) -> 正文阅读 |
|
[游戏开发]【Unity Shader】Special Effects(二)BorderFlow 边框流动(UI) |
BorderFlow 边框流动UI边框流动的效果非常常见,实现思路也五花八门,在此我就不贴网上的那些示例了,直接看我们最终的效果图: 思路分析流光区域我们首先将上下左右四个方向在流动的区域(青色)定义为 那么,我们要如何确定哪些是 这个其实很简单,我们通过上方的效果图就可以看出来, 在一个二维平面中,只要确定了一个 众所周知,图像渲染就是一个不停输入与输出的过程,在这里我们不需要立即确定 流光区域的中心点通过反复研究效果图,我们发现 (上、右)流光从
至于中心点的y值,我们不难发现,上下左右四个方向的流光都是紧贴边缘的,而图像的四个边缘坐标都是已知的(uv坐标系),则 比如上方流光区域中心点y值 = 1 - 流光区域高度 * 0.5 由此得出流光区域的中心点为: 流光区域的宽度、高度中心点的规则确定了,那么再来看 通过再次研究效果图,我们可以很明显的发现,流光区域的宽度和高度没有规则可言,高度可以是任意值(当然不会大于图像的高度),宽度也是一样。 也就是说, 定义流光区域思路理清楚了,接下来我们直接写代码定义流光区域,先设定好输入值:
然后根据我们前文中的规则,算出流光区域的真正
然后将流光区域中心点的x坐标比例 ratio 映射到图像上的真实位置:
这里有人可能会看不懂了,上边框从左至右的真实x值应该是0-1(注释那行),为什么这里却是另一个值呢? 很简单,看图你就明白了:
那么至此,我们已经求出了 流光效果叠加
接下来,我们判断当前输入的像素点的uv坐标是否在
那么,求出来一个上边框以后,其他三个边框的算法也雷同了,只是 如何求一个二维点在一个矩形内这里也即是
流光效果的平滑我们再次回看一下效果图,会发现
这里的 流光动画要实现流光动画,很明显我们只需要改变输入的
|
|
|
上一篇文章 下一篇文章 查看所有文章 |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
360图书馆 购物 三丰科技 阅读网 日历 万年历 2025年3日历 | -2025/3/25 19:51:53- |
|
网站联系: qq:121756557 email:121756557@qq.com IT数码 |