参考了很多资料~摸清楚了不少坑之后更新了这篇文档。
会写得比较细,有错漏的地方感谢指正,后续会继续更新一系列图形效果的实现。
最终效果,还有改良空间。
首先说下思路。
由于UE4延迟渲染的机制,我们可以从后处理中提溜出一大堆可以操作的图形来,这里将会用到的就是SceneDepth(场景深度,用来表现物体离相机远近的灰度图)贴图。于是,利用这张图,我们可以结合Sobel算子来实现边缘处理。
Sobel算子是相当经典的边缘检测算法,计算快,消耗低(只涉及+和*运算)。简单来说就是利用Sobel特定的卷积核对原始图形进行卷积计算,从而计算出像素的梯度矢量,根据值也就可以描述像素是否为边缘点。
PS:卷积计算,是指两个变量在某范围内相乘后求和的结果。比如有两个二维向量(8,9);(12,5)他们做卷积就是(8*12)+(9*5)。
Sobel的卷积计算是根据矩形算子来的,横竖算子分别是
它们需要分别和每个像素以及像素周边的八个像素组成的3x3矩阵进行卷积计算。假设现在有个像素a,他周边的像素是
a1,a2&