Rendering one pass only to avoid unnecessary computations in Cycles Using Cycles, I only need to render one pass (depth map and surface Normals) of a 3D shape in the scene. I do not need the RGB rendering at all although most of the computation is spent on rendering RGBs. Un-checking Combined in Render Layers --> Passes seems to do nothing. Using nodes, connecting either depth map or Normal to the composite node will also do nothing as mentioned here too. I tried setting bpy.context.scene.cycles.samples to a pretty low number as the depth map quality seem not to change. But I need to set it to a higher number in order to get accurate surface Normals and this causes the computation become more heavy.

Although I do not fully understand the solution posted here, but I think it does not apply to my problem (or I don't know how to do it properly. So I wonder how I can do this?
Cycles works by tracing many light paths through your scene and gathering information (depth, normals, color, etc) from the interactions of those paths with stuff in the scene. Simply ignoring the color information won't give you any significant performance gain.

All you can do1 is limit the number of paths you have to trace as much as possible; set the bounces to 1 and the samples as low as you care to go. You probably still want a few samples in order to retain a bit of anti-aliasing (16 should be plenty). If you have lots of motion blur or DoF (or any other situation where a path straight out of the camera will not always give the same value), then you may need more.

1: Without switching to a different engine which might better suit your needs, that is.