How to render camera view-invariant surface Normal maps in Blender? I wonder how I can render camera-view invariant surface Normal maps in Blender (ideally, through Blender's Python API)? Maybe as the first step, can someone explain how one can obtain surface Normals? My goal is actually to get surface Normal maps that are not dependent on the camera angle. How can I do that? 

I have tried two methods but cannot get the kind of results I expect: 1- I can only see the surface Normal maps by pressing N and then clicking on Matcap and selecting the Normal ball as shown below. But I cannot use this method to get renderings.



2- I followed what @Bruno's suggested in his response too. Although the rendering problem seems to be solved, but I still am not able to get camera view-invariant renderings of surface Normal maps as can be seen below:




And here you can find the corresponding .blend file.
This seems to work only in Cycles, not Blender Internal.

Simply enable Normal pass in your render layer. That'll produce the "invariant" normal map along side the combined rendering.