如何制作“ Life is Strange”之类的轮廓着色器?


13

我想让像生活一样的素描着色器变得奇怪。

着色器有两个部分:

1.动画虚线

2.嘈杂的轮廓

我想知道如何制作嘈杂的轮廓?

看到物体的轮廓

记录_2019_01_21_09_43_07_10

记录_2019_01_21_09_51_00_896

记录_2019_01_21_09_45_53_942

记录_2019_01_21_11_37_27_699

首先,我尝试通过复制输入的顶点数据来制作轮廓,并根据法线方向缩放,然后再按Cull Back。但是我认为这类似于“ 图像效果”,因为轮廓有时会在对象内部移动。无论如何,如果有人帮助我实现此着色器,我将不胜感激:)

我尝试了什么

我使用了边缘检测并通过顶点着色器对其进行了动画处理,但这并不像上面的gif那样好。

记录_2019_01_21_18_16_43_440

记录_2019_01_21_18_27_28_597

Answers:


1

我在虚幻引擎4中做了类似的事情,所以我将仅解释概念。您可以通过2种方式来做到这一点,它们是性能和易于实施之间折衷的不同梯度。

  1. 首先,在主网格物体的顶部添加一个新的网格物体,只是稍微大一点(就像物理对撞机网格物体一样)。然后为其创建一个透明的材质着色器,并启用该着色器/显示网格,因为玩家的视锥体在距实体x距离单位内。由于透明度着色器,这会增加性能,但由于在特定点仅突出显示了一小部分对象,因此易于实现且可行。

  2. 使用散列线创建基本纹理,并根据一组预定的矩阵移动纹理坐标。这产生了“动画纹理”的错觉。在行业中,它也被称为动态材料(还有更多内容,但是您可以根据需要阅读)。至于大纲,您可以在网络上找到很多教程。这项技术需要花费更多的时间来实现,因为您必须修改位移矩阵和材质更新时间才能获得与上述屏幕截图类似的结果,更不用说必须消除基础网格中角度变化的散列线了。

如果性能不是问题,请选择1。如果每个FPS都很重要,请使用2,但是预计很多问题需要花费时间才能解决。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.