base.cam vs base.camera

Perhaps you did not call base.disableMouse(), which disables the default mouse control. The default mouse controls take control over base.camera.

As the manual page states, base.cam is a NodePath pointing to the actual Camera node, whereas base.camera == base.cam.getParent().

base.camera is actually a special ModelNode that prevents the camera from being flattened together with the rest of the scene when you do something like render.flattenStrong(). It also can act as a grouping when you have a scene with multiple cameras that need to be positioned together.

2 Likes