查看: 1688|回复: 5

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

[复制链接]

21

主题

369

帖子

12

精华

版主

Rank: 24Rank: 24Rank: 24Rank: 24Rank: 24Rank: 24

经验
3975
硬币
365 枚

对不起,小姐永吧十五周年建吧日纪念勋章永吧十五周年倒计时海报勋章第五届MW杯亚军

发表于 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 啥的,反馈到这里我尽量帮忙(


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

21

主题

369

帖子

12

精华

版主

Rank: 24Rank: 24Rank: 24Rank: 24Rank: 24Rank: 24

经验
3975
硬币
365 枚

对不起,小姐永吧十五周年建吧日纪念勋章永吧十五周年倒计时海报勋章第五届MW杯亚军

 楼主| 发表于 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

119

主题

1053

帖子

12

精华

管理员

脚滑王

Rank: 32Rank: 32Rank: 32Rank: 32Rank: 32Rank: 32Rank: 32Rank: 32

经验
6437
硬币
330 枚

欢乐演员永吧十五周年建吧日纪念勋章永吧十五周年倒计时海报勋章

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

21

主题

369

帖子

12

精华

版主

Rank: 24Rank: 24Rank: 24Rank: 24Rank: 24Rank: 24

经验
3975
硬币
365 枚

对不起,小姐永吧十五周年建吧日纪念勋章永吧十五周年倒计时海报勋章第五届MW杯亚军

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

                               
登录/注册后可看大图

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

21

主题

369

帖子

12

精华

版主

Rank: 24Rank: 24Rank: 24Rank: 24Rank: 24Rank: 24

经验
3975
硬币
365 枚

对不起,小姐永吧十五周年建吧日纪念勋章永吧十五周年倒计时海报勋章第五届MW杯亚军

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

21

主题

369

帖子

12

精华

版主

Rank: 24Rank: 24Rank: 24Rank: 24Rank: 24Rank: 24

经验
3975
硬币
365 枚

对不起,小姐永吧十五周年建吧日纪念勋章永吧十五周年倒计时海报勋章第五届MW杯亚军

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

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

本版积分规则