One thing is (as you can see) *UV Projection* modifier generates smaller image in front side to closer camera and bigger image on opposite side due conical shape of projection from point - so distance of camera matters. In this case I would suggest to use *Texture coordinates >* **Object** and use another object like *Empty* to controll position. To position it smoothly on surface - enable **Snapping > Face with Align Rotation to Target**. [![enter image description here][1]][1] [![enter image description here][2]][2] But that is not your Q. This doesn't eliminate appearance on other side ... that is common issue with projection. If you want to stay vertex (UV) independent ... I know only this [Rich Sedman's OSL shader][3] (if you dont mind it is only CPU computation) that projects only in front direction. In theory, since you can manipulate vector coordinates, there should be a way to math something ... since Z rays are endless it cant be cropped by some distance, but probably it could be scaled on XY to zero at some Z distance? [1]: https://i.sstatic.net/qlor7.png [2]: https://i.sstatic.net/Vz9Nf.png [3]: https://blender.stackexchange.com/a/121372/2214