Thanks!
Everything is done with post processing. The outline, and the dither. The shader looks at depth difference between pixels, and if it is large enough, it makes the pixel black, in addition to this, we also outline pixels based on normal difference, as well as luma difference. We are not using LWRP since the depth-normals map is not supported for this renderer.