Technical curiosity: What's the difference between 2D and 3D displacement?

I am aware of the section in the VRay documentation, yet I cannot wrap my head around it.
Can someone tell me how/why they are different, what are the pros/cons etc?

The main difference is that the 2D displacement is done in texture space, and the result is mapped back into 3d space. The object should have valid UVW mapping coordinates to get a proper displacement results. The quality of the final displacement are controlled by the texture resolution, higher bitmap resolution leads to better detail and displace precision. Furthermore procedural maps will not work in 2D displacement mode.

As for the 3D displacement it is calculated and applied in 3D space by subdividing the original geometry in to smaller triangles and the quality and memory consumption strongly depends on the edge length values.
Let me know if you need any specific information or more technical details about how both modes work.

I can’t wrap my head around the fact that displacement can be done in “texture space”. Like, the concept of doing 3d stuff in 2d space.
You basically look in texture space, and offset UV-coordinates according to the displacement map? I don’t get it.

If you are familiar with relief mapping in real-time rendering, it’s a very similar concept.

Best regards,
Vlado

This might not be entirely right, but it’s easy to think of it as 2d is faster and better on flat surfaces - it’s easier to get more detail into a large area where the displacement map tiles (bricks, grass, paving etc)
3d is slower, can be more detailed, uses more memory. 3d is proper displacement and 2d is a trick that only works in certain situations.
If it’s a massive amount of displacement needed that drastically changes the silhouette then you’re better with 3d too.

Procedural textures in 2d mode would work though, right? (As in the procedural map itself isn’t set to Object XYZ)

This should work I think.