|
因为这个东西不难,三五分钟就能做出来,就算带上讲解也就不到10分钟,所以就出一个教程。
材质模板设置
像阴影投射 接受阴影 雾效什么的不使用的都关掉,选择半透明模式,LightMode设置成Grab。
Grab是什么?
Grab是在URP管线设置时的抓取部分,不同的项目可能设置的有些区别,这里标注一下。
如果对于URP管线获取图像不了解,可以使用RT图(RenderTexture)去制作。
材质制作部分
一、抓取屏幕颜色
我们使用屏幕UV,输出抓取的屏幕颜色的单通道,效果正常
如果对于URP管线获取图像不了解,可以使用RT图(RenderTexture)去制作。
二、将屏幕灰度图转为黑白
通过smoothstep校正,灰度区间,如果最小最大接近于0.49-0.51之间 就越接近完全黑白,如果在0-1区间,那么就是接近灰度图。
三、极坐标流动纹理
拿屏幕UV 设置极坐标的中心,UV密度,将计算后的UV给到贴图,再输出到灰度控制。
这时会发现画面中本来就不多的白色,通过乘后就变的更少了,所以这里选择的是,原有的白色+屏幕黑白*纹理。
这里还是要说一下,因为算是个可预知的问题,比如说原来屏幕颜色就是0-1,那么我又在0-1上加了一层再计算smoothstep,会不会让颜色超过1,出现溢值问题那(颜色超过1)。
float smoothstep(float t1, float t2, float x) {
x = clamp((x - t1) / (t2 - t1), 0.0, 1.0);
return x * x * (3 - 2 * x);
}
这里查了一下smoothstep的公式可以看到,他是有clamp的0-1区间的,那就没有必要再去使用饱和节点去限制了。
四、反向计算
现在我们只有一种白黑配合,我们要知道黑白闪是需要黑闪和白闪搭配使用的,这时我们就可以使用黑白切换去插值计算,正常输出与反向输出。
五、粒子配合
虽然我们可以用动画滑杆控制,但是这个效果完全没必要K动画,我们可以使用粒子的顶点颜色A通道控制,也就不用模型片贴在摄像机前面了。粒子参数这种非常基础的东西我就不做过多解释了,就是在摄像机前面发射一个足够挡住画面的粒子,这里需要说的是color动画,黑白闪本身存在的时间就不长,也有用在终结杀配合慢动作的这里先不讲,直说短暂的黑白闪,黑白切换要快不能看出明显插值所以颜色渐变要这么做,才能闪。
六、红黑闪
其实就在最后输出的时候乘下颜色就好了,反正屏幕内的颜色已经划分成非黑即白,那么我们让白色的换成红色的就可以了。
同理你想闪其他颜色也可以
其他拓展
其实到这,我的笔记本来做完了,突然就想,那我的颜色要是不是纯色那?屏幕UV拿过来乘tiling给到图,乘上输出颜色。其实由此衍生出来的玩法,就更多了。UV流动扰动,闪点等等很多玩法就都可以混合在第二纹理里。
|
本帖子中包含更多资源
您需要 登录 才可以下载或查看,没有账号?立即注册
×
|