当前位置: 首页 > news >正文

qt quick实现的水波纹特效:横向波纹、纵向波纹效果

qml实现的水波纹特效

  • 1.横向波纹效果
  • 2.另一种效果(纵向波纹)

一直以来使用c++ qt如果要实现一些高级特效比如水波纹效果都难度比较大,但是使用qt quick难度就会小很多。这里借鉴一些网友的思路简单实现一下水波纹效果。主要思路就是波浪的形成是基于sin曲线,以此来影响纹理坐标的颜色,然后加上时间动画不断改变曲线的坐标,从而达到一个波动效果。

1.横向波纹效果

Window {visible: truewidth: 800height: 600title: "Water Ripple Effect"Image {id: sourceImgwidth: 800height: 600source: "qrc:/12.png"}ShaderEffectSource {id: shaderSourcesourceItem: sourceImglive: true}ShaderEffect {id: waterEffectanchors.fill: parentproperty variant sourceTexture: shaderSourceproperty real frequency: 10property real amplitude: 0.04property real time: 0.0NumberAnimation on time {from: 0.0to: Math.PI*2duration: 1000loops: Animation.Infinite}fragmentShader: "varying highp vec2 qt_TexCoord0;uniform sampler2D sourceTexture;uniform highp float frequency;uniform highp float amplitude;uniform highp float time;void main() {highp vec2 pulse = sin(time - frequency * qt_TexCoord0);highp vec2 coord = qt_TexCoord0 + amplitude * vec2(pulse.x, -pulse.x);gl_FragColor = texture2D(sourceTexture, coord);}"}
}

效果如下-波涛汹涌:
在这里插入图片描述

2.另一种效果(纵向波纹)

Window {visible: truewidth: 800height: 600title: "Water Ripple Effect"Image {id: sourceImgwidth: 800height: 600source: "qrc:/12.png"}ShaderEffectSource {id: shaderSourcesourceItem: sourceImglive: true}ShaderEffect {id: waterEffectanchors.fill: parentproperty variant sourceTexture: shaderSourceproperty real frequency: 10property real amplitude: 0.08property real time: 0.0NumberAnimation on time {from: 0.0to: Math.PI * 2duration: 1000loops: Animation.Infinite}fragmentShader: "varying highp vec2 qt_TexCoord0;uniform sampler2D sourceTexture;uniform highp float frequency;uniform highp float amplitude;uniform highp float time;void main() {highp vec2 uv = qt_TexCoord0;highp float wave = sin(uv.y * frequency + time) * amplitude;uv.x += wave;gl_FragColor = texture2D(sourceTexture, uv);}"}
}

效果-树的摇曳:
在这里插入图片描述

修改下频率和振幅效果:

property real frequency: 60
property real amplitude: 0.02

在这里插入图片描述
这样看起来是不是有点波光粼粼的感觉了。挺有趣的~!0…0
代码链接奉上感兴趣的可以研究玩玩:
波纹效果代码地址

作者:费码程序猿
欢迎技术交流:QQ:255895056
转载请注明出处,如有不当欢迎指正

相关文章:

  • 北京网站建设多少钱?
  • 辽宁网页制作哪家好_网站建设
  • 高端品牌网站建设_汉中网站制作
  • 真题解析 | CCF CSP-J 2019 入门级 C++语言真题及答案
  • 安装开源软件ChatALL(齐叨)来聚合各大人工智能工具
  • Golang | Leetcode Golang题解之第332题重新安排行程
  • 使用 `@JsonTypeInfo` 和 `@JsonSubTypes` 注解实现多态序列化
  • django电商易购系统-计算机毕业设计源码61059
  • Element Plus的el-carousel走马灯平铺多张图片
  • 直播App遭受抓包后的DDoS与CC攻击防御策略
  • Haproxy的配置详解与使用
  • npm使用教程:从入门到精通
  • NextJS 使用 Docker 发布
  • echarts学习:绘制地图
  • PSO 算法实例(手动推导过程)
  • Windows下搭建Telegraf+Influxdb+Grafana(详解一)
  • 暴雨信息:以算力协同融入中西部数字经济发展
  • opencv 深度图视差图可视化案例
  • ES6指北【2】—— 箭头函数
  • 【技术性】Search知识
  • 2017届校招提前批面试回顾
  • happypack两次报错的问题
  • JS数组方法汇总
  • Laravel 菜鸟晋级之路
  • Netty源码解析1-Buffer
  • Python - 闭包Closure
  • spring boot下thymeleaf全局静态变量配置
  • 编写高质量JavaScript代码之并发
  • 对象引论
  • 快速体验 Sentinel 集群限流功能,只需简单几步
  • 浏览器缓存机制分析
  • 前端知识点整理(待续)
  • 阿里云API、SDK和CLI应用实践方案
  • 湖北分布式智能数据采集方法有哪些?
  • 如何用纯 CSS 创作一个菱形 loader 动画
  • ​埃文科技受邀出席2024 “数据要素×”生态大会​
  • #HarmonyOS:软件安装window和mac预览Hello World
  • $con= MySQL有关填空题_2015年计算机二级考试《MySQL》提高练习题(10)
  • (Pytorch框架)神经网络输出维度调试,做出我们自己的网络来!!(详细教程~)
  • (二)丶RabbitMQ的六大核心
  • (二刷)代码随想录第15天|层序遍历 226.翻转二叉树 101.对称二叉树2
  • (附源码)python房屋租赁管理系统 毕业设计 745613
  • (附源码)小程序儿童艺术培训机构教育管理小程序 毕业设计 201740
  • (黑马出品_高级篇_01)SpringCloud+RabbitMQ+Docker+Redis+搜索+分布式
  • (四十一)大数据实战——spark的yarn模式生产环境部署
  • (原创)可支持最大高度的NestedScrollView
  • (转)ABI是什么
  • ***通过什么方式***网吧
  • ./configure、make、make install 命令
  • .Net 6.0 处理跨域的方式
  • .net core 使用js,.net core 使用javascript,在.net core项目中怎么使用javascript
  • .NET Core6.0 MVC+layui+SqlSugar 简单增删改查
  • .NET delegate 委托 、 Event 事件
  • .net mvc 获取url中controller和action
  • .net6 core Worker Service项目,使用Exchange Web Services (EWS) 分页获取电子邮件收件箱列表,邮件信息字段
  • .Net各种迷惑命名解释
  • @Transactional 详解
  • [ C++ ] STL priority_queue(优先级队列)使用及其底层模拟实现,容器适配器,deque(双端队列)原理了解