设为首页收藏本站|繁體中文

Project1

 找回密码
 注册会员
搜索
查看: 2017|回复: 3
打印 上一主题 下一主题

[原创发布] mv shader+rendertexture

[复制链接]

Lv3.寻梦者

梦石
0
星屑
3582
在线时间
3065 小时
注册时间
2011-11-17
帖子
980
跳转到指定楼层
1
发表于 2022-8-23 05:33:33 | 只看该作者 |只看大图 回帖奖励 |正序浏览 |阅读模式

加入我们,或者,欢迎回来。

您需要 登录 才可以下载或查看,没有帐号?注册会员

x
本帖最后由 yagami 于 2022-8-23 16:03 编辑

好久没来了,做了个比较常用的功能 ,屏幕后处理效果 这里做了几个简单的例子

使用方法如下


toys.js.zip (2.9 KB, 下载次数: 17, 售价: 1 星屑)

Lv3.寻梦者

梦石
0
星屑
3582
在线时间
3065 小时
注册时间
2011-11-17
帖子
980
3
 楼主| 发表于 2022-8-23 16:07:22 | 只看该作者
本帖最后由 yagami 于 2022-8-23 17:28 编辑
1071257831 发表于 2022-8-23 08:11
插件看起来可以,
我给插件写了一个帮助方便用,如果有冒犯到了您,我会第一时间删除。


第一个问题是切换场景没保存状态 这个改了
第二个可能是因为贴图没主动gc导致的,不是很清楚 我加了内存释放你可以试试,附件更新了
这个其实主要是个思路,效果能扩展,我只是用了几个最简单shader,使用场景也能扩展,比如战斗场景里也能用,这个就靠后人自我发挥吧
比如下面这个效果 我并没整合进去 shader和参数如下 ,就当练手吧

JAVASCRIPT 代码复制
  1. var frag2 = " \
  2.             varying vec2 vTextureCoord;\
  3.                 uniform sampler2D uSampler;\
  4.                 uniform float m_time;\
  5.                 uniform float period;\
  6.                 uniform float velocity;\
  7.                 uniform float amplitude;\
  8.                 uniform float brightness;\
  9.                 float PI = 3.14159;\
  10.                 void main(void){\
  11.                   float v = sin((vTextureCoord.x - m_time * velocity) * 2.0 * PI * period);\
  12.                   vec4 color = texture2D(uSampler, vTextureCoord + vec2(0.0, v * amplitude * vTextureCoord.x));\
  13.                 \
  14.                   if (color.a > 0.0) {\
  15.                     float delta = sin((vTextureCoord.x + 0.001 - m_time * velocity) * 2.0 * PI * period) - v;\
  16.                     if (delta < 0.0) {\
  17.                       color = mix(color, vec4(1.0), -delta * brightness);\
  18.                     }\
  19.                   }\
  20.                   gl_FragColor = color;\
  21.                 }\
  22.                 ";
  23.  
  24.                 var simpleShader = new PIXI.Filter(vert, frag2);
  25.                 renderSprite._filters = [simpleShader];
  26.                 var filter = renderSprite._filters[0].uniforms
  27.                 filter.period = 3.0
  28.                 filter.amplitude = 0.04
  29.                 filter.velocity = 0.3
  30.                 filter.brightness = 8.0
  31.                 filter.m_time = filterstate.m_time

点评

原来是练手的啊,我还以为成品插件,会犯这些低级错误(捂脸)  发表于 2022-8-23 22:49
回复 支持 反对

使用道具 举报

Lv4.逐梦者

梦石
0
星屑
5758
在线时间
1093 小时
注册时间
2021-3-14
帖子
564
2
发表于 2022-8-23 08:11:14 | 只看该作者
本帖最后由 1071257831 于 2022-8-23 15:11 编辑

插件看起来可以,
我给插件写了一个帮助方便用,如果有冒犯到了您,我会第一时间删除。

其次,插件开启滤镜效果后打开菜单再关闭,滤镜效果会自动失效。

@H6J0)N0]3_Y}ABTG1HP%%0.png (61.24 KB, 下载次数: 25)

@H6J0)N0]3_Y}ABTG1HP%%0.png

toys.rar

2.26 KB, 下载次数: 15

随缘翻译。
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册会员

本版积分规则

拿上你的纸笔,建造一个属于你的梦想世界,加入吧。
 注册会员
找回密码

站长信箱:[email protected]|手机版|小黑屋|无图版|Project1游戏制作

GMT+8, 2024-11-18 03:45

Powered by Discuz! X3.1

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表