How to apply a displacement texture consistently across a mesh?
If you use an image as texture to drive the displacement, but use generated or object coordinates you will get the error you show, where the texture will be applied only on the X and Y axis of the object, but will smear or repeat along the Z axis.



If you UV unwrap your object and use UV coordinates you can then map the displacement accurately onto the surface of the object.