Camera View Matrix in 2D mode (Cesium + Three JS)

I’ve integrated cesium with three js this tutorial:

However, it doesn’t work when switching the map to SCENE2D mode. The cause seems to be around here:

  var cvm = cesium.viewer.camera.viewMatrix;
  var civm = cesium.viewer.camera.inverseViewMatrix;
  three.camera.matrixWorld.set(
      civm[0], civm[4], civm[8 ], civm[12],
      civm[1], civm[5], civm[9 ], civm[13],
      civm[2], civm[6], civm[10], civm[14],
      civm[3], civm[7], civm[11], civm[15]
  );
  three.camera.matrixWorldInverse.set(
      cvm[0], cvm[4], cvm[8 ], cvm[12],
      cvm[1], cvm[5], cvm[9 ], cvm[13],
      cvm[2], cvm[6], cvm[10], cvm[14],
      cvm[3], cvm[7], cvm[11], cvm[15]
  );

It is logical for the camera’s view matrix to change when switching scene modes, but it doesn’t. As a result the rendering of three js objects doesn’t change when switching to 2D mode (or 2.5D mode). Their positions appear completely off (as if they are still on the globe). Now, how can I get the view matrix in 2D mode? Or should I apply some other transforms?