查看: 10258|回复: 16

[资源] 【CTF】自制 & DX11 修复特效合集

[复制链接]

40

主题

811

回帖

13

精华

版主

经验
8292
硬币
1375 枚

赞助用户永吧十五周年建吧日纪念勋章永吧十五周年倒计时海报勋章第五届MW杯亚军对不起,小姐盲猜大王数字君X68数字君X68数字君X78

发表于 2020-3-20 22:49:58 | 显示全部楼层 |阅读模式
本帖最后由 dasasdhba 于 2020-4-9 11:40 编辑

前段时间 WSW 说 Crop 特效在 CTF2.5+ 的 DX11 上炸了
我看了一下 F1,DX11 特效用的是 HLSL 编译得到的 fxc 文件,在 Effects 目录下有源文件.hlsl
然后去翻了一下 Clickteam 论坛:https://community.clickteam.com/threads/105504-Converting-DX9-shaders-to-DX11
根据上面这个帖子,看了一下 CS_Crop.hlsl,发现确实有问题,然后我给改好了(

                               
登录/注册后可看大图

但还要编译成.fxc,这就涉及到编译工具,然后我特么还去装了 VS
搞了半天总算编译出来了,经测试正常,hlsl 和 fxc 我打包到我永硕了:
http://dasasdhba.ys168.com/
需者自取

如果以后还有啥特效炸了的话,然后你又不想改啊装个 VS 啥的,反馈到这里我尽量帮忙(


评分

参与人数 1经验 +3 硬币 +2 收起 理由
无视我233 + 3 + 2 好诶!

查看全部评分

Moonstruck Blossom
个人网站:dasasdhba.github.io

40

主题

811

回帖

13

精华

版主

经验
8292
硬币
1375 枚

赞助用户永吧十五周年建吧日纪念勋章永吧十五周年倒计时海报勋章第五届MW杯亚军对不起,小姐盲猜大王数字君X68数字君X68数字君X78

 楼主| 发表于 2020-3-21 17:24:36 | 显示全部楼层
本帖最后由 dasasdhba 于 2020-3-21 17:25 编辑

研究了一下,在非 premultiplied 模式下
CTF 内的图像的 RGBAlpha 值是分开的,在最后渲染的时候一起应用
这个时候 CTF 丢给 Shader 的也是 RGB 值和 Alpha 值分开的
而在 premultiplied 模式下
一开始 RGB 值就会与 Alpha 值相乘,然后渲染 RGBA
这个时候 CTF 会把 RGBA 值和 Alpha 值丢给 Shader
注意是 RGBA 值,于是有些没有做调整的特效就炸了
我实验了一下,要 Color.rgbColor.a 同步变化才行
当然更多特效炸掉的原因是没乘上 In.Tint 然后就全黑了(Clickteam 傻贲)

值得一提的是
官方给出的做法是在 Shader 输入的时候先除去 Alpha 值
然后再做原来的变换算法
最后再乘上 Alpha 值,返回给 CTF 的仍然是 RGBA
这也是我昨天的做法,但说实话这不是更慢了吗(

至于为什么非 premultiplied 模式会出现一些神奇的现象
这个就要去问 Clickteam 了
所以我今天又重新改了一下 Crop,之后打算再改点其他的

我大概看了一下,有大量的 In.Tint 漏乘现象
此外,几乎所有特效的 premultiplied 模式都是用的 CTF 官方给出的神奇方案(
更神奇的时候我编译这个模式的时候,

                               
登录/注册后可看大图

所以 Clickteam 是怎么编译出来的(
Moonstruck Blossom
个人网站:dasasdhba.github.io

160

主题

1382

回帖

12

精华

管理员

脚滑王

经验
8978
硬币
821 枚

永吧十五周年建吧日纪念勋章永吧十五周年倒计时海报勋章第十一届MW杯冠军欢乐演员对不起,小姐欢迎光临秘密合战!请务必再光临秘密合战!

发表于 2020-3-21 22:41:49 | 显示全部楼层
tql...drl...
总之感谢
个人网站wsw233.com
新作 AUEV0.5.0 制作中!
解说/版聊视频随缘更新!

40

主题

811

回帖

13

精华

版主

经验
8292
硬币
1375 枚

赞助用户永吧十五周年建吧日纪念勋章永吧十五周年倒计时海报勋章第五届MW杯亚军对不起,小姐盲猜大王数字君X68数字君X68数字君X78

 楼主| 发表于 2020-4-9 11:46:39 | 显示全部楼层
最近从小伙伴那里听说 StandardAND OR XOR 特效不能在 DirectX 上用
于是我照着“字面意思”自己写了个,dx11 下效果正常,但 dx8/9 报编译错误
仔细一看,dx8/9 没有 '&' '|' '^' 运算???????????????
没事,咱自己写个函数

                               
登录/注册后可看大图

CTF 傻贲
行行行,那咱支持 dx11 又不是不行,下载地址见我永硕
Moonstruck Blossom
个人网站:dasasdhba.github.io

40

主题

811

回帖

13

精华

版主

经验
8292
硬币
1375 枚

赞助用户永吧十五周年建吧日纪念勋章永吧十五周年倒计时海报勋章第五届MW杯亚军对不起,小姐盲猜大王数字君X68数字君X68数字君X78

 楼主| 发表于 2020-4-9 12:06:00 | 显示全部楼层
顺便再传两个之前自己做的特效,反正自己存着也没用
HSV:像 Photoshop 一样调整色相 饱和度 明度,由于各种不明原因只能在 dx11 上用
Crop_Rectangle:与 CS_Crop 功能相似,但这个特效是指定一个矩形区域
下载地址还是我的永硕
Moonstruck Blossom
个人网站:dasasdhba.github.io

40

主题

811

回帖

13

精华

版主

经验
8292
硬币
1375 枚

赞助用户永吧十五周年建吧日纪念勋章永吧十五周年倒计时海报勋章第五届MW杯亚军对不起,小姐盲猜大王数字君X68数字君X68数字君X78

 楼主| 发表于 2022-5-14 13:24:19 | 显示全部楼层
本帖最后由 dasasdhba 于 2022-5-14 13:31 编辑

新增描边特效,仅描边那些不透明度高于 0.5 的区域,支持调整大小(仅限 dx11)
平滑度最大值目前只有 64,如果电脑特别好的话可以改源文件把最大值调高点再编译((
注意部分 CTF 好像自带一个跟我这个特效同名的但是在 dx11 已经炸掉的 Outline.fx,记得覆盖或者删掉
Moonstruck Blossom
个人网站:dasasdhba.github.io

40

主题

811

回帖

13

精华

版主

经验
8292
硬币
1375 枚

赞助用户永吧十五周年建吧日纪念勋章永吧十五周年倒计时海报勋章第五届MW杯亚军对不起,小姐盲猜大王数字君X68数字君X68数字君X78

 楼主| 发表于 2022-10-16 23:53:32 | 显示全部楼层
本帖最后由 dasasdhba 于 2022-10-23 00:41 编辑

从 Godot 的开源 Shader 里面转了个激光特效出来(其实就是 GLSL→HLSL)
https://godotshaders.com/shader/energy-beams/
效果大概这样:
激光.gif
动画效果需要手动写事件让 Animation 参数(fA)自增
然后这个其实最好搭配 Add 用
(在 CTF 里面就是单放一个图层然后给这个图层加 Add)
特效名为 Laser,有需要的可以拿去玩一玩(

Update:新加了 Length 参数(fL)方便使用

顺便也传了几个之前做的但是没发的:
RGB Separate
Line(端午-4 的效果)
Moonstruck Blossom
个人网站:dasasdhba.github.io

40

主题

811

回帖

13

精华

版主

经验
8292
硬币
1375 枚

赞助用户永吧十五周年建吧日纪念勋章永吧十五周年倒计时海报勋章第五届MW杯亚军对不起,小姐盲猜大王数字君X68数字君X68数字君X78

 楼主| 发表于 2022-10-23 00:26:11 | 显示全部楼层
本帖最后由 dasasdhba 于 2022-10-23 00:35 编辑

受wsw的smooth_outline以及一个开源shader(https://godotshaders.com/shader/smooth-outline-2d/)的启发重新做了一个更平滑的描边效果,效果大概这样:

                               
登录/注册后可看大图

如果调低 fAlpha 参数,也能得到发光效果:

                               
登录/注册后可看大图

fSize参数取值为0~8,仅支持dx11

特效名为 Glow Outline,已上传至永硕
Moonstruck Blossom
个人网站:dasasdhba.github.io

40

主题

811

回帖

13

精华

版主

经验
8292
硬币
1375 枚

赞助用户永吧十五周年建吧日纪念勋章永吧十五周年倒计时海报勋章第五届MW杯亚军对不起,小姐盲猜大王数字君X68数字君X68数字君X78

 楼主| 发表于 2022-12-8 21:54:56 | 显示全部楼层
利用最近所学,我优化了 HSV 特效,使得新版没有使用任何 if:

                               
登录/注册后可看大图

下载地址不变。
Moonstruck Blossom
个人网站:dasasdhba.github.io

40

主题

811

回帖

13

精华

版主

经验
8292
硬币
1375 枚

赞助用户永吧十五周年建吧日纪念勋章永吧十五周年倒计时海报勋章第五届MW杯亚军对不起,小姐盲猜大王数字君X68数字君X68数字君X78

 楼主| 发表于 2023-2-19 14:15:15 | 显示全部楼层

                               
登录/注册后可看大图

新增(纸面)圆柱效果

评分

参与人数 2经验 +6 硬币 +4 收起 理由
绿色的糖果 + 3 + 2
无视我233 + 3 + 2 惊了!

查看全部评分

Moonstruck Blossom
个人网站:dasasdhba.github.io

40

主题

811

回帖

13

精华

版主

经验
8292
硬币
1375 枚

赞助用户永吧十五周年建吧日纪念勋章永吧十五周年倒计时海报勋章第五届MW杯亚军对不起,小姐盲猜大王数字君X68数字君X68数字君X78

 楼主| 发表于 2023-3-24 18:47:26 | 显示全部楼层
新增 Gradient Fill,用于制作渐变,支持 0~90 度方向,支持透明度参数
dx11 支持 8 种颜色,dx9 支持 6 种颜色(算力限制)

                               
登录/注册后可看大图

制作此特效的契机是 CTF 自带 quick backdrop 在开启 dx11 并使用非常规高度的情况下效果会与预期严重不一致
而「Active Gradient object」即便没有此问题但使用起来仍然会有诸多不便
顺带一提我用的是三次插值,因而得到的渐变也不是线性渐变, 会有一定区别

作为 Effect 也顺便支持叠加到原 Texture 上(关闭 Overwrite),因此用途应该更广泛。
Moonstruck Blossom
个人网站:dasasdhba.github.io

40

主题

811

回帖

13

精华

版主

经验
8292
硬币
1375 枚

赞助用户永吧十五周年建吧日纪念勋章永吧十五周年倒计时海报勋章第五届MW杯亚军对不起,小姐盲猜大王数字君X68数字君X68数字君X78

 楼主| 发表于 2023-4-8 16:19:45 | 显示全部楼层
CTF 在开启 dx11 的情况下似乎对于超过窗口长宽的 Texture 将会直接按照窗口长宽来作裁剪再丢给 Shader,我猜测这也是导致自带渐变崩掉的原因之一。
这也进一步导致我的 Gradient Fill 在超过窗口尺寸的情况下只能按照窗口大小来填充,直接没办法用了。
(dx9 没事)

没有找到说明这个事情的相关资料,如果确实没有什么办法调整这个行为的话,那 dx11 下恐怕只能去用扩展来做超过窗口尺寸的渐变了。

对此我只能直呼离谱。
Moonstruck Blossom
个人网站:dasasdhba.github.io

35

主题

159

回帖

5

精华

版主

巃嵸巋巚

经验
4457
硬币
691 枚

赞助用户

发表于 2023-4-23 12:40:22 | 显示全部楼层
渐变问题太离谱了
扩展麻烦就麻烦罢反正至少能用
如果谁有正版且有渠道向CTF反馈的可以把这个bug提交一下23333
行不得则反求诸己,躬自厚而薄责于人
日常潜水,不定期诈尸

40

主题

811

回帖

13

精华

版主

经验
8292
硬币
1375 枚

赞助用户永吧十五周年建吧日纪念勋章永吧十五周年倒计时海报勋章第五届MW杯亚军对不起,小姐盲猜大王数字君X68数字君X68数字君X78

 楼主| 发表于 2023-5-23 22:29:43 | 显示全部楼层
dasasdhba 发表于 2023-4-8 16:19
CTF 在开启 dx11 的情况下似乎对于超过窗口长宽的 Texture 将会直接按照窗口长宽来作裁剪再丢给 Shader,我 ...

OK,已找到解决方案

经过测试,CTF 只会裁 Backdrop/Quick Backdrop,不会裁 Active
所以非常规尺寸可以用 Active + 我的 Gradient Fill 来解决
Moonstruck Blossom
个人网站:dasasdhba.github.io

40

主题

811

回帖

13

精华

版主

经验
8292
硬币
1375 枚

赞助用户永吧十五周年建吧日纪念勋章永吧十五周年倒计时海报勋章第五届MW杯亚军对不起,小姐盲猜大王数字君X68数字君X68数字君X78

 楼主| 发表于 2023-5-23 22:50:23 | 显示全部楼层
本帖最后由 dasasdhba 于 2023-5-23 22:52 编辑

基于多重 fBM 的模拟云彩,转写自:https://godotshaders.com/shader/cloudy-skies/

                               
登录/注册后可看大图

基于底色混合,所以不支持直接修改透明度,请使用 Effect 参数。
(不支持 dx9)
Moonstruck Blossom
个人网站:dasasdhba.github.io

0

主题

11

回帖

0

精华

害羞绿花

经验
60
硬币
3 枚
发表于 2023-6-11 11:42:18 | 显示全部楼层
学到很多,受教了

40

主题

811

回帖

13

精华

版主

经验
8292
硬币
1375 枚

赞助用户永吧十五周年建吧日纪念勋章永吧十五周年倒计时海报勋章第五届MW杯亚军对不起,小姐盲猜大王数字君X68数字君X68数字君X78

 楼主| 发表于 2024-2-14 18:27:46 | 显示全部楼层
本帖最后由 dasasdhba 于 2024-2-15 12:55 编辑

旋转和缩放 Scale & Rotate
Y 反射 Reflection

带 Mask 后缀的是对背景 Texture 生效,否则是处理本体,我的所有 Shader 都符合这个特点。
以及,Scale_Rotate_Mask 的底色是黑色,懒得做成参数了,想改的自己改源文件。


Moonstruck Blossom
个人网站:dasasdhba.github.io
您需要登录后才可以回帖 登录 | 创建账户

本版积分规则