Outlining a Mesh?

So, I have been googling this problem for a couple days but I can’t come to a definite answer. What I want to achieve is render an outline of a mesh to create a look like Antichamber. I have found three possible solutions so far.

1. Use Sobel Operator to determine the outline of the mesh (This may not work with single color meshes)
2. Use Cel Shading to generate outline using back rendered faces of the mesh drawn a second time. (I don’t know how costly this will be.)
3. Create the texture/outline meshes by hand. (This is the least preferred due to the amount of manual work involved)

So I was wondering what you guys think about this? Am I on the right track with one of these three, and if so, what one is the best option?

Thanks,
Longarmx