I am creating world using texture coordinate node and displacement modifier on plane. But it doesn't work until I apply the displacement modifier. Why does that happen? How to avoid that? Here are the nodes: Before apply:
I messed around a bit with vector math and found a quick fix:
By subtracting the object's location from the geometry's position output, you can get the same results, regardless of where the object is in the scene. You can then tweak the vector with a vector math node to perfect the result (scaling the object vertically might mess the math up a bit though).
I'm guessing blender hasn't yet implemented your approach with modifiers. In the first image, you can see the original material with the displace modifier applied. The second image is my suggested fix.