POM material

Yes, and then we would have a robust way to do POM with multiple lights - shadowmaps would handle it for each light, instead of having to explicitly ray trace the height field along a LightVector to each light.

Pixel depth offset can change silhouettes, but it can only push away from the camera. So what you would do is have a reference plane that is the ‘top’ of the bricks or whatever, and push in for each pixel based on the ray trace against the heightfield.

The way the silhouette is changed is by pushing a pixel so far back that something else is now in front of it. PixelDepthOffset can’t actually move the pixel, tessellation and displacement are required for that.