1. I wouldn't use Sobel on the colors, when I have a depth buffer

You can 'simply' run the Sobel Operator on the Depth buffer and it works no matter what colour the meshes are. That version has trouble finding an outline, if two sheets of paper lie on top of each other in your scene, for example (when the depth value difference is small)
2. It's exactly as costly as rendering your object without doing fancy fragment operations (for example lightning). Depending on how costly your fragment operations are, it's from about 1.5 times to twice as costly

I'm by no means an OpenGL expert, but these are my thoughts, I hope, they're still helpful
