[2021新坑] SSRShaderFX && Creator

牛逼class

大佬好强!

大佬666

上线后,收到很多用户的已经很反馈, 最近主要忙着改 bug,还有就是实际用编辑器做一些特效。

下面发一些最近做的新功能,下一个版本马上就会更新:

[Feature]

新增 Logic / 逻辑运算 基础组件

增加一波逻辑运算的基础组件,方便制作出更多的特效。

  • All
  • And
  • Any
  • Branch
  • Equal
  • Greater
  • GreaterEqual
  • Less
  • LessEqual
  • Not
  • NotAnd
  • NotEqual
  • Or

新增 Discard 组件

增加特殊组件 Discard ,方便制作类似遮罩的效果。

新增 UTime0 变量

新增内置变量 UTime0 对应 cc_time[0] ,用于简化特效制作。

自动类型匹配

当输入类型维度小于目标维度,时进行自动补足匹配,用户简化特效制作,可以省去很多 SplitnTon 操作:

如: float:x 类型连接到 vec3 槽点时,自动转换为 vec3(x)
如: vec2:uv 类型连接到 vec3 槽点时,自动转换为 vec3(uv.x, uv.y, 1.0)
如: vec2:uv 类型连接到 vec4 槽点时,自动转换为 vec4(uv.x, uv.y, 1.0, 1.0)

图片拖放增加 jpg 支持

[Refine]

float 位数不足

目前小数固定3位,一来不够用,二来固定位数做法不合理。

修改为:
Float 类型默认至少以为小数,如 (1.0)
小数位数最多 5位,根据用户输入动态变化:

  • 上下移动微调的是最后一位小数的值
  • 左右移动调整的是整数位的值
___
2赞

:+1:东西真的好用,大佬更新也是神速

bug 修不完,新功能也不能停。

[Feature]

Context Menu i18n

带中文的组件菜单,更加直观的选择需要的组件

[Experimental]

Custom Component Builder

非常重要的功能,也是很难搞的功能,目前还在试验阶段。

简单来说是与必须用户自定义制作编辑中的组件。

以一种类似于 shadertoy 的方式,通过编写代码,自动识别生成组件。

同时又不同于 shadertoy,可以实时的对效果用编辑器中的控件进行参数的控制。

用户还可以实时的查看到 shader 的报错位置:

Demo

一个初期的演示例子,比如在 shadertoy 上有看上的特效:

那么直接扒下来,修改一些内置变量,改为 creator 风格的写法,立刻可以看到效果

还可以实时的修改 shader 编译,查看效果:

做完的自定义组件,可以和编辑器内置的上百个组件混合使用,做出更多更有趣的特效。
后续还会加入用户分享上传自己的组件,所有用户都可以在大量的组件库中,找到自己想要的零件。

目前功能还在趟坑开发中 ~~~

4赞

不知道为啥,这些视频好像都很难打开。。。或者说我一个都没成功打开过。

[2021.05.16]

开始准备 v1.0.3 版本,最重要的内容,就是加入全套的 自定义组件功能。这周把大概的框架做了出来。

下面是一个大概的演示视频:

视频中包含的一些演示内容:

  1. shadertoy 上将一个感兴趣的特效代码复制下来,稍作修改
  2. 在组件编辑界面,可以自由的编写 shader 代码
  3. 根据用户输入的输入输出参数不同,可以实时预览生成的组件
  4. 除了可以实时预览,还可以实时修改输入参数进行简单的效果测试预览
  5. 当组件制作完成后保存,即可在 用户自定义组件 分类中,找到自己的组件
  6. 自定义组件和其他内置组件可以一起使用,实现更加酷炫的效果
  7. 自定义组件可以上传分享到公共组件库,供所有用户使用

大概的意思有了,还有不少细节要处理,希望这个月内,能把这个大功能做好上线 …


5赞

666 有了这个感觉就可以要什么有什么了 :heart_eyes:

[2021.05.19]

继续更新。主要还是围绕自定义组件推进功能,目前大大小小的功能点基本已经完成了。

FX Component Libray / 特效组件库

特效组件展中包含的组件都是用 Component Builder 制作的:

Download / 下载

特效组件库中的组件,用户可以随时挑选选择自己想要的进行下载。下载后的组件可以在 组件菜单栏 中选择使用。

Remove / 删除

这里的删除,指的是删除下载后的 本地副本,云端特效库的组件不会被删除。

Clone / 克隆

当发现有的特效组件非常不错,可是有些细节想要调整,比如输入输出参数的类型,或是实现效果的细节等等,这时候都可以使用克隆功能,将任意一个特效组件克隆到自己的自定义组件列表中,方便后续的编辑修改。

顺带一提,编辑器中的所有基础组件,如数学运算,向量运算组件,也都可以通过克隆的方式,加入自己的组件列表,稍加修改,实现自己想要的功能。

User Custom Component / 用户自定义组件

Create / 创建

创建一个新的自定义组件。

Edit / 编辑

对一个已经存在的自定义组件进行编辑修改。

Clone / 克隆

对一个已经存在的自定义组件进行克隆操作,生产副本。

Remove Local / 删除本地

删除本地存在的一个自定义组件,注意,如果云端也有备份的话,云端的备份不会被删除。该记录也还会保持在列表中。但是如果云端并没有存档,那么该条记录会从列表中被永久删除

Remove Cloud/ 删除云端

删除云端存在的一个自定义组件,注意,如果本地也有备份的话,本地的备份不会被删除。

Upload / 上传

将一个本地的自定义组件上传到云端,如果云端已经存在该组件,则会进行覆盖更新。

Publish / 发布

将一个自定义组件发布到公共的 特效组件库注意,布成功目前发需要等待官方的人工审核,审核通过后,就可以在 特效组件库 中看到自己发布的特效。

注意,发布成功后,特效组件库 中的该组件仅仅是 源组件的一个副本,它不会随着 源组件的改变而改变。(否则如果有用户使用了已经发布的特效组件,而发布者又修改了如输入输出参数这类关键数据,那么就会造成特效项目的损坏)

Component Builder / 组件创建

Uniforms / 变量

Frag Functions / 片段函数

Main Function / 主函数

Input Simulator / 输入模拟

Debug / 调试

FX Component Project / 特效组件项目

Missing Component

有些共享的特效项目中,可能用到了一些特效组件库中的组件,而如果用户没有这些组件,则会在加载项目的时候提醒用户。

Repair / 一键修复

用户可以点击一键修复按钮,自动下载确实的特效组件,当所有组件下载成功后,项目会自动载入。

Discard / 丢弃

用户也可以选择丢弃当前正在加载的项目,在丢弃之前,编辑器会对当前项目进行自动备份下载。


下面是自己用 组件编辑器 制作的一些内置组件,一边做,一边完善,优化:

AverageBlurSample BlackWhite8BitSample BlackWhiteComicsSample CelShadingSample DirectionalBlurSample GaussianBlurSample GoldenStyleSample IcedStyleSample LiquidDistortSample MetalStyleSample RadialBlurSample StoneStyleSample SurroundDistortSample SwaySample WoodStyleSample


这一个版本,会把之前制作的 20+ 个特效的项目,转化为组件及集成到编辑器中,方便用户和内置的100多个基础组件混合使用,做出更多有趣的特效。

再努力一下,这个月应该有希望可以更新 ~~~



4赞

越做越好了

现在支持3.x版本的引擎吗?

mark!!!

[2021.05.23]

继续推进新功能。自定义组件功能差不多已经接近尾声了。

最近加入了一个比较方便的功能 (Auto Uniforms / 自动生成 uniforms):

同场一个自定义组件特效,会有比较多的 input 参数

所以在使用这类组件的时候,编辑器会为用户自动创建好对应 uniform 组件,以此来简化用户的操作。

来看个例子:

过去没有自定义组件的时候,一个 2D 光照特效 是这样的:

现在有了自定义组件,操作可以简化为:

可以看到,复杂组件的输入参数比较多,因此加入自动生成 uniforms 的功能之后,用户基本只需要关注调整参数的值,找到想要的效果即可。如果想要知道具体的代码实现,可以在 组件编辑器 功能中,看到所有组件的源码,还可以自由的修改,生成自己想要的组件。

当然,这些内置的,功能较为复杂的组件,还是可以和编辑器中内置的基础组件混合使用,比如说,想要个简单的光照动画效果,那么可以和 Time Sin 简单的组件混用一下:

___

距离这个版本上线应该不远了,这次内置的复杂特效,应该会在 30 + 左右,当然后面还会不停的更新 ~~~

顶一下,想问下新版本大概什么时候上 ???

mark mark

请教一下,image ,我能选择分组吗?比如说我只想选择default,其他的不选择,貌似现在的版本有问题,1、在编辑器可以选择去掉,但是跑起来会自动选择,2、去掉后,再次打开编辑器时,又自动选择上了

请教一下,image ,我能选择分组吗?比如说我只想选择default,其他的不选择,貌似现在的版本有问题,1、在编辑器可以选择去掉,但是跑起来会自动选择,2、去掉后,再次打开编辑器时,又自动选择上了@ SuperSuRaccoon

这个应该是那个 FBO 插件把,你可以加我的 qq: 453951749 我来帮你看看怎么解决 ~

[2021.06.04]

继续新功能的开发。

这一版本主要会加入的功能之一,就是在编辑器中可以进行 spine 骨骼动画的实时预览。

因为除了静态纹理,骨骼动画也是实际项目中非常常用的 RenderComponent,在编辑器中加入预览的支持,可以更好的调整最终 shader 的效果。

目前初步实现的功能:

  1. 在编辑中显示 spine 动画
  2. 实现 .atlas + .json + .png 的文件拖放方式 DnD 更改骨骼动画
  3. 自动读取动画列表
  4. 自动读取皮肤列表
  5. 实时设置动画
  6. 实时设置皮肤
  7. 骨骼动画 + Shader 特效输出至预览画面

当然还有不少细节要调整,不过基本的难点已经解决了,原型也出来了 ~~~


1赞