QgsCameraController uses the depth buffer of the framegraph to get the
depth when clicking on the 3d view for a rotation or a zoom
operation. This works very well for opaque objects. However, this does
not work for transparent objects because they are not written to the
depth buffer.
This issue is fixed by adding a third branch to the forward render
pass. This new branch only writes the depth of transparent
objets. This allows to have transparent objects written in the depth
buffer and solves the issue with the camera controller.
The rationale is that it is not driving just shadow rendering, but this frame graph
controls all the rendering passes and their configuration.
Also removes Qgs3DMapCanvas::defaultFrameGraph() which is never really used or needed.