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

该原创文章首发于微信公众号:字节流动

动态(水波纹)涟漪效果

水波纹效果原理

最近一个做视频滤镜的朋友,让我给他做一个动态水波纹效果,具体就是:点击屏幕上的某一位置,然后波纹以该位置为中心向周围扩散。接到这个需求,一开始就尝试着在 3D 坐标系(x,y,z)中利用正弦或余弦函数去修改 z 分量的值,但是这样出来的效果太假了,压根就没有水波纹的真实感。

然后,我就乖乖地去研究下物理世界中的水波纹是怎样形成的。你别说,我还真接了一盆水,坐在旁边观察了半天。

模拟物理世界中的水波纹

最后观察出,物理世界中水波纹的特点如上图所示,从水面的正上方往下看,在凹面上方观察到的是缩小效果,而在凸面上方观察到的是放大效果,然后整个水波纹效果就是放大和缩小效果的交叉排列。

因此,我们得出结论,水波纹(涟漪)效果实际上就是一组组相互交替、幅度向外部逐渐减小的缩小放大效果组合。本文将水波纹模型简化成一组放大和缩小效果随时间逐步向外部偏移。

OpenGL ES之实现动态(水波纹)涟漪效果 在物理世界中水波纹的特点如下所示,从水面的正上方往下看,在凹面上方观察到的是缩小效果,而在凸面上方观察到的是放大效果,然后整个水波纹效果就是放大和缩小效果的交叉排列。因此,要实现“水波纹涟漪”的效果,实际上就是一组组相互交替、幅度向外部逐渐减小的缩小放大效果组合。可以将水波纹模型简化成一组放大和缩小效果随时间逐步向外部偏移。... 阅读详情

相关推荐

OpenGL4Android:OpenGL使用在Android上的演示中,结合相机和MediaCodec实现预览和渲染,实现视频的裁剪,缩放,缩放,滤镜功能

OpenGL4Android OpenGL使用在Android上端的演示,结合相机和MediaCodec实现预览和渲染,实现视频的裁剪,缩放,缩放,滤镜功能。

opengl期末大作业酒馆店有动态效果.zip

期末OpenGL场景作业,该资源是一个酒店场景,色彩丰富,屋顶有动态LED灯,墙上有可旋转动态钟表,贴图丰富,场景复杂,值得购买。用VC6.0或VS都可运行通过。

android实现图片闪烁动画效果的两种实现方式(实用性高)

大家在使用APP的时候,有的APP在点击语音搜索界面后,会出现一个小话筒,小话筒会类似雷达似得在闪烁,表示正在倾听你说话的内容(这个大家可以参照微软的必应APP),那么问题来了,这种动画效果是如何实现的呢?其实实现这种动画效果有很多种方法,最常见的是两种:第一种就是插入n张图片进行切换已达到如此目的,第二种就是通过改变一张图片的透明度来达到闪烁的效果。下面就分别讲一下通过这两种方法如何实现。 第一种:通过n张图片之间切换实现动画效果   这种方法的原理很简单,利用handler的延时机制在子线程中完成图片切换,再在主线程展示。   1、首先我们要先写一个线程池,在使用的时候方便调用。

通过OpenGL ES混合模式缩放视频缓冲区来适应显示尺寸

当开发基于软件模式的游戏时,通过缩放视频缓冲区来适应显示尺寸是最棘手的问题之一。当面对众多不同的分辨率时(比如开放环境下的Android),该问题会变得更加麻烦,作为开发人员,我们必须尝试在性能与显示质量之间找到最佳平衡点。正如我们在第2章中看到的,缩放视频缓冲区从最慢到最快共有3种类型。 软件模拟:3中类型中最慢,但最容易实现,是没有GPU的老款设备上的最佳选择。但是现在大部分智能手机都支持硬件加速。 混合模式:这种方式混合使用软件模拟(创建图像缓冲区)和硬件渲染(向显示屏绘制)两种模式。这种方法速度很快,而且可以在分辨率大于256×256的任意屏幕上渲染图像。 硬件加速模式:3种类型中最快

HWSD中国土壤数据库

T_PH_H2O: Real (酸碱度) T_CEC_CLAY: Real (粘性层土壤的阳离子交换能力);T_CEC_SOIL: Real (土壤的阳离子交换能力) T_BS: Real (基本饱和度);T_CACO3: Real (碳酸盐或石灰含量) T_CASO4: Real (硫酸盐含量);ADD_PROP: Real (土壤单元中与农业用途有关的特定土壤类型);T_USDA_TEX: Real (USDA土壤质地分类);T_REF_BULK: Real (土壤容重);

地球资源数据云的官方博客 4651

别只当玩具!聊聊这个555金属探测器电路背后的电磁感应与RLC调谐原理

本文深入解析了555金属探测器电路的工作原理,重点探讨了电磁感应与RLC调谐原理。通过分析电感线圈的电磁特性、RLC谐振电路的行为以及555定时器的多重功能,揭示了这一看似简单的装置如何实现金属检测。文章还提供了灵敏度优化方案和常见问题解决方法,帮助读者从科学角度理解这一实用技术。

weixin_29204205的博客 477

关于深度可分离卷积

关于深度学习中的深度可分离卷积

qq_45670407的博客 1796

【拯救C盘】一文搞懂Windows修改Anaconda默认的虚拟环境存放路径及其原理

Anaconda创建的虚拟环境可能会默认保存在C盘,但C盘的存储空间很宝贵,由于每个虚拟环境的大小可能达到n个GB,稍不注意就会遇到C盘红色警告。因此有必要做点什么来拯救被虚拟环境占用的大部分空间!!!

Roach007的博客 3万+

Android AVB 分析(十三)dm-verity 设备是如何映射的?

在上一篇《Android AVB 分析(十二)嵌入式设备安全中的 dm-verity 简介》介绍 dm-verity 原理的时候,作者提供了一个 dm-verity 演示的例子。本篇我们基于 AOSP 源码 `android-13.0.0_r41` 实际编译生成的 Google Pixel 7 (“panther”) 设备的 system 分区镜像进行 dm-verity 设备验证实战。

洛奇看世界 2438

XXL-Job 分布式定时任务

XXL-JOB是一款轻量级分布式定时任务调度框架,采用调度中心与执行器分离架构,解决单机任务宕机、重复执行等问题。核心模块包括调度中心(管理任务配置、触发调度)和执行器(执行任务逻辑),支持集群部署保证高可用。框架提供丰富的任务触发规则、路由策略、阻塞策略及完善的运维能力,适用于多种业务场景如数据同步、定时推送等。安装时需准备MySQL数据库并初始化表结构,通过Docker部署调度中心服务。相比其他定时框架,XXL-JOB具有轻量化、可视化等优势,是中小企业的首选方案。

郭宝的博客 699

全栈拆解华为乾崑 ADS 5:WEWA2.0智能体架构与安全风险场技术、实现多传感器全融合感知与主动安全预判、助力城市NOA/高速领航/全场景无人通行极致落地

华为乾崑ADS 5的核心颠覆性,不在于单一功能的小幅升级,而在于实现了自动驾驶从“工具式辅助驾驶”到“拟人化智能体驾驶”的全栈范式革命。通过WEWA 2.0端云协同AI智能体架构,解决了传统智驾决策僵硬、博弈能力弱、学习效率低的行业痛点;通过行业首发安全风险场技术,将自动驾驶安全体系从被动避险升级为主动预判,直接减半行车风险;通过乾崑OS专属车规系统底座,保障高阶智驾的低时延、高稳定、高可靠运行;通过多传感器超融合感知体系,实现全场景、全天候、无盲区的精细化环境理解。

getusushu的博客 289

一个超酷的开源uHand2.0机械手掌项目

uHand2.0是深圳乐幻索尔公司开源的一款机械手掌,它长下面这个样子:1、uHand2.0外观图之前在公众号就分享过视频:学习嵌入式可以带娃,不信你们看2、uHand2.0硬件原理图看...

Bruce.yang的嵌入式之旅 4460

老版QQ原生表情gif动态

这是老版的QQ表情,不过全是动态的的,Windows照片查看器是不会动的,可以右击用浏览器打开查看,再说一遍是老版的,只是分享给宁愿用老版也要动态的人。

Devexpress16.2.6破解工具

Devexpress16.2.6破解工具Devexpress16.2.6破解工具Devexpress16.2.6破解工具Devexpress16.2.6破解工具

Statistics and Machine Learning Toolbox

Statistics and Machine Learning Toolbox(带书签),MATLAB统计学习工具

假人有限元模型

假人模型,车辆碰撞假人有限元模型,适合做乘员安全的研究者利用

上一篇: Android OpenGL ES 实现 3D 阿凡达(Avatar)效果
下一篇: 推荐一款强大的 Android OpenGL ES 调试工具
字节流动
字节流动 优质创作者: 编程框架技术领域 优质创作者: 编程框架技术领域 领域专家: 嵌入式与硬件开发技术领域 领域专家: 嵌入式与硬件开发技术领域
博客等级 码龄11年 1912粉丝 168原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

字节流动

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值