13
13
14
14
<br >
15
15
16
- 本文对十种主流故障艺术 (Glitch Art)系列后处理算法的原理和实现方式进行了总结,对故障艺术风格的算法实现要点进行了提炼,并提供了对应算法在Unity引擎下的一个或多个版本的实现源码。
16
+ 而本文,对十种主流故障艺术 (Glitch Art)系列后处理算法的原理和实现方式进行了总结,对故障艺术风格的算法实现要点进行了提炼,并提供了对应算法在Unity引擎下的一个或多个版本的实现源码。
17
17
18
18
这十种故障艺术(Glitch Art)后处理特效分别为:
19
19
@@ -377,7 +377,7 @@ half displaceNoise = pow(block.x, 8.0) * pow(block.x, 3.0);
377
377
378
378
接着,使用如下代码,将均匀渐变线条转为随机梯度的等宽线条:
379
379
380
- float uv_randomTrunc = 6.0 * trunc(_ TimeX, 24.0 * uv_trunc);
380
+ float uv_randomTrunc = 6.0 * trunc(_TimeX, 24.0 * uv_trunc);
381
381
382
382
![ ] ( media/2ef9438939a81cafa257cffbdbe493a9.gif )
383
383
@@ -643,12 +643,9 @@ Glitch)的主要思路,在于用noise去扰动原先场景图的颜色值。
643
643
}
644
644
645
645
646
- 渲染表现如下:
647
646
648
- ![ ] ( media/cf20339e06bc8a52c2c6573dd9261682.gif )
647
+ 最终,将noise扰动和随机灰度抖动两个特性相结合,得到Glitch Analog Noise最终的渲染表现:
649
648
650
- 最终,将noise扰动和随机灰度抖动两个特性相结合,得到Glitch Analog
651
- Noise最终的渲染表现:
652
649
653
650
![ ] ( media/9c0fad40cdfd5f8a9891274b3c562cc5.gif )
654
651
@@ -664,6 +661,8 @@ Noise最终的渲染表现:
664
661
665
662
666
663
664
+ ![ ] ( media/48.gif )
665
+
667
666
屏幕跳跃故障(Screen Jump Glitch)的算法原理在于取经过时间校正后的uv数值的小数部分,并于原始uv插值,得到均匀梯度式扰动屏幕空间uv,再用此uv进行采样即可得到跳动画面的表现。核心实现Shader代码如下:
668
667
669
668
half4 Frag_Vertical(VaryingsDefault i): SV_Target
@@ -835,7 +834,7 @@ OK,回到我们的波动抖动故障(Wave Jitter Glitch)后处理中来。
835
834
836
835
![ ] ( media/2e43dee0491aaba8ee822bcf2ee45312.gif )
837
836
838
- 波动抖动故障 ( Glitch Tile Jitter) 后处理特效可调参数也比较丰富,XPL内实现的此特效的可调参数面板如下:
837
+ 波动抖动故障(Wave Jitter Glitch) 后处理特效可调参数也比较丰富,XPL内实现的此特效的可调参数面板如下:
839
838
840
839
![ ] ( media/7921e7f2d840a0ab22ffc5c203c5a0f1.png )
841
840
0 commit comments