首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

水波扩散效果(shader)

水波扩散是一个比较好看的交互效果,特别是在某些以水为故事发生场景的游戏中,扩散的水波会让场景更加栩栩如生 ?...demo 实现思路 如果水波静止,我们看到的其实是像素点围绕着某个中心点的拉伸效果,我们只需让每个像素点叠加上它和中心点的向量差,就能够呈现出画面上的所有像素围绕中心点的拉伸感。...周期性往外涌 这种呼吸灯式的涌动其实和我们的最终效果有很大区别,因为它永远在循环涌动,但是我们的水波是从中心扩散出去之后,中间部分就不再动了的,怎么让中间的像素不再多次涌动呢?...如果把一圈水波比作圆,那水波的扩散行为其实就是这个圆的半径在不断的增大,圆外面的波纹有效,圆里面的波纹静止。...未调优效果 接下来的就是参数的调试,主要是三角函数的采样那里,我们希望水波能够产生多个波动,所以我们需要乘上一定的倍数,让函数的作用范围足够大,才能有足够多的波峰谷底。

2.4K20

充电水波摇晃效果

充电摇晃效果 大体上采用伪元素来实现的电池充电效果 实现效果 实现思路 首先搭建一个html框架,建出电池模型 先尝试利用动画实现水面上升的效果 利用伪元素不规则的圆,定位在水的上半部分,让这个不规则的圆...,来遮盖水,从而使水面出现不均,再让不规则的圆旋转,使得,遮盖水面的情况不一样,形成涟漪的效果 再利用伪元素,同样的方法建一个不规则圆,给点透明度,出现背后的阴影效果 要点分析 创建明显的水纹 .wave...::before { position: absolute; content: ''; top: -185px; left: -50px;//通过调试定位到合适的位置...//在上面的基础上添加一定的透明度 opacity: .5; 完整代码 的不足,有很多的知识点疏漏,希望面前的你,能够再细致一点,再努力一点,加油吧!

57620
  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    Android 水波纹效果的探究

    长按水波纹扩展效果 前言 水波纹效果从Android5.0就已经出来了,基本的使用相信大家都知道了,这里多谈一些相对深层次的使用: 1、基本使用 2、水波纹效果与布局绘制之间的问题 3、长按水波纹扩散效果...Mask的内容并不会被绘制到屏幕上,它的作用是限定Ripple效果的绘制区域。 最后可以得到我们想要的效果: ? image.png 长按水波纹扩散效果 ?...长按水波纹扩展效果 在使用小红书时,我们可以看到关于“笔记”的item长按会展示扩散的效果,其实原理也很简单。...无边界的水波纹可以达到长按扩散的效果,只是它会超出边界,那我们就在对应的父布局加一层有边界的水波纹背景即可。...参考资料 Ripple 水波纹效果 聊聊Android5.0中的水波纹效果 解决点击ripple水波纹无效的问题 UI之修改Button颜色保持默认点击效果

    2.4K20

    Android:RippleDrawable 水波纹涟漪效果

    二、RippleDrawable基本概念介绍 (1)、RippleDrawable RippleDrawable可以实现上面效果图中的水波纹效果,它是在API 21 中添加的,所以,低于21的版本中不可使用...没有指定mask ,并且也没有指定radius 时,会以控件宽高中的较大值为直径绘制水波纹,这样就必然会超出控件的范围,所以,这种效果也叫做 无界水波纹效果。...指定mask 后 ,id 为 mask 的item 中指定的drawable 可以限定水波纹的范围。 三、代码示例: (1)、xml 中定义 ripple 下列代码依次对应效果图中的前6个。...--无界水波纹效果,所谓无界,实际是以空间宽度或高度中的大值作为直径绘制一个园--> <TextView android:layout_width...--有界水波纹效果。

    2.7K20

    Android实用View:水波动画效果(多种方式)

    View实现水波动画效果的文章,其实在去年项目中使用过类似的动画,当时就自定义View也实现了预期的效果,最近项目中又使用了相似的效果,于是对代码重新整理了一下并且记录下来,便于以后有类似需求可以当作参考...;φ,相位,我们就是根据不断改变相位来达到波形移动的效果,每次移动多少可以从外界传入,便于控制速度;K,波形偏移上下的距离,知道了以上各个参数的具体使用意义,下边就可以直接通过代码看下具体实现效果了,毕竟公式都有了...计算控制点纵坐标的方式.png 根据计算得到起点和控制点坐标之后就可以写代码运行了效果和上边的运行效果一样就不再展示了,上边的计算内容就解释了代码提出的问题 ?...正余弦函数的波形使用是根据相位控制的,而贝塞尔曲线实现的波形效果是不断改变波的起始位置控制的,并且使用贝塞尔曲线的话需要先在屏幕外边绘制一个完整的波形,保证在平移的过程中可以看到图像不间断的移动来达到移动的波形效果...最终效果:录制模拟感觉有点卡顿,请真机测试哦.gif 看到这里你是你会感觉到这篇文章的内容其实很简单,只要中间的几个点注意一下就可以实现相应的效果了,建议朋友们动手敲一遍代码,加深一下印象,毕竟真是做出来和知道理论没有实践还是有很大区别的

    85420

    使用Python实现水波纹效果:逼真的水波动画

    引言 水波纹效果是一种常见且迷人的视觉效果,广泛应用于游戏和图形设计中。在这篇博客中,我们将使用Python创建一个逼真的水波动画。...通过利用Pygame库和基于网格的算法,我们可以实现动态水波纹效果。 准备工作 前置条件 在开始之前,你需要确保你的系统已经安装了Pygame库。...: pygame.init() screen = pygame.display.set_mode((800, 600)) pygame.display.set_caption("水波纹效果") clock...= pygame.time.Clock() 定义水波类 我们创建一个Water类来定义水波的属性和行为: class Water: def __init__(self, width, height...我们定义一个函数来绘制水波效果: def draw_water(screen, water): for y in range(water.height): for x in range

    15410

    修改Vue.js版本,以修复MuseUI没有水波纹效果的BUG

    前言 学习Vue了一段时间,个人还是比较喜欢Material Design风格的框架,找了很久,最满意的也就是Muse-ui了。...然后就发现了一个超级恶心和严重的问题,它不支持Vue@2.6.8以上版本。...具体表现就是版本不符的时候没有基本的波纹效果(要MD就是要找个风格没有这个我玩nm),我本来以为是Chrome的问题,但是,直到我提交了issue,得到回答查了很多资料,就连官方都没告诉你怎么降版本,自己捣鼓了一晚上算是搞定了...vue-template-compiler npm uninstall vue npm uninstall vue-template-compiler vue-template-compiler这个和vue是同版本号的,...结束 真的发现真正的干货网上太少了,或者有人写过但是博客和我一样是个人博客,压根搜不到。唉 如果这篇文章帮助到你了,请分享给你的朋友,感激不尽。

    1.2K10

    Vue组件设计 | 实现水波涟漪效果的点击反馈指令

    1.jpg 鼠标移入时的小手、鼠标点击时按钮下压弹起的动画、触屏应用点击时的屏幕震动,这些效果都给予用户一种是我的行为产生了这样的效果的直觉,这些效果也被统称为点击反馈,虽然看似是应用中的细枝末节,但是只要稍微投入一点点心思...,带来的用户体验提升是十分明显的 水波效果 这里作者为小伙伴们推荐一种作者最喜欢的点击反馈效果。...当用户点击时,会以点击中心为圆心产生一个水波扩散的涟漪效果,适用各个场景,美观又不浮夸,关键是可以给用户带来很直观的反馈。...第一个箭头: 期望得到的水波 第二个箭头: 元素(0,0)点创建的水波 第三个箭头: 元素(0,0)点创建的水波, 不带圆角效果 A8214090-1AC5-4091-BEF0-CFA38B105E35....png 我们可以发现通过元素(0,0)点创建的水波进行一定偏移就可以得到我们想要的水波,由此我们可以推断出 动画结束时的水波的尺寸 = 圆的斜边 创建时的(x,y) = 用户点击的位置 过度动画结束时的

    91330

    如何实现一个丝滑的点击水波效果

    本文为Varlet组件库源码主题阅读系列第九篇,读完本篇,可以了解到如何使用一个div创建一个点击的水波效果。...setStyles(this) // 将水波元素添加到被点击元素内 this.appendChild(ripple) // 20ms后修改水波元素的样式,达到水波的扩散动画效果...过渡属性即可实现过渡效果,也就是水波扩散的效果,样式是通过类名var-ripple设置的: :root { --ripple-cubic-bezier: cubic-bezier(0.68, 0.01...因为水波元素为被点击元素的子元素,所以这些坐标都是相对于被点击元素的左上角坐标计算的: 从绿色的圆过渡成红色的圆,透明度、大小、位置的变化就是水波的扩散效果。...setTimeout(task, 60) : task() } 先回顾一下创建水波的各个阶段的耗时,当我们第一次点击元素时,等待60ms后会创建水波元素,然后再等待20ms后会开始进行水波的扩散效果,动画耗时

    60820

    Qt编写自定义控件63-水波效果

    一、前言 几年前就一直考虑过写这个控件了,在9年前用C#的时候,就看到过别人用C#写了个水波效果的控件,挺好玩的,当时看了下代码用的二维数组来存储变换的图像像素数据,自从学了Qt以后,有过几次想要用Qt...前阵子一个好友-离心泵(QQ:33522)恰巧写了个,我在他的基础上改进了一些功能,增加了一些接口设置,比如提供参数可以控制水波的消失速度,扩散的速度,水波的面积大小以及水波的深度等。...:可设置石头重量,控制水波深度,值越大水波深度越浪 6:目前采用的是cpu运算和绘制,图片越小越流畅 三、效果图 [在这里插入图片描述] 四、头文件代码 #ifndef WAVEWATER_H #define...WAVEWATER_H /** * 水波效果控件 作者:离心泵(QQ:33522) 整理:feiyangqingyun(QQ:517216493) 2019-10-03 * 1:可设置显示的图像...linux等,不乱码,可直接集成到Qt Creator中,和自带的控件一样使用,大部分效果只要设置几个属性即可,极为方便。

    91520

    FLASH水波纹效果动画制作教程图文自编「建议收藏」

    ,在点击软件中的文件—-导入 —–导入到舞台—,把刚才的你找好的风景图片导入进入点击确定,这个图片就自然到了场景中,首先图片大小要符合场景文档属性的默认要求,修改图片的大小尺寸,如果图片有网址,我们可以提前用...,如看不清,先临时把图层一眼睛关闭掉,就是把图层一小锁前面的眼睛点击下 看擦好后的效果 如图 擦好之后把图层一的眼睛打开,这时候需要放大你场景的倍数,在软件的右边点击小三角放大到400%, 这样放大后...高是10的矩形,画好后在点击下黑箭头工具,把矩形拉个弓形,弄好后,在复制多个弓形,把图片完全的覆盖好,还要过图片的高度,如图效果 做到这步后, 我们在图层三的时间轴100帧处,右键插入关键帧,在点100...帧,把遮罩的矩形条上边和图片的上端对齐, 如图下 放好位置后,在点击下面属性旁边的补间小三角——-改为形状补间, 在图层三处点击右键为遮罩层,就这样一个水波纹的动画就出炉了,其实在这里为了让大家学的快...,这个图片应该树木和水都应该有轻微的动,树木动和水动的原理是一样的,简单吧,这个大家可以学习参考,当然如果 你有好制作方法的教材也可以在编辑更好的效果出来,小妖编写教材纯属娱乐,高手莫笑哦, 看看我制作好的效果图吧

    1.4K10

    Android OpenGL ES 实现动态(水波纹)涟漪效果

    动态(水波纹)涟漪效果 1 水波纹效果原理 最近一个做视频滤镜的朋友,让我给他做一个动态水波纹效果,具体就是:点击屏幕上的某一位置,然后波纹以该位置为中心向周围扩散。...模拟物理世界中的水波纹 最后观察出,物理世界中水波纹的特点如上图所示,从水面的正上方往下看,在凹面上方观察到的是缩小效果,而在凸面上方观察到的是放大效果,然后整个水波纹效果就是放大和缩小效果的交叉排列...因此,我们得出结论,水波纹(涟漪)效果实际上就是一组组相互交替、幅度向外部逐渐减小的缩小放大效果组合。 本文将水波纹模型简化成一组放大和缩小效果随时间逐步向外部偏移。...水波纹模型原理 发生形变区域的宽度为固定值 2*u_Boundary ,然后这个形变区域随着 u_Time 的变大逐步向外侧移动,最后就形成了动态的水波纹效果。...2 水波纹效果实现 基于上节的原理分析,实现水波纹效果的主要原理就是实现一定区域内的缩小和放大效果,我们以平滑函数的输出值作为纹理采样坐标的偏移程度。

    2.3K20

    仿百度外卖的酷炫水波纹效果

    作者博客 http://www.jianshu.com/u/5aad180d1ea8 前言 在网上经常会看到别人写的一些开源项目,然后会惊叹于他们的写的效果,当然那些大神也会把代码放出来,然后供大家看,...我来写下我最近学的动画效果及相关的知识。 仿百度外卖个人中心效果 ? 我们先来看下这个自定义的View的代码是如何实现的。 ? ? ? 我们一步步来分析。首先我们要自定义一个View。 ?...2.绘制内容(onDraw) onDraw是实际绘制的部分,也就是我们真正关心的部分,使用的是Canvas绘图。 ? 我们是不是在想这个百度个人中心效果到底是怎么实现的,在这里我要贴个图: ?...有人要问,lineTo不是画直线的么。其实这个sin和cos曲线就是被我们一小段一小段的用线段画出来的。 ? ? 比如画上述这个sin函数。我们画好后。怎么让他不停的往左移动,产生波浪的效果呢。...这样就不停的上下的浮动了。 ? 附上Activity及layout的代码: Activity: ? Layout: ? 最后咱们做出来的效果图就是这样滴: ?

    46130

    【页面效果优化 1】下划线与水波纹

    现阶段页面体验和动态效果很被用户重视,由于之前都是面向对象编程,所以对于CSS动态效果有所忽略,现在要求越来越高,不得不面向CSS编程了,在实现页面动态效果的同时,并想记录下来以后搭建更多项目的时候快速复用...1.3.5、 transition:all 0.3s transition为动画过渡效果,参见此处【点击浏览】,这里伸缩的渐变效果即为此属性控制。...---- 2、cardView点击水波纹效果 ?...演示效果.gif 由于录像软件问题,调试显示点击出现严重拖影现象,不过可以看出具体细节效果,点击的时候CSS绘制的渐变效果实际上并不是非常理想的圆弧,有点颗粒渐变,不过在正常显示的情况下,这个过程很快...2.3.2、transition: transform .3s,opacity .5s 扩展变化与透明度变化,这里非常考验人的想象能力,即在扩展过程中,透明度也必须发生变化,双重变化形成了水波纹的效果

    85840

    JS动画效果

    JavaScript 动画框架 框架封装 ---- 相信大家在很多门户网站上都可以看到动画的交互效果,通过这些动画生动地体现了我们在网页上的交互效果,现在我们就来学习一下这些动画效果的分解动作吧。...作为学习了网页设计初步的一个进阶选修课。 动画的实现思路都是通过连续改变物体的属性值来实现效果的。一般来说都是改变一个物体的left,right,width,height,opacity....,放进一个人通用的JS文件里movement.js: function getStyle(obj,attr) { if(obj.currentStyle){ return obj.currentStyle...JSON的格式: {键:值,键:值} 完善后的运动框架js:movement.js function getStyle(obj,attr) { if(obj.currentStyle){...startMove(li,{'width':400,'height':200,'opacity':100}); 效果果然是可以同时运动的。

    20.8K81
    领券