In the manual ( it says

I have a very simple scene in which I wanted to set the initial camera position.
I tried, dx, dy, dz)

, but that didn’t work.
Thus, I tried, dx, dy, dz)

, which did work. However, I don’t know why.

What is the difference between and and why do I need to setPos on

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

As the manual page states, is a NodePath pointing to the actual Camera node, whereas == 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.