Move camera in circles a bit… see reticle have overlap issues.
Now set the sprite’s z-value in line 23… to -10 or -20… closer to our camera, which is z = -30. Conflicts go away, to some degree.
Try moving your sprite closer to cam or move duck further away.
Also perhaps goof around with camera.minZ.
And, perhaps… if you have set any rotation values… to things like 3.14 or 1.57 or .707… change those to Math.PI, and Math.PI/2, etc… making the rotations more precise.
Just some ideas, and a testing playground. Perhaps use a plane, parented to camera… for the crosshairs/reticle? Sprites do billboarding (always turn to face camera)… sometimes trouble. A parented plane turns with camera, too… but differently.
A BJS GUI imageControl right in the center of a fullscreen advancedDynamicTexture… might be the best way. https://www.babylonjs-playground.com/#XCPP9Y#1017