Godot version:
3.1 beta 9
Issue description:
I asked this in Reddit, but still not clear if this behavior is expected or not.
In short:
If I set ParallaxLayer without mirroring and motion scale x,y = 0 then background is centered to camera center, not where I place it in editor.

What I tried to achieve is "static" background, like camera is moving and background still same.
I can work around this issue and make background centered = true, BUT in this way it will be displayed out of level in editor.
If this expected behavior I will be glad to receive any advice in this theme. Thanks.
Minimal reproduction project:
Parallax.zip
I can confirm the 3.1 stable release still have this bug.
I can also confirm this is still prevalent in the 3.1-stable-release. My version was posted here: https://www.reddit.com/r/godot/comments/b4pu3z/confused_on_how_parallaxlayerthe_camera_work/
If you set motion_mirroring property to something other than Vector2(0,0), this works fine. So for this to work, I set mirroring to Vector(0.001, 0.001) just to prevent this. From docs:
The ParallaxLayer's Texture mirroring. Useful for creating an infinite scrolling background. If an axis is set to 0, the Texture will not be mirrored.
So maybe this should rather be handled via separate properties like mirror_horizontal_enabled and mirror_vertical_enabled instead. But parallax is buggy enough anyways so yeah something is wrong under the hood.
Still reproducible in the current master branch.
For 4.0, maybe this API can be reviewed to be made clearer and easier to use?
Still an issue in 3.2.2, but I have a simple solution!
if you have the Camera2D node's anchor mode set to Drag Center, then the parallax background layers will be offset by the ParallaxBackground's Base_Scale property times offset of the camera from its top-left corner.
for example, the top left of my camera right now is X:-160, Y:-90 (because my window size is 320x180). If I set the ParallaxBackground's Base_Scale = 0.5 and I have a parallax layer at the origin (0,0), then that parallax layer will be offset to (0.5-160, 0.5-90) == (-80,-45).
Thus, to fix this issue, go into ParallaxBackground > Scroll > Base Offset and set it to the calculated offset times -1 (so in the above example 80,45). The reason for multiplying it by -1 is just offset addition. essentially we are offsetting it by the exact opposite amount.
Hope this helps!
Most helpful comment
Still reproducible in the current master branch.
For 4.0, maybe this API can be reviewed to be made clearer and easier to use?