I’ll just point you at my old article: True First Person Viewpoint.
In my opinion, its the only way to do it properly.
Eliminates a lot of issues you see in game like CS:GO, BF & COD, as their is no disconnect between what you see and what everyone else sees.