最近捕鱼达人3的发布 ,人气比较高,由于前2部作品已经有一大群“粉丝”,所以此次3代再发布就受到很多关注。就画面3代是3d的效果,加上一些特殊效果,在画面质量上有了一定的提升。本文讲述一下捕鱼3的开场漩涡实现方法,它类似ps的旋转扭曲效果,只是程序中可以动态改变参数,实现像漩涡一样的效果。

首先,进入主场景的时候,将整个场景渲染到一个节点中,然后执行shader操作,vert着色器将所有的点进行扭曲变换,在颜色着色器乘以一个沿着中心点变化的因子,使得越靠近中心点,颜色逐渐变成白色或者透明。

为了将扭转力具体化,这里我将它看出角加速度,假设靠近中心点的距离在一定范围内用百分比表示,比如在400个单位的范围,距离中心点100的点就是100/400=0.25,将它用do表示。假如扭力在距离中心点100的地方是最大的,然后向两边越来越少,这样就会形成旋转扭曲的效果。

float d=sqrt(ja_position.x*ja_position.x+ja_position.y*ja_position.y);

float d0=d/400;

float w=0.1+(1-(do-0.25)*(do-0.25))*force;

float c=cos(w);

float s=sin(w);

mat4 m1=mat4(c,s,0,0,-s,c,0,0,0,0,1,0,0,0,0,1);

gl_Position =CC_MVPMatrix *m1* ja_position;

在以上的代码中,m1是点的变换矩阵,将所有点左乘m1,最后就会出现扭曲的效果。

gl_FragColor =dstclr*d0;

以上是将目标色乘以变化因子,这里只是简单将中心点附近的颜色变浅。

由于源代码很多,还要建立网格,顶点索引等等,这里就不一一贴上来啦~,需要的朋友可以联系,呵呵

效果图:

变换前:

变换后:

ps滤镜之旋转扭曲算法实现相关推荐

  1. 图像滤镜艺术---图像滤镜晕影调节算法研究

    原文:图像滤镜艺术---图像滤镜晕影调节算法研究 本文对滤镜中常见的晕影,晕角效果的实现做了研究,具体如下: 1 晕影调整算法 所谓晕影就是给图像四个角添加暗影效果,这暗影向图像中心逐渐淡化.我们使用 ...

  2. python绘制立体扇形_Python实现PS滤镜特效之扇形变换效果示例

    本文实例讲述了Python实现PS滤镜特效之扇形变换效果.分享给大家供大家参考,具体如下: 这里用 Python 实现 PS 滤镜中的一种几何变换特效,称为扇形变换,将图像扭曲成一个扇形,具体的算法原 ...

  3. html怎么做出相框的效果,PS滤镜制作漂亮的实木相框效果

    一.新建一个600 * 800像素的文件,然后新建一个图层,前景颜色设置为红色,背景设置为深红色,执行:滤镜 > 渲染 > 纤维,参数设置如下图. 二.执行:图像 > 旋转画布 &g ...

  4. python 艺术照片滤镜_Python实现PS滤镜Fish lens图像扭曲效果示例

    本文实例讲述了Python实现PS滤镜Fish lens图像扭曲效果.分享给大家供大家参考,具体如下: 这里实现 PS 滤镜中的一种几何变换– Fish lens, 对图像做扭曲,感觉就像通过一个凸镜 ...

  5. python图片马赛克_Python实现PS滤镜中马赛克效果示例

    本文实例讲述了Python实现PS滤镜中马赛克效果.分享给大家供大家参考,具体如下: 这里利用 Python 实现PS 滤镜中的马赛克效果,具体的算法原理和效果可以参考附录说明,Python示例代码如 ...

  6. Python: PS滤镜--径向模糊

    本文用 Python 实现 PS 滤镜中的径向模糊特效,具体的算法原理和效果可以参考之前的博客: http://blog.csdn.net/matrix_space/article/details/3 ...

  7. Python: PS 滤镜--马赛克

    本文利用 Python 实现PS 滤镜中的马赛克效果,具体的算法原理和效果可以参考之前的博客: http://blog.csdn.net/matrix_space/article/details/30 ...

  8. Python: PS 滤镜--素描

    本文用 Python 实现 PS 滤镜中的素描特效,具体的算法原理和效果可以参考之前的博客: http://blog.csdn.net/matrix_space/article/details/386 ...

  9. OpenCV——PS 滤镜, 浮雕效果

    具体的算法原理可以参考: PS 滤镜, 浮雕效果 // define head function #ifndef PS_ALGORITHM_H_INCLUDED #define PS_ALGORITH ...

最新文章

  1. 【Dlib】使用dlib_face_recognition_resnet_model_v1.dat无法实现微调fune-tuning
  2. js控制文本框仅仅能输入中文、英文、数字与指定特殊符号
  3. 589-N叉树的前序遍历
  4. 前端学习(548):node的自定义模块
  5. 哥哥被我打哭了的飞鸽传书
  6. 【bzoj3669】[Noi2014]魔法森林【LCT】
  7. Jest中Mock网络请求
  8. CISC, RISC 探究
  9. 深入理解数组与指针——原因在于”退化“
  10. JSON --- JAVA 使用方法
  11. 历时2年《爱上Android》出版了
  12. 设计模式(4)—— 简单工厂模式(Simple Factory,创建型)
  13. Java 生成二维码实战
  14. ef mysql 分页查询语句_MySQL、Oracle和SQL Server的分页查询语句
  15. 数据系统 需要的服务器配置,数据系统 需要的服务器配置
  16. 持久层框架JPA与Mybatis该如何选型
  17. Java零基础学习021-API进阶第二天
  18. marlin固件烧录教程_marlin固件中文(marlin固件下载)
  19. Matplotlib grid()设置网格格式
  20. wifi共享大师去广告的方法

热门文章

  1. Ubuntu下阅读CHM格式的文档
  2. 微信对账单接口返回值解析
  3. 腾讯秀丽江山之长歌行服务器维护,《长歌行》8月28日合服公告
  4. 数据库连接池的管理思想
  5. 悬浮细胞、淋巴细胞培养常见失败原因及解决方案
  6. 第049篇:VBA之合并单元格、取消合并单元格并保留原来的数据
  7. (九) 正则表达式——文本处理(用s///替换、split与join函数、列表上下文中的m//、非贪婪量词、文件更新等)
  8. excel图片技巧:如何为报表配上节日祝福动画
  9. Revit翻模教程:怎么在体量内绘制圆锥?
  10. BIM建模助手上线一周,有哪些BUG被用户找到?